2016-09-28 3 views
3

Wie kann ich mehrere Spalten in einer einzigen Instanz in einem bestehenden Pandas DataFrame-Objekt initialisieren? Ich kann in einer Instanz einzelne Spalte initialisieren, auf diese Weise:Wie initialisiert man mehrere Spalten zu bestehenden Pandas DataFrame

df = pd.DataFrame({'a':[1,2,3],'b':[4,5,6]}, dtype='int') 
df['c'] = 0 

aber ich kann nicht wie etwas tun:

df[['c','d']] = 0 or 
df[['c']['d']] = 0 

gibt es eine Weise, die ich dies erreichen können?

Antwort

1

Ich habe eine Lösung here.

df.reindex(columns = list['cd']) 

wird den Trick tun.

tatsächlich wird es sein:

df.reindex(columns = list['abcd']) 
+1

Sollte 'df.reindex (Spalten = list ('abcd')). Fillna (0)'. – Abdou

+0

ja..actuall fillna (0) ist was ich gesucht habe. danke –

+0

Was Sie derzeit haben, wird einen Fehler werfen. Sollte sein: 'columns = list ('abcd') 'oder' columns = [' a ',' b ',' c ',' d '] 'für das Argument' columns'. – Abdou

0

pd.concat

pd.concat([df, pd.DataFrame(0, df.index, list('cd'))], axis=1) 

enter image description here


join

df.join(pd.DataFrame(0, df.index, list('cd'))) 

enter image description here

Verwandte Themen