我有一个像这样的数据框:
Name id col1 col2 col3 cl4
PL 252 0 747 3 53
PL2 252 1 24 2 35
PL3 252 4 75 24 13
AD 889 53 24 0 95
AD2 889 23 2 0 13
AD3 889 0 24 3 6
BG 024 12 89 53 66
BG1 024 43 16 13 0
BG2 024 5 32 101 4
现在我需要按 ID 进行分组,对于列 col1 和 col4 找到每个 id 的总和并将其放入靠近父列的新列中(例如:col3(sum)),但对于 col2 和 col3 找到最大值。
期望的输出:
Name id col1 col1(sum) col2 col2(max) col3 col(max) col4 col4(sum)
PL 252 0 5 747 747 3 24 6 18
PL2 252 1 5 24 747 2 24 12 18
PL3 252 4 5 75 747 24 24 0 18
AD 889 53 76 24 24 95 95 23 33
AD2 889 23 76 2 24 13 95 5 33
AD3 889 0 76 24 24 6 95 5 33
BG 024 12 60 89 89 66 66 0 67
BG1 024 43 60 16 89 0 66 63 67
BG2 024 5 60 32 89 4 66 4 67
计算这个最简单、最快的方法是什么?
最(熊猫)本地的方法是使用.agg() https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.agg.html方法,允许您指定要对每列应用的聚合函数(就像在 SQL 中所做的那样)。
文档中的示例:
df.groupby('A').agg({'B': ['min', 'max'], 'C': 'sum'})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)