【发布时间】:2020-01-25 05:55:57
【问题描述】:
我有一个目录,里面有一百个 CSV 文件。其中一个 CSV 文件如下所示;
Time ID
09:00 A
.. ..
我想将所有 csv 加入一个包含文件名的数据帧中(由轴 = 1 附加) 我使用了这段代码:
files = glob.glob(data/*.csv')
df = pd.concat([pd.read_csv(fp).assign(File=os.path.basename(fp).split('.')[0]) for fp in files], axis=1)
df.to_csv('new.csv')
df
我得到的结果是这样的
Time ID File Time ID File ..
09:00 A 01 09:00 B 02 ..
.. .. .. .. .. .. ..
我想以文件名作为列名加入ID列名。我的预期结果如下所示:
Time 01_ID Time 02_ID ..
09:00 A 09:00 B ..
.. .. .. .. ..
【问题讨论】:
-
pandas.assign(col=...)将单词col视为新列的 字符串 名称,而不是名为col的变量。您可以通过将带有 ** 的字典传递给它来绕过该问题,但它认为在列表理解中不可能做到这一点。 stackoverflow.com/questions/39767718/…