[英]Get Index of Max Value by Category
我有一个操作数据的数据框。 我需要返回每个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'})
检索每个Vendor
的最大Insert Date
,但是我想拥有索引,以便可以使用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
IIUC:
df['Insert Date'] = pd.to_datetime(df['Insert Date'])
df.iloc[df.groupby('Vendor')['Insert Date'].idxmax()]
输出:
Vendor Insert Date 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.