我有一个这样的熊猫数据框:
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
我现在想做的是获取一个包含Column1和新columnA的新数据框。此columnA应该包含第2列-(to)n的所有值(其中n是从Column2到行尾的列数),如下所示:
Column1 ColumnA 0 a 1,2,3,4 1 a 3,4,5 2 b 6,7,8 3 c 7,7
我如何最好地解决这个问题?任何意见将是有益的。提前致谢!
您可以按行调用applypass ,然后将dtype转换为和:axis=1``apply``str``join
apply
axis=1``apply``str``join
In [153]: df['ColumnA'] = df[df.columns[1:]].apply( lambda x: ','.join(x.dropna().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,但是我们需要再次int强制转换为,这样我们才不会以float作为str结束。
dropna
NaN
int