Ваше решение работает для меня с небольшой модификацией: удалена выписка из первого столбца и присвоено ему DataFrame
:
data['all'] = data.apply(lambda x: ','.join(x.dropna().astype(str)),axis=1)
Если нет пропущенных значений и нет числовых значений c:
data['all'] = data.apply(','.join,axis=1)
print (data)
0 1 2 3 4 all
0 a b c d e a,b,c,d,e
При необходимости новый столбец DataFrame
:
df = = data.apply(lambda x: ','.join(x.dropna().astype(str)),axis=1).to_frame('new')
#df = data.apply(','.join,axis=1).to_frame('new')
print (df)
new
0 a,b,c,d,e