2014-10-20 16 views
1

我正在看一組DataFrame中的臨時僱員。我正在使用熊貓,我需要爲每個人刪除重複的內容。所以對於Greene,我只想從apnt_ymd列中獲得一個唯一的日期。該集合中有兩個2012-04-08日期,我只需要一個。drop_duplicates集內

在過去,我是用數據通過使用下面的代碼設置中類似的東西,看了分鐘(和最大使用idxmax)日期幫助:

first_apt = df.loc[df.groupby('ssno')['apnt_ymd'].idxmin()] 

我需要類似的東西,將採取取出數據集中的所有重複日期。

如何使用drop_duplicates方法刪除每個人記錄集的所有重複日期?還是有另一種方式 - 比如申請?

ssno nm_emp_lst nm_emp_fst apnt_ymd 
299769 123456789 GREENE ALTON 2014-05-04 
192323 123456789 GREENE ALTON 2013-04-07 
192324 123456789 GREENE ALTON 2012-04-08 
192324 123456789 GREENE ALTON 2012-04-08 
102872 123456789 GREENE ALTON 2011-04-10 
175701 987654321 DUBE JEFF 2013-04-21 
177583 777888999 IRVING SARA 2013-05-13 
4785  777888999 IRVING SARA 2012-05-16 
222300 444444444 LEMERE GEORGE 2013-04-14 
24386 444444444 LEMERE GEORGE 2012-03-25 
24434 444444444 LEMERE GEORGE 2011-05-08 
+0

這是做你想做的:'df.drop_duplicates(['nm_emp_lst 」, 'apnt_ymd'])'? – EdChum 2014-10-20 15:42:09

+0

我認爲它工作。我要導出然後驗證我的數據。下面是我在上面的代碼中使用的代碼:research.loc [research.apnt_ymd.drop_duplicates(take_last = False).index] .sort('ssno')[: 10] – david 2014-10-20 15:52:02

+0

您是否可以檢查我的答案,我的第一條評論是在沒有正確閱讀您的要求的情況下發布的,我想我的答案應該可以解決您的問題,謝謝。 – EdChum 2014-10-20 15:54:00

回答

3

如果我理解正確的話,那麼你就可以在數據幀使用drop_duplicates,傳遞你想重複檢查的列的列表:

In [31]: 

df.drop_duplicates(['nm_emp_lst','apnt_ymd']) 
Out[31]: 
     id  ssno nm_emp_lst nm_emp_fst apnt_ymd 
0 299769 123456789  GREENE  ALTON 2014-05-04 
1 192323 123456789  GREENE  ALTON 2013-04-07 
2 192324 123456789  GREENE  ALTON 2012-04-08 
4 102872 123456789  GREENE  ALTON 2011-04-10 
5 175701 987654321  DUBE  JEFF 2013-04-21 
6 177583 777888999  IRVING  SARA 2013-05-13 
7  4785 777888999  IRVING  SARA 2012-05-16 
8 222300 444444444  LEMERE  GEORGE 2013-04-14 
9 24386 444444444  LEMERE  GEORGE 2012-03-25 
10 24434 444444444  LEMERE  GEORGE 2011-05-08 

編輯 基於我們的私人聊天它看起來以下是你想要的:

In [89]: 

df.drop_duplicates(['ssno','apnt_ymd']) 
Out[89]: 
     id  ssno nm_emp_lst nm_emp_fst apnt_ymd 
0 299769 123456789  GREENE  ALTON 2014-05-04 
1 192323 123456789  GREENE  ALTON 2013-04-07 
2 192324 123456789  GREENE  ALTON 2012-04-08 
4 102872 123456789  GREENE  ALTON 2011-04-10 
5 175701 987654321  DUBE  JEFF 2013-04-21 
6 177583 777888999  IRVING  SARA 2013-05-13 
7  4785 777888999  IRVING  SARA 2012-05-16 
8 222300 444444444  LEMERE  GEORGE 2013-04-14 
9 24386 444444444  LEMERE  GEORGE 2012-03-25 
10 24434 444444444  LEMERE  GEORGE 2011-05-08 
+0

謝謝EdChum,是的df.drop_duplicates(['ssno','apnt_ymd'])似乎工作。 – david 2014-10-21 18:23:39