将文件名添加到数据框中的列标题

时间:2020-08-07 12:55:13

标签: python excel pandas dataframe

我有一个数据框,它是通过合并7个不同的excel文件中的一列而创建的。下面是我使用的代码:

import pandas as pd
import glob

my_excel_files = glob.glob(r"C:\Users\.........\*.xlsx")

total_dataframe = pd.DataFrame() 

for file in my_excel_files:
    new_df = df['Comments']
    total_dataframe = pd.concat([total_dataframe, new_df], axis=1) # Puts together all Comments columns

从代码中可以看到,我从每个excel抓取了“ Comments”列,并将它们放到一个新的df中,唯一的问题是我希望能够将文件名添加到列名中,这样我就知道列来自哪个excel文件,它们现在都被称为“注释”。因此,理想情况下,列标题之一是“ Comments(first_response.xlsx)”

1 个答案:

答案 0 :(得分:1)

让我们使用pathlibpd.concat

使用dict理解,我们可以从pathlib对象中获取.name属性,使用concat时,文件名将被设置为索引。

from pathlib import Path


dfs = pd.concat({f.name : pd.read_excel(f) for f in Path(r'C:\Users\..').glob('*.xlsx')})

这将创建一个带有文件名的索引,如果您想将其放置为列,则可以reset_index