gpt4 book ai didi

python - groupby 列同时显示其他列

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:22 24 4
gpt4 key购买 nike

我有一个数据集如下:

name | $ | letter
adam, 34, c
beny, 45, e
adam, 55, a
beny, 87, t

我想提取每个名字捐赠的最大金额,以及相应的字母。所以对于 Adam,我会得到:adam,55,a。

如果我使用:

df.groupby('name')[['$']].max()

那没有给我相应的字母。

如果我使用:

df.groupby('name')[['$','letter']].max()

我得到了字母表中最大的 $ 和最高的字母。

最佳答案

使用DataFrameGroupBy.idxmax获取最大值的索引,然后按 loc 选择:

print (df.groupby('name')['$'].idxmax())
name
adam 2
beny 3
Name: $, dtype: int64

df = df.loc[df.groupby('name')['$'].idxmax()]
print (df)
name $ letter
2 adam 55 a
3 beny 87 t

另一种解决方案 sort_values先用 GroupBy.last :

df = df.sort_values('$').groupby('name', as_index=False).last()
print (df)
name $ letter
0 adam 55 a
1 beny 87 t

解决方案的区别是 idxmax 让原始索引,last 重置它们。

关于python - groupby 列同时显示其他列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44601293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com