2013-10-30 22 views
7

Mam pandas Dataframe y z 1 milionem wierszy i 5 kolumnami.Pandas DataFrame kolumna konkatenacja

np.shape(y) 
(1037889, 5) 

Wartości kolumn są 0 lub 1. Wygląda mniej więcej tak:

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 

chcę Dataframe z 1 miliona wierszy i 1 kolumny.

np.shape(y) 
(1037889,) 

gdzie kolumna jest tylko 5 kolumn połączonych ze sobą.

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

I próbować różnych rzeczy jak merge, concat, dstack, etc ... ale nie wydają się rysunek to.

Odpowiedz

10

Jeśli chcesz nową kolumnę, aby wszystkie dane łączone na ciąg, to dobra sprawa dla apply() funkcja:

>>> 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