【问题标题】:Append/Concatenate multipe excel data sets using for loop (Python)使用for循环(Python)追加/连接多个excel数据集
【发布时间】: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 创建为没有任何数据的数据框。请问你能把我推到正确的方向吗?

谢谢

【问题讨论】:

    标签: excel python-2.7 pandas append concat


    【解决方案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 分钟内接受它是正确的。非常感谢
    猜你喜欢
    • 2021-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 2017-10-12
    • 2020-04-04
    • 2018-10-08
    • 2022-01-25
    相关资源
    最近更新 更多