从空格分隔的字符串创建 Pandas DataFrame

Ped*_*tra 7 python string dataframe pandas

我有一个字符串:

              C1     C2                       DATE     C4     C5         C6      C7
0            0.0    W04  2021-01-08 00:00:00+00:00      E    EUE         C1     157
1            0.0    W04  2021-01-08 00:00:00+00:00      E    AEU         C1     157
2            0.0    W04  2021-01-01 00:00:00+00:00      E   SADA         H1     747
3            0.0    W04  2021-01-04 00:00:00+00:00      E   SSEA         H1     747
4            0.0    W04  2021-01-05 00:00:00+00:00      E   GPEA         H1     747
Run Code Online (Sandbox Code Playgroud)

它确实看起来像一个 Pandas DataFrame,因为它来自一个。我需要将其转换为 Pandas DataFrame。

我尝试了以下方法:

pd.read_csv(StringIO(string_file),sep=r"\s+")
Run Code Online (Sandbox Code Playgroud)

但它弄乱了列并将 DATE 列分成 2 列。

小智 6

首先,重新创建字符串:

s = """
              C1     C2                       DATE     C4     C5         C6      C7
0            0.0    W04  2021-01-08 00:00:00+00:00      E    EUE         C1     157
1            0.0    W04  2021-01-08 00:00:00+00:00      E    AEU         C1     157
2            0.0    W04  2021-01-01 00:00:00+00:00      E   SADA         H1     747
3            0.0    W04  2021-01-04 00:00:00+00:00      E   SSEA         H1     747
4            0.0    W04  2021-01-05 00:00:00+00:00      E   GPEA         H1     747
"""
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用Pandas.read_csv导入缓冲区:

from io import StringIO
df = pd.read_csv(StringIO(s), sep=r"\s\s+")
Run Code Online (Sandbox Code Playgroud)

据我所知,这正是您正在寻找的 DataFrame:

生成的 DataFrame 的屏幕截图

您可能还想将该DATE列转换为datetime值:

df['DATE'] = df.DATE.astype('datetime64')
Run Code Online (Sandbox Code Playgroud)