Как в pandas разделить строку на несколько по разделителю

Рейтинг: 0Ответов: 1Опубликовано: 26.07.2023

Есть датафрейм pandas из одного столбца. В каждой ячейке от одного до нескольких слов разделенных запятыми. Подскажите как объединить все слова в один столбец, чтобы в каждой ячейке было только одно слово?

Ответы

▲ 1Принят

Для объединения слов в один столбец в каждой ячейке, вы можете использовать метод str.split() для разделения строк по запятым, а затем метод explode() для превращения списка слов в отдельные строки. Затем можно снова объединить строки с помощью метода groupby() и apply() с функцией ','.join для получения одного слова в каждой ячейке. Вот пример кода:

import pandas as pd

# Пример исходного датафрейма с одним столбцом
data = {'words': ['apple,orange', 'banana', 'grape,kiwi,mango', 'pear']}
df = pd.DataFrame(data)

# Разделение строк по запятым и превращение списка в отдельные строки
df['words'] = df['words'].str.split(',')

# Превращение списка слов в отдельные строки
df = df.explode('words')

# Объединение слов обратно в одну строку с помощью groupby и apply
df = df.groupby(level=0)['words'].apply(','.join).reset_index()

print(df)

В результате получится датафрейм, в котором в каждой ячейке будет только одно слово:

   index   words
0      0   apple
1      1  orange
2      2  banana
3      3   grape
4      3    kiwi
5      3   mango
6      4    pear