示例数据框:
rand = np.random.RandomState(1)
df = pd.DataFrame({'A': ['group1', 'group2', 'group3'] * 2,
'B': rand.rand(6),
'C': rand.rand(6),
'D': rand.rand(6)})
打印 df
A B C D
0 group1 0.417022 0.186260 0.204452
1 group2 0.720324 0.345561 0.878117
2 group3 0.000114 0.396767 0.027388
3 group1 0.302333 0.538817 0.670468
4 group2 0.146756 0.419195 0.417305
5 group3 0.092339 0.685220 0.558690
按列A分组
group = df.groupby('A')
使用agg函数返回每个组的最大值。
max1 = group['B'].agg({'max' : np.max})
print max1
max
A
group1 0.417022
group2 0.720324
group3 0.092339
但我希望保留(或重新获取)其他列C和D中的相应数据。这将是包含最大值的行中剩余的数据。 因此,返回结果应该是:
A B C D
group1 0.417022 0.186260 0.204452
group2 0.720324 0.345561 0.878117
group3 0.092339 0.685220 0.558690
有人可以展示如何做到这一点吗?非常感谢任何帮助。