首页 > 解决方案 > 使用 Python 用多个 excel 文件中的列表中的信息填充新列

问题描述

我需要在 40 个 excel 文件中添加一列。每个文件中的新列将填充一个名称。

这就是我所拥有的:

files=[16686_Survey.xlsx, 16687_Survey.xlsx, 16772_Survey.xlsx, ...](40 个文件,每个文件超过 200 行)

文件名=['name1', 'name2', 'name3', ...] (40 个名字)

我需要为每个 excel 文件添加一列,并在新列中写入其对应的名称。

使用以下代码,我得到了一个文件所需的内容。

import pandas as pd
df = pd.read_excel('16686_Survey.xlsx') 
df.insert(0, "WellName", "Name1")
writer = pd.ExcelWriter('16686_Survey.xlsx')
df.to_excel(writer, index = False)
writer.save()

但是如果我这样做 40 次就会效率低下,我想学习如何使用循环来解决这类问题,因为我多次遇到相同的情况。

该图像是我使用上面的代码得到的。图像中的第一个表是我所拥有的。第二张桌子是我想要的

谢谢您的帮助!

标签: excel

解决方案


我不是 100% 确定我理解你的问题,但我认为你正在寻找这个:

import pandas as pd

files=['16686_Survey.xlsx', '16687_Survey.xlsx', '16772_Survey.xlsx', ...] 
filenames=['name1', 'name2', 'name3', ...] 

for excel_file, other_name in zip(files, filenames):
    df = pd.read_excel(excel_file) 
    df.insert(0, "WellName", other_name)
    writer = pd.ExcelWriter(excel_file)
    df.to_excel(writer, index = False)
    writer.save()

zip我使用该函数合并了两个列表(我假设它们的长度相同) 。zip 函数一个接一个地从列表中取出项目并将它们组合起来,这样所有第一个项目都在一起,第二个项目都在一起,依此类推。


推荐阅读