连接列以创建新列并添加逗号,除非它们有逗号

kyvafyod  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(226)

我有这样一个 Dataframe :

name:  othercol:  col1:  col2:  col3: other_col:
aa         100     cc      a,     NaN      42
bb         100     a,      NaN    a,     100

我想将所有列连接在一起(col1、col2、col3),用逗号分隔。除非他们已经有了逗号,我不想在结尾加逗号。
预期成果:

name: othercol:   col1:  col2:  col3:  other_col:  output:
aa       100       cc     a,      NaN      42        cc, a
bb       100       a,    NaN      a,     100         a, a

我尝试过使用这种方法:

listy = ['col1', 'col2', 'col3', ']
df['output'] = df[listy].apply(lambda i: ', '.join(i[i.notnull()]) if str(i[:-1]) != ',' else ' '.join(i[i.notnull()]), axis = 1)

但我得到了重复的逗号:

name: othercol:   col1:  col2:  col3:  other_col:  output:
aa       100       cc     a,      NaN      42        cc, a
bb       100       a,    NaN      a,     100         a,, a
7jmck4yq

7jmck4yq1#

在您的代码行下添加此项,它将为您提供所需的结果:

df['output']=df['output'].str.replace(',,',', ')

相关问题