将多个excel文件导入Python,合并并将文件名应用于新列

2024-04-18 22:32:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个for循环,它导入目录中的所有Excel文件,并将它们合并到一个数据帧中。但是,我想创建一个新列,其中每一行都采用Excel文件名的字符串。在

以下是我的导入和合并代码:

path = os.getcwd()
files = os.listdir(path)

df = pd.DataFrame()
for f in files:
    data = pd.read_excel(f, 'Sheet1', header = None, names = ['col1','col2'])
    df = df.append(data)

例如,如果第一个Excel文件名为“file1.xlsx”,我希望该文件中的所有行在col3(一个新列)中具有值file1.xlsx。如果第二个Excel文件名为“file2.xlsx”,我希望该文件中的所有行都具有值file2.xlsx。注意,Excel文件并没有真正的模式,我只是用这些名称作为例子。在

非常感谢


Tags: 文件数据path目录dffordataos
1条回答
网友
1楼 · 发布于 2024-04-18 22:32:50

在循环中创建新列:

df = pd.DataFrame()
for f in files:
    data = pd.read_excel(f, 'Sheet1', header = None, names = ['col1','col2'])
    data['col3'] = f
    df = df.append(data)

列表理解的另一个可能的解决方案:

^{pr2}$

相关问题 更多 >