#python #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
Ответ №1:
Добавьте это в свою строку кода, и это должно дать вам желаемый результат:
df['output']=df['output'].str.replace(',,',', ')