【发布时间】:2021-03-11 19:53:19
【问题描述】:
我正在尝试使用 Pandas 将 .txt 文件读入数据框。我遇到的问题是列名与每一行的数据一致。这让我很难只获取数据,因为我不确定分隔符应该是什么。我的数据如下所示:(完整文件here)
f= Al N= 1 rho[g/cc]= 0.269861 V[A^3]= 166.02561792 T[K]= 2020958 P[GPa]= 1877.100 24.300 E[Ha]= -59.56300000 1.39000000
f= Al N= 1 rho[g/cc]= 0.269861 V[A^3]= 166.02561792 T[K]= 4041916 P[GPa]= 4249.300 18.400 E[Ha]= 160.64900000 1.07400000
f= Al N= 1 rho[g/cc]= 0.269861 V[A^3]= 166.02561792 T[K]= 8083831 P[GPa]= 9208.000 31.500 E[Ha]= 513.26500000 1.80900000
我尝试做的是:
Al = pd.read_csv('Al_EOS_09-18-20.txt', skiprows=18, delimiter='=', names=['f', 'N', 'rho[g/cc]', 'V[A^3]', 'T[K]', 'P[GPa]', 'E[Ha]'])
这会返回一个包含正确列的数据框,但每列下的值包含下一列的值和名称。所以在 Al['f'] 下我得到 'Al N' 而不仅仅是 'Al'。
任何帮助将不胜感激!
【问题讨论】:
-
似乎很多人都在使用
read_csv来处理与 CSV 无关的事情。编写脚本将此文件转换为 Pandas 乐于接受的标准 CSV 格式大约需要 15 分钟。 -
@TimRoberts 人们使用他们熟悉的工具。说“这将需要... 15 分钟...将其转换为 [CSV]”是在加载我认为不安全的假设。 OP 清楚地认识到了一些问题,并在询问如何做得更好。
标签: python pandas dataframe file