2014-04-22 11 views
8

나는 dataframe은 다음과 같습니다 있습니다파이썬 팬더는 원래 dataframe에 더미 열을 추가

연도 값에 대한

             JOINED_CO GENDER    EXEC_FULLNAME  GVKEY  YEAR  CONAME  BECAMECEO  REJOIN   LEFTOFC    LEFTCO  RELEFT    REASON  PAGE 
CO_PER_ROL                                                                                                                                      
5622              NaN   MALE   Ira A. Eichner   1004  1992  AAR CORP   19550101     NaN  19961001  19990531     NaN  RESIGNED    79 
5622              NaN   MALE   Ira A. Eichner   1004  1993  AAR CORP   19550101     NaN  19961001  19990531     NaN  RESIGNED    79 
5622              NaN   MALE   Ira A. Eichner   1004  1994  AAR CORP   19550101     NaN  19961001  19990531     NaN  RESIGNED    79 
5622              NaN   MALE   Ira A. Eichner   1004  1995  AAR CORP   19550101     NaN  19961001  19990531     NaN  RESIGNED    79 
5622              NaN   MALE   Ira A. Eichner   1004  1996  AAR CORP   19550101     NaN  19961001  19990531     NaN  RESIGNED    79 
5622              NaN   MALE   Ira A. Eichner   1004  1997  AAR CORP   19550101     NaN  19961001  19990531     NaN  RESIGNED    79 
5622              NaN   MALE   Ira A. Eichner   1004  1998  AAR CORP   19550101     NaN  19961001  19990531     NaN  RESIGNED    79 
5623              NaN   MALE  David P. Storch   1004  1992  AAR CORP   19961009     NaN       NaN       NaN     NaN       NaN    57 
5623              NaN   MALE  David P. Storch   1004  1993  AAR CORP   19961009     NaN       NaN       NaN     NaN       NaN    57 
5623              NaN   MALE  David P. Storch   1004  1994  AAR CORP   19961009     NaN       NaN       NaN     NaN       NaN    57 
5623              NaN   MALE  David P. Storch   1004  1995  AAR CORP   19961009     NaN       NaN       NaN     NaN       NaN    57 
5623              NaN   MALE  David P. Storch   1004  1996  AAR CORP   19961009     NaN       NaN       NaN     NaN       NaN    57 

, 나는 년 열 추가 할 (... 1993,1994를, 2009) YEAR의 값이 1992 인 경우 1992 열의 값은 0이어야합니다.

매우 바보 같은 for 루프를 사용했지만 대규모 데이터 세트를 가지고 있으므로 영원히 계속 실행되는 것 같습니다. . 아무도 도와 주실 수 있습니까, 고맙습니다. 당신이 YEAR 열을 삭제하려면

답변

20
In [77]: df = pd.concat([df, pd.get_dummies(df['YEAR'])], axis=1); df 
Out[77]: 
     JOINED_CO GENDER EXEC_FULLNAME GVKEY YEAR CONAME BECAMECEO \ 
5622  NaN MALE Ira A. Eichner 1004 1992 AAR CORP 19550101 
5622  NaN MALE Ira A. Eichner 1004 1993 AAR CORP 19550101 
5622  NaN MALE Ira A. Eichner 1004 1994 AAR CORP 19550101 
5622  NaN MALE Ira A. Eichner 1004 1995 AAR CORP 19550101 
5622  NaN MALE Ira A. Eichner 1004 1996 AAR CORP 19550101 
5622  NaN MALE Ira A. Eichner 1004 1997 AAR CORP 19550101 
5622  NaN MALE Ira A. Eichner 1004 1998 AAR CORP 19550101 
5623  NaN MALE David P. Storch 1004 1992 AAR CORP 19961009 
5623  NaN MALE David P. Storch 1004 1993 AAR CORP 19961009 
5623  NaN MALE David P. Storch 1004 1994 AAR CORP 19961009 
5623  NaN MALE David P. Storch 1004 1995 AAR CORP 19961009 
5623  NaN MALE David P. Storch 1004 1996 AAR CORP 19961009 

     REJOIN LEFTOFC LEFTCO RELEFT REASON PAGE 1992 1993 1994 \ 
5622  NaN 19961001 19990531  NaN RESIGNED 79  1  0  0 
5622  NaN 19961001 19990531  NaN RESIGNED 79  0  1  0 
5622  NaN 19961001 19990531  NaN RESIGNED 79  0  0  1 
5622  NaN 19961001 19990531  NaN RESIGNED 79  0  0  0 
5622  NaN 19961001 19990531  NaN RESIGNED 79  0  0  0 
5622  NaN 19961001 19990531  NaN RESIGNED 79  0  0  0 
5622  NaN 19961001 19990531  NaN RESIGNED 79  0  0  0 
5623  NaN  NaN  NaN  NaN  NaN 57  1  0  0 
5623  NaN  NaN  NaN  NaN  NaN 57  0  1  0 
5623  NaN  NaN  NaN  NaN  NaN 57  0  0  1 
5623  NaN  NaN  NaN  NaN  NaN 57  0  0  0 
5623  NaN  NaN  NaN  NaN  NaN 57  0  0  0 

     1995 1996 1997 1998 
5622  0  0  0  0 
5622  0  0  0  0 
5622  0  0  0  0 
5622  1  0  0  0 
5622  0  1  0  0 
5622  0  0  1  0 
5622  0  0  0  1 
5623  0  0  0  0 
5623  0  0  0  0 
5623  0  0  0  0 
5623  1  0  0  0 
5623  0  1  0  0 

, 당신은 del df['YEAR']으로 이것을 수행 할 수있다. 또는, concat를 호출하기 전에 df에서 YEAR 열을 삭제 :

df = pd.concat([df.drop('YEAR', axis=1), pd.get_dummies(df['YEAR'])], axis=1) 
+0

무엇 does'in [77]'말인가요? – guo

+1

@guo : 그것은 [IPython 's] (https://ipython.org/) 대화식 쉘 프롬프트입니다. 입력 번호를 지정합니다. – unutbu

관련 문제