2014-04-22 21 views
8

Bir dataframe şöyle var:Python Pandalar orijinal dataframe için kukla sütunlar eklemek

YIL değer için

             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 

, ben sene sütunları eklemek ister (... 1993,1994, 2009) Orijinal veri çerçevesine göre, YEAR değeri 1992 ise, o zaman 1992 sütunundaki değer, aksi halde 0 olmalıdır.

Büyük bir veri kümesine sahip olduğum için sonsuz bir döngü kullandım. . Herkes bana yardımcı olabilir, çok teşekkürler! Eğer YEAR sütunu silmek isterseniz

cevap

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 

, o zaman del df['YEAR'] ile bu takip başladı. Veya, concat çağırmadan önce df den YEAR sütun bırakın:

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

neyi does'in [77] 'demek? – guo

+1

@guo: Bu, [IPython'un] (https://ipython.org/) etkileşimli kabuk istemidir. Girdileri sayıyor. – unutbu