鉴于我正在读取 N 个 csv 文件并将它们合并到单个 Pandas DataFrame 中,例如:
dfs = [pd.read_csv(f) for f in list_of_files]
df = pd.concat(dfs, axis=1)
如何重命名每个文件中的列,以便它们包含基于文件名的后缀?
例如,如果文件 f1 和 f2 具有以下内容:
f1:
A
1
2
3
f2:
B
4
5
6
然后上面的列式 concat
产生:
A B
1 4
2 5
3 6
...但是我想要:
A_f1 B_f2
1 4
2 5
3 6
最佳答案
将你的 dfs 更改为 dict
dfs = {'f'+str(i+1) : pd.read_csv(f) for i,f in enumerate(list_of_files)}
然后使用cancat
s=pd.concat(dfs,1)
s.columns=s.columns.map('{0[1]}_{0[0]}'.format)
s
Out[311]:
A_f1 B_f2
0 1 4
1 2 5
2 3 6
关于python - 根据 pandas 中的 csv 文件名重命名列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55132795/