2015-10-13 86 views
8

我有一个这样的熊猫数据帧:合并多个列中的值成一列在Python熊猫

Column1 Column2 Column3 Column4 Column5 
0 a  1  2  3  4 
1 a  3  4  5 
2 b  6  7  8 
3 c  7  7   

我想现在要做的就是让含有列1和一个新的columnA一个新的数据帧。这columnA应该包含所有的值从2列 - (到)n(其中n是列2列到行的末尾数)是这样的:

Column1 ColumnA 
0 a  1,2,3,4 
1 a  3,4,5 
2 b  6,7,8 
3 c  7,7 

我怎么能最好的办法这个问题?任何意见将是有益的。提前致谢!

回答

16

您可以拨打applyaxis=1apply行方向,那么D型转换为strjoin

In [153]: 
df['ColumnA'] = df[df.columns[1:]].apply(lambda x: ','.join(x.dropna().astype(int).astype(str)),axis=1) 
df 

Out[153]: 
    Column1 Column2 Column3 Column4 Column5 ColumnA 
0  a  1  2  3  4 1,2,3,4 
1  a  3  4  5  NaN 3,4,5 
2  b  6  7  8  NaN 6,7,8 
3  c  7  7  NaN  NaN  7,7 

在这里,我呼吁dropna摆脱NaN的,但我们需要再次转换为因此我们不会以浮点数结束。

+0

感谢您的快速回答!有没有一种方法可以从ColumnA中的Column1中排除值? –

+0

对不起,只是看到你想要的输出,所以已经更新了我的答案 – EdChum

+0

好吧,我想我明白你是怎么做到的!谢谢! –