2014-09-23 6 views
4

데이터 프레임의 임시 직원 그룹을보고 있습니다. 나는 팬더를 사용하고 있으며 목록에있는 각 사람의 첫 번째 'apnt_ymd'날짜를 가져와야합니다. Greene에게는 2011-04-10이 필요합니다. LEMERISE에게는 2011-05-08이 필요합니다.python pandas groupby 처음으로

df['apnt_ymd'] = pd.to_datetime(df['apnt_ymd']) 

그래서 우리는 nm_emp_list 열을 groupby 수 있습니다 :

In:name = temphires[['ssno','nm_emp_lst','nm_emp_fst','apnt_ymd']].sort('ssno') 
    name.drop_duplicates(['apnt_ymd']) 

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 
102872 123456789 GREENE ALTON 2011-04-10 
175701 987654321 DUBE JEFFREY 2013-04-21 
177583 777888999 IRVING SARA 2013-05-13 
4785  777888999 IRVING SARA 2012-05-16 
222300 444444444 LEMERISE GEORGE 2013-04-14 
24386 444444444 LEMERISE GEORGE 2012-03-25 
24434 444444444 LEMERISE GEORGE 2011-05-08 

이 당신이하고 변환 할 수없는 경우 apnt_ymd가 날짜 또는 날짜는, 이미, 당신에게

답변

5

몇 가정을 감사합니다 apnt_ymd의 최저 값을 계산하고 idxmin()을 사용하여 색인을 반환하십시오. 그런 다음 원래의 df에 대해이 색인을 사용하여 원하는 결과를 표시 할 수 있습니다.

In [4]: 

df.loc[df.groupby('nm_emp_lst')['apnt_ymd'].idxmin()] 
Out[4]: 
     id  ssno nm_emp_lst nm_emp_fst apnt_ymd 
4 175701 987654321  DUBE JEFFREY 2013-04-21 
3 102872 123456789  GREENE  ALTON 2011-04-10 
6 84785 126644444  IRVING  SARA 2012-05-16 
9 24434 777888999 LEMERISE  GEORGE 2011-05-08 
+0

예를 들어 목록을 통해 스크럽하면 내 질문이 해결 된 것 같습니다. EdChum 감사합니다! – david

+0

@ user2201603 멋지다, 이제 upvote 수 있습니다;) – EdChum

관련 문제