2017-05-22 95 views
0

我有一个熊猫数据框(最初从SQL查询生成),看起来像:Python的大熊猫:选择唯一从DF根据规则

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.... 

任何指针或方向为一个相当新的熊猫开发?这个独特的函数看起来不能处理这些类型的规则,并且循环遍历数组,并计算出要删除哪一个似乎对于一个简单任务来说很麻烦......是否有一个函数,我是错过了这个吗?

回答

1

让我们用groupbyidxmin,并且.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 
+0

美丽。非常感谢。 – iamthestarlord

+0

@iamthestarlord不客气,谢谢。 –