【问题标题】:How to sum list of pandas dataframes by with respect to given column如何对给定列求和熊猫数据框列表
【发布时间】:2021-01-03 14:45:45
【问题描述】:

我有包含两列的熊猫数据框列表,基本上是类和值:

df1:

Name Count
Bob 10
John 20

df2:

Name Count
Mike 30
Bob 40

不同的数据帧中可能有相同的“名称”,可能没有相同的“名称”,并且列表包含超过 100 个数据帧。但在每个数据框中,所有“名称”都是唯一的。

我需要的是遍历所有数据帧并创建一个大数据帧,其中显示来自“名称”的所有值及其来自所有数据帧的“计数”总和,例如:

结果:

Name Count
Bob 50
John 20
Mike 30

Bob 的数据是求和的,其他的则不是,因为它们只出现一次。一旦有很多数据框,有没有有效的方法?

【问题讨论】:

  • 合并两个 DF 并添加它们的计数?

标签: python pandas dataframe


【解决方案1】:

pd.concat 然后groupby:

df = pd.concat(dfs) # where dfs is a list of dataframes 

那你就可以了

gp = df.groupby(['Name'])['Count'].sum()

【讨论】:

    【解决方案2】:

    您可以执行以下操作(假设您有更多仅包含在一个数据框中的数据,使用fill_value=0 仍然提供价值..:

    df1.set_index('Name').add(df2.set_index('Name'), fill_value=0).reset_index()
    
    >>> Name    Count
    0   Bob     50.0
    1   John    20.0
    2   Mike    30.0
    

    【讨论】:

      猜你喜欢
      • 2016-05-29
      • 1970-01-01
      • 2019-03-12
      • 2015-07-31
      • 2021-08-16
      • 2017-08-09
      • 2021-08-08
      • 2020-05-30
      • 2021-04-05
      相关资源
      最近更新 更多