我有一个数据框,它是通过合并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)”
答案 0 :(得分:1)
让我们使用pathlib
和pd.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
。