我有一个操作数据的数据框。我需要为每个 Vendor
返回一条记录及其相应的最大 Insert Date
。
#import pandas as pd
#df = pd.read_clipboard()
Vendor Insert_Date Total
Steph 2017-10-25 2
Matt 2017-10-31 13
Chris 2017-11-03 3
Steve 2017-10-23 11
Chris 2017-10-27 3
Steve 2017-11-01 11
我想返回以下结果(顺序无关紧要,除非它影响索引):
Vendor Insert_Date Total
Steph 2017-10-25 2
Steve 2017-11-01 11
Matt 2017-10-31 13
Chris 2017-11-03 3
我可以通过使用 df.groupby(['Vendor']).agg({'Insert_Date' :'max'})
但是我想要索引,这样我就可以使用 iloc
(或其他形式的 loc
)并过滤结果。我一直在玩 idxmax()
一点点,但似乎无法得到想要的结果
最佳答案
使用drop_duplicates
df.sort_values(['Vendor','InsertDate']).drop_duplicates(['Vendor'],keep='last')
Out[1442]:
Vendor InsertDate Total
2 Chris 2017-11-03 3
1 Matt 2017-10-31 13
0 Steph 2017-10-25 2
5 Steve 2017-11-01 11
关于python - 按类别获取最大值索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47165083/