Pandas DataFrame列拼接

8
我有一个包含100万行和5列的pandas数据框y。
np.shape(y)  
(1037889, 5)

这些列的值都为0或1。看起来就像这样:

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

我需要一个只有1列和100万行的数据框。

np.shape(y)  
(1037889, )

列是由5列连接在一起的结果。

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

我一直尝试不同的方法,例如mergeconcatdstack等等,但似乎无法弄清楚这个问题。

1个回答

11

如果您想让新列将所有的数据连接成字符串,那么使用apply()函数是一个不错的选择:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接