gpt4 book ai didi

python - 使用 pandas read_csv 读取标题时跳过 `# ` 字符

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:20 25 4
gpt4 key购买 nike

我有一个看起来像这样的文件:

# Time                  Cm                      Cd                      Cl                      Cl(f)                   Cl(r)                   Cm      Cd      Cl      Cl(f)   Cl(r)
1.000000000000e+01 -5.743573465913e-01 -5.860160539688e-01 -1.339511756657e+00 -1.244113224920e+00 -9.539853173733e-02
2.000000000000e+01 6.491397073110e-02 1.320098727949e-02 6.147195262817e-01 3.722737338720e-01 2.424457924098e-01
3.000000000000e+01 3.554043329234e-02 4.296597501519e-01 7.901295853361e-01 4.306052259604e-01 3.595243593757e-01

有什么方法可以告诉 pandas Time 是第一列名称?

我是这样读的

dat = pd.read_csv('%sdt.dat'%s, delim_whitespace=True)

这以某种方式告诉 pandas 第一列名为 #:

dat.columns
Index(['#', 'Time', 'Cm', 'Cd', 'Cl', 'Cl(f)', 'Cl(r)', 'Cm.1', 'Cd.1', 'Cl.1', 'Cl(f).1', 'Cl(r).1'],
dtype='object')

我如何告诉 pandas' read_csv 忽略标题中的前两个字符或以其他方式从 read_csv 中获取我想要的列名?

最佳答案

这是一种可能的解决方法:

headers = pd.read_csv('%sdt.dat'%s, delim_whitespace=True, nrows=0).columns[1:]
dat = pd.read_csv('%sdt.dat'%s, delim_whitespace=True, header=None, skiprows=1, names=headers)

或者,您可以通过一些后处理来修复列:

col_mapper = {old:new for old, new in zip(dat.columns, dat.columns[1:])}
dat = dat.iloc[:, :-1].rename(col_mapper, axis=1)

关于python - 使用 pandas read_csv 读取标题时跳过 `# ` 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52708273/

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