2017-05-22 137 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不客氣,謝謝。 –