gpt4 book ai didi

Pandas 数据透视表选择具有最大值的行

转载 作者:行者123 更新时间:2023-12-01 08:47:23 26 4
gpt4 key购买 nike

我有 Pandas 数据框:

df

Id Name CaseId Value
82 A1 case1.01 37.71
1558 A3 case1.01 27.71
82 A1 case1.06 29.54
1558 A3 case1.06 29.54
82 A1 case1.11 12.09
1558 A3 case1.11 32.09
82 A1 case1.16 33.35
1558 A3 case1.16 33.35

对于每个 Id, Name 对,我需要选择具有最大值的 CaseId。

即我正在寻求以下输出:
Id      Name        CaseId       Value 
82 A1 case1.01 37.71
1558 A3 case1.16 33.35

我尝试了以下方法:
import pandas as pd
pd.pivot_table(df, index=['Id', 'Name'], columns=['CaseId'], values=['Value'], aggfunc=[np.max])['amax']

但它所做的只是针对每个 CaseId作为列,它给出了最大值,而不是我在上面寻求的结果。

最佳答案

sort_values + drop_duplicates

df.sort_values('Value').drop_duplicates(['Id'],keep='last')
Out[93]:
Id Name CaseId Value
7 1558 A3 case1.16 33.35
0 82 A1 case1.01 37.71

由于我们同时发布,添加更多方法
df.sort_values('Value').groupby('Id').tail(1)
Out[98]:
Id Name CaseId Value
7 1558 A3 case1.16 33.35
0 82 A1 case1.01 37.71

关于Pandas 数据透视表选择具有最大值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50451793/

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