当前位置: 首页 > 知识库问答 >
问题:

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

广献
2023-03-14

我有一个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文件没有真正的模式,我只是使用这些名称作为示例。

非常感谢

共有1个答案

施恩
2023-03-14

在循环中创建新列:

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)

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

dfs = [pd.read_excel(f, 'Sheet1', header = None, names = ['col1','col2']).assign(col3 = f)
        for f in files]

 df = pd.concat(dfs)
 类似资料:
  • 本文向大家介绍Python将多个excel文件合并为一个文件,包括了Python将多个excel文件合并为一个文件的使用技巧和注意事项,需要的朋友参考一下 利用Python,将多个excel文件合并为一个文件 思路 利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中。 完整代码 源文件excel1: 源文件e

  • 本文向大家介绍如何用python合并多个excel文件,包括了如何用python合并多个excel文件的使用技巧和注意事项,需要的朋友参考一下 安装模块 1、找到对应的模块  http://www.python-excel.org/ 2、用 pip install 安装 因为使用的是 python3,所以安装的时候采用 pip3。 XlsxWriter 示例 先看看简单的演示: 运行结果如下: 合

  • 问题内容: 假设我们有许多文本文件,如下所示: 文件1: 文件2: 文件3: 文件4: 我们如何制作一个文本文件,如下所示: 结果: 相关代码可能是: 在这之后?有什么帮助吗? 问题答案: 您可以将每个文件的内容直接读取到输出文件句柄的write方法中,如下所示:

  • 我有多个csv文件(每个文件包含N行(例如,1000行)和43列)。 我想把文件夹中的几个csv文件读入pandas,并将它们合并到一个数据帧中。 不过我还没能弄明白。 问题是,数据帧的最终输出(即,)将所有列(即43列)合并到代码的一列(见附图)屏幕截图中 选定行和列的示例(文件一) 选择的行和列(文件二)Client_IDClient_NamePointer_of_Bins日期权重C00000

  • 我是Python家族的新手,几天来一直试图解决合并两个Excel文件的问题。我对合并进行了无休止的研究,并试图调整我的代码以满足我的需求,但它一直不起作用。我想知道我是否能得到任何帮助,为什么我的代码不能工作。我觉得这可能是使用Python的其他人的一个常见问题,所以希望这也能帮助其他人。我很感激任何评论! 我有两个excel文件,“中文scores3.csv”和“中文scores4.csv”,我

  • 我想从一个目录中读取几个excel文件到pandas中,并将它们连接到一个大的数据帧中。不过我还没弄明白。我需要一些关于for循环和构建级联数据帧的帮助: