【问题标题】:Python Pandas join a few filesPython Pandas 加入几个文件
【发布时间】:2020-05-24 17:25:46
【问题描述】:

我将一些 xlsx 文件导入 pandas 数据框。它工作正常,但我的问题是它会相互复制所有数据(所以我有 10 个 100 行 = 1000 行的 excel 文件)。

我需要 100 行和 10 列的 Dataframe,因此每个文件将彼此相邻复制,而不是在下方。

有什么想法吗?

import os
import pandas as pd

os.chdir('C:/Users/folder/')

path = ('C:/Users/folder/')
files = os.listdir(path)

allNames = pd.DataFrame()

for f in files:
    info = pd.read_excel(f,'Sheet1')
    allNames = allNames.append(info)

writer = pd.ExcelWriter ('Output.xlsx')
allNames.to_excel(writer, 'Copy')
writer.save()

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以将电子表格作为数据框数组直接提供给pd.concat()

    import os
    import pandas as pd
    
    os.chdir('C:/Users/folder/')
    
    path = ('C:/Users/folder/')
    files = os.listdir(path)
    
    allNames = pd.concat([pd.read_excel(f,'Sheet1') for f in files], axis=1)
    
    writer = pd.ExcelWriter ('Output.xlsx')
    allNames.to_excel(writer, 'Copy')
    writer.save()
    

    【讨论】:

      【解决方案2】:

      不要像这样垂直堆叠表格:

      allNames = allNames.append(info)
      

      您需要像这样水平连接它们:

      allNames = pd.concat([allNames , info], axis=1)
      

      【讨论】:

      • 非常感谢!很有帮助!!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 2018-04-27
      • 1970-01-01
      • 2012-07-31
      相关资源
      最近更新 更多