pandas - 将 txt 文件转换为 pandas 数据框
问题描述
我有一个文本文件,想把它变成一个熊猫数据框。不幸的是,文本文件的结构让我很难做到这一点。
文本文件如下所示:
======> EVENT:130
a = 1.4
b = 2.5
c = 1.7
======> EVENT:698
a = 1.2
b = 4.3
c = 2.4
======> EVENT:1055
a = 3.4
b = 4.5
c = 2.3
“EVENT:”后面的数字是随机的。我想将此文本文件转换为具有以下结构的熊猫数据框
a b c
1.4 2.5 1.7
1.2 4.3 2.4
3.4 4.5 2.3
所以我想要数据框的一行中的每个事件。如何删除“======> EVENT:xxxx”行?或者我如何使用这条线告诉 pd.read_csv() 在 df 中开始一个新行?有没有办法让 pd.read_csv() 意识到“=”的左侧是列名,而右侧是该列的条目?
解决方案
您可以使用re
模块制作自定义解析器。例如:
import re
import pandas as pd
with open("your_file.txt", "r") as f_in:
data = f_in.read()
all_data = []
for event in re.split(r".*EVENT.*", data):
if not event.strip():
continue
d = {}
for k, v in re.findall(r"\s*(.*)\s*=\s*(.*)\s*", event):
d[k] = v
all_data.append(d)
df = pd.DataFrame(all_data)
print(df)
印刷:
a b c
0 1.4 2.5 1.7
1 1.2 4.3 2.4
2 3.4 4.5 2.3
推荐阅读
- sql - 使用游标显示部门名称。创建一个 PL/SQL 块以使用游标显示部门表中的所有部门名称
- supervisord - supervisord 没有在 Ubuntu 20.04 上自动启动
- sql - Bigquery:如何根据特定时间范围聚合多个列的数据?
- c - 计算 C 文件中注释字符和单词的程序
- reactjs - 反应材料表不显示表格图标
- php - 像素集成到 Opencart 3
- javascript - 将材质 ui 中的选择组件从函数转换为类
- javascript - 如何控制台日志成员构造函数 DiscordJS
- gtk - GdkEventMotion x 和 y 坐标似乎是指不同小部件中的位置
- json - 发送 JSON Put 方法的错误 404 - Xamarin.Forms