python - 从空格分隔的字符串创建 Pandas DataFrame
问题描述
我有一个字符串:
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
它确实看起来像 Pandas DataFrame,因为它来自一个。我需要将其转换为 Pandas DataFrame。
我尝试了以下方法:
pd.read_csv(StringIO(string_file),sep=r"\s+")
但它与列混淆并将 DATE 列分成 2 列。
解决方案
First, recreate the string:
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
"""
Now, you can use Pandas.read_csv
to import a buffer:
from io import StringIO
df = pd.read_csv(StringIO(s), sep=r"\s\s+")
From what I can tell, this results in exactly the DataFrame that you are looking for:
You may want to convert the DATE
column to datetime
values as well:
df['DATE'] = df.DATE.astype('datetime64')
推荐阅读
- c# - 遍历天蓝色存储绝对路径c#
- regex - 如何查找长度为 5 且恰好包含一个数字和 4 个字母的所有字符串
- angular - 如何让 app-root 组件等待服务初始化其变量?
- c# - 带有 RadioButtonFor 的 ID
- jquery - wordpress 中的 jQuery ajax 请求
- c# - 看不到我的自定义应用事件(Facebook 分析)
- c# - 当值相同时循环不进入
- git - 如何将 git bash 更改为左对齐
- vb.net - 与 Windows 7 相比,Windows 10 中的性能问题
- c# - Arduino 安全地使用 .net Core api?