使用for循环(Python)追加/连接多个excel数据集

Posted

技术标签:

【中文标题】使用for循环(Python)追加/连接多个excel数据集【英文标题】:Append/Concatenate multipe excel data sets using for loop (Python) 【发布时间】:2018-07-27 08:40:48 【问题描述】:

我正在尝试更有效地合并来自模拟运行的数据。目前,数据在不同文件夹中的多个 excel 文档中生成,具体取决于运行集。

要选择我通过此代码的文件:

def XLFiles():
    root = Tkinter.Tk()
    root.withdraw()
    select_files = tkFileDialog.askopenfilenames(parent=root, initialdir='dir', title='Choose Rig Data Files')
    return select_files

select_files = XLFiles()
file_list = list(select_files)

这将返回相关文档的所有目录的列表。

我的目标是下一步将数据合并在一起。这就是我遇到问题的地方。

我用过:

df2 = []

for f in list(select_files):
    df1 = pd.read_excel(f, header=1, skiprows=range(2,50), usecols="H,I")
    df2.append(df1)

我的问题是这不返回数据框,而是 3 个列表。我假设是因为我做了 'df2=[]' 但是我不知道如何将 df2 创建为没有任何数据的数据框。请问你能把我推到正确的方向吗?

谢谢

【问题讨论】:

【参考方案1】:

试试这个:

df = pd.concat([pd.read_excel(f, header=1, skiprows=range(2,50), usecols="H,I")
                for f in select_files], ignore_index=True)

【讨论】:

MaxU 谢谢你这也有效。我不知道这里的礼仪,因为你是第一次我给你打勾? @OParker,不,您应该简单地接受最适合您需求的答案... ;-)【参考方案2】:

你需要DataFrames列表中的concat,如果加入空DataFrame就没有错误:

df2 = []
for f in list(select_files):
    df1 = pd.read_excel(f, header=1, skiprows=range(2,50), usecols="H,I")
    df2.append(df1)
df = pd.concat(df2, ignore_index=True)

【讨论】:

非常感谢这个作品。我可以在 8 分钟内接受它是正确的。非常感谢

以上是关于使用for循环(Python)追加/连接多个excel数据集的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中使用for循环进行追加工作

for循环和追加的Python问题[重复]

将 for 循环中的多个打印输出值存储到列表或变量中

如同在python中一样,在for循环中追加值

为啥我的 for 循环覆盖而不是追加?

在 Python For 循环中追加和弹出项目 [重复]