【问题标题】:Difficult aggregation and summarize of DataFrame in Python PandasPython Pandas中DataFrame的难点聚合与总结
【发布时间】:2020-12-08 23:14:48
【问题描述】:

我有一个如下所示的 DataFrame:

data = pd.DataFrame({"ID" : [1, 2, 3, 22, 3],
                    "Nazwa" : ["aa", "bb", "cc", "dd", "cc"], 
                    "L" : [11, 22, 33, 55, 44]})

enter image description here

最后,我想按“Nazwa”对这个 DF 进行分组,然后按“ID”聚合(总和)。然后我想为“Nazwa”中的每个值总结“ID”和“L”中这个“Nazwa”的最大值。可能还不够好理解所以下面我根据上面的表格数据把我想实现的表格放在下面。

enter image description here

【问题讨论】:

  • 顺便说一句,您应该嵌入图像(但更好的是 - 将您的表格复制粘贴到问题中并将其突出显示为代码)

标签: python pandas dataframe aggregate


【解决方案1】:

将 group by 与 agg 一起使用,这样:

data.groupby(['Nazwa']).agg({'ID':'sum','L':'max'}).reset_index()

想要的结果:

   Nazwa    ID  L
0   aa      1   11
1   bb      2   22
2   cc      6   44
3   dd     22   55

如果列的顺序很关键:

data.groupby(['Nazwa']).agg({'ID':'sum','L':'max'}).reset_index()[['ID','Nazwa','L']]

【讨论】:

  • 太棒了!谢谢!但是我怎样才能删除索引?因为目前我在 index 和 ID 和 Li 列中有 ID 和 Nazwa,reset_index() 不起作用?
  • 只需执行:data.index = data['ID''] 然后删除列 ['ID']。
  • 完美!非常感谢我接受了你的回答 adhg!
  • @rumor154 很高兴。欢迎来到 SO
猜你喜欢
  • 2021-04-06
  • 2021-04-20
  • 2021-04-14
  • 2021-04-14
  • 2021-04-06
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多