如何在Pandas中串联可变数目的列

时间:2018-08-10 19:20:40

标签: python pandas

我有一个像这样的数据框:

    name  aka     fka
0   Alex  Al      NaN
1   Bob   Bobbert Robert
2   Carol NaN     NaN

我想以一系列串联的可能名字结尾,例如:

0  Alex,Al
1  Bob,Bobbert,Robert
2  Carol

但是str.cat会给我额外的, s:

df.name.str.cat([df.aka, df.fka], sep=',', na_rep='')
0              Alex,Al,
1    Bob,Bobbert,Robert
2               Carol,,
Name: name, dtype: object

我可以使用一堆特殊情况的str.replace来确保没有前导/后缀/重复的,,但是有更好的方法来加入可变数量的列?

2 个答案:

答案 0 :(得分:3)

您可以使用

In [489]: df.apply(lambda x: x.str.cat(sep=','), axis=1)
Out[489]:
0               Alex,Al
1    Bob,Bobbert,Robert
2                 Carol
dtype: object

答案 1 :(得分:1)

要快速解决您的binaryFiles解决方案,只需添加str.cat

str.strip(',')