繁体   English   中英

按类别获取最大值的索引

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM