gpt4 book ai didi

python - 当列名与 Pandas 的数据内联时,如何读取 .txt 文件?

转载 作者:行者123 更新时间:2023-12-05 01:08:02 25 4
gpt4 key购买 nike

我正在尝试使用 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'。

任何帮助将不胜感激!

最佳答案

pd.read_fwf

固定宽度

import pandas as pd
import io
import requests
url = "http://militzer.berkeley.edu/FPEOS/files/Al_EOS_09-18-20.txt"
s = requests.get(url).content.decode('utf-8')

df = pd.read_fwf(
io.StringIO(s), skiprows=18, header=None,
usecols=[1, 3, 5, 7, 9, 11, 12, 14, 15],
names='f N rho[g/cc] V[A^3] T[K] P[GPa]0 P[GPa]1 E[Ha]0 E[Ha]1'.split()
)

df

f N rho[g/cc] V[A^3] T[K] P[GPa]0 P[GPa]1 E[Ha]0 E[Ha]1
0 Al 1 0.269861 166.025618 2020958 1877.1 24.3 -59.563 1.390
1 Al 1 0.269861 166.025618 4041916 4249.3 18.4 160.649 1.074
2 Al 1 0.269861 166.025618 8083831 9208.0 31.5 513.265 1.809
3 Al 1 0.269861 166.025618 16167663 18629.3 36.3 1055.213 2.077
4 Al 1 0.269861 166.025618 32335325 37424.5 33.7 2129.898 1.924
.. .. .. ... ... ... ... ... ... ...
235 Al 1 2.383356 1.383547 16167663 2126283.1 5177.3 938.925 2.532
236 Al 1 2.383356 1.383547 32335325 4411441.4 4979.6 2046.679 2.373
237 Al 1 2.383356 1.383547 64670651 8944752.2 4660.1 4212.630 2.231
238 Al 1 2.383356 1.383547 129341301 7991672.2 4802.6 8525.231 2.314
239 Al 1 2.383356 1.383547 215568835 17138.4 7894.0 14252.907 8.470

[240 rows x 9 columns]

关于python - 当列名与 Pandas 的数据内联时,如何读取 .txt 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66589600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com