Вероятно, это было вызвано неправильной агрегацией строк по столбцам (вы хотели сделать что-то вроде df.agg(lambda x: ','.join(x.dropna()), axis=1)
?).
Однако, для справки, вы можете удалить запятые, используя решение без регулярных выражений, включающее str.split
и str.join
:
df['packitt'] = [
','.join(filter(None, x.split(','))) if pd.notna(x) else x
for x in df['packitt']
]
df
rade volume packitt
0 wear 28 cult,daok
1 kwat 45 vaner ,boera
2 itre 17 eaker, ewlvwe, The wrerin
3 reww 87 None
4 hakw 57 rabe,boera
5 kryh 45 vaner ,boera,vanya
Или, используя строковые операции столбца pandas str.replace
(с регулярным выражением) + str.strip
:
df['packitt'] = df.packitt.str.replace(r'(\s*,\s*)+', ',').str.strip(',')
df
rade volume packitt
0 wear 28 cult,daok
1 kwat 45 vaner,boera
2 itre 17 eaker,ewlvwe,The wrerin
3 reww 87 None
4 hakw 57 rabe,boera
5 kryh 45 vaner,boera,vanya
Где r'(\s*,\s*)+'
будет соответствовать 1 или более запятым, окруженным 0 или более пробелами.