python - 按类别获取最大值索引

标签 python pandas dataframe

我有一个操作数据的数据框。我需要为每个 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/

相关文章:

来自特定模块的 Python 异常标题

python - 在 Python/Matplotlib 中给文本加下划线

python - 将 json 对象反规范化为平面对象

r - 将许多 CSV 合并到不同的数据框中

python - Pandas 将多个数据帧合并到一个时间索引上,并使用所有其他数据帧的最新值

python - 带有网络抓取的 Feed 数据框

python - 如何在 Pandas 和 Matplotlib 中使用 ax

python - 在 pandas.groupby 之后删除重复值

python - 转换 DataFrame 中的每个组

python - 从列表中获取素数