我有一个pandas数据帧(最初是从sql查询生成的),它看起来像:
index AccountId ItemID EntryDate
1 100 1000 1/1/2016
2 100 1000 1/2/2016
3 100 1000 1/3/2016
4 101 1234 9/15/2016
5 101 1234 9/16/2016
etc....
我想把这个缩小到一个唯一的列表,只返回具有最早可用日期的条目,如下所示:
index AccountId ItemID EntryDate
1 100 1000 1/1/2016
4 101 1234 9/15/2016
etc....
对于一个相当新的熊猫开发的任何指针或方向?独特的功能似乎无法处理这些类型的规则,并且循环遍历数组并确定哪一个丢弃对于一个简单的任务来说似乎很麻烦...是否有一个函数我是缺少这样做?
答案 0 :(得分:1)
让我们使用groupby
,idxmin
和.loc
:
df_out = df2.loc[df2.groupby('AccountId')['EntryDate'].idxmin()]
print(df_out)
输出:
AccountId ItemID EntryDate
index
1 100 1000 2016-01-01
4 101 1234 2016-09-15