【问题标题】:Aggregate several pandas dataframes聚合几个 pandas 数据框
【发布时间】:2021-11-04 11:46:57
【问题描述】:

当天的第二个初学者问题。

我有一个存储在列表中的标识符列表。假设,例如:

ID = [100, 101, 102, 103, … 200]

然后,我在特定文件夹中保存了几个 excel 文件。这些文件的组织方式如下:

Name of the file: April 2021

ID  Name    Color
105 Bob     Red
158 Jean    Blue

Name of the file: May 2021:

ID  Name    Color
110 Bob     Green
158 Jean    Yellow

问题是,并非第一个列表中的所有 ID 都存在于 excel 文件中。

我的最终目标是拥有一个如下所示的数据框:

ID  Apr 2021    May 2021
100    -           -
105   Red          -
110             Yellow
158   Blue      Yellow

我熟悉遍历文件夹中所有文件的方法。我还能够找到位于 excel 文件中的所有标识符,并返回它们所在的文件。

但是,我正在努力返回与标识符相关联的数据,而不是标识符本身。我也在努力将来自不同文件的数据聚合到同一个数据框中(熊猫说当数组大小不同时他无法创建数据框)。

希望我的问题很清楚,非常感谢您的帮助。

【问题讨论】:

    标签: python pandas list dataframe dictionary


    【解决方案1】:

    transpose() 函数的第一个转置 ID --> ID.T
    其次frames = [ID, color1, color2] 其中color1color2 表示来自相应月份的文件的数据框。
    第三result = pd.concat(frames, keys=["ID", "April2021", "May2021"])

    【讨论】:

      【解决方案2】:

      快速而肮脏的方式: 使用您的所有 ID 创建一个数据框(您在上面提供的列表)。并使用 pd.merge 与您将从 ID 上的各个文件创建的数据框离开连接。

      【讨论】:

      • 谢谢,经过 pd.merge 的一些研究,我找到了我正在寻找的解决方案
      猜你喜欢
      • 1970-01-01
      • 2018-12-04
      • 2017-02-05
      • 1970-01-01
      • 2017-06-23
      • 2013-02-06
      • 2023-02-16
      • 1970-01-01
      • 2018-01-25
      相关资源
      最近更新 更多