2013-10-30 25 views
7

Ich habe eine Pandas Dataframe y mit 1 Million Zeilen und 5 Spalten.Pandas DataFrame Spaltenverkettung

np.shape(y) 
(1037889, 5) 

Die Spaltenwerte sind 0 oder 1. etwa wie folgt aussieht:

y.head() 
a, b, c, d, e 
0, 0, 1, 0, 0 
1, 0, 0, 1, 1 
0, 1, 1, 1, 1 
0, 0, 0, 0, 0 

ich einen Datenrahmen mit 1 Million Zeilen und 1 Spalte wollen.

np.shape(y) 
(1037889,) 

wo die Spalte nur die 5 Spalten verkettet ist.

New column 
0, 0, 1, 0, 0 
1, 0, 0, 1, 1 
0, 1, 1, 1, 1 
0, 0, 0, 0, 0 

ich immer wieder versuchen, verschiedene Dinge wie merge, concat, dstack, etc ... kann aber nicht diese scheinen, um herauszufinden.

Antwort

10

Wenn Sie neue Spalte möchten, dass alle Daten auf Zeichenfolge verkettet haben, ist es gut, Fall für apply() Funktion:

>>> df = pd.DataFrame({'a':[0,1,0,0], 'b':[0,0,1,0], 'c':[1,0,1,0], 'd':[0,1,1,0], 'c':[0,1,1,0]}) 
>>> df 
    a b c d 
0 0 0 0 0 
1 1 0 1 1 
2 0 1 1 1 
3 0 0 0 0 
>>> df2 = df.apply(lambda row: ','.join(map(str, row)), axis=1) 
>>> df2 
0 0,0,0,0 
1 1,0,1,1 
2 0,1,1,1 
3 0,0,0,0