Если df
выглядит следующим образом:
>>> df = pd.DataFrame({'ID': [10000, 10001], 'Fruit': ['Apple, Orange, Pear', 'Apple, Banana']})
>>> print(df)
ID Fruit
0 10000 Apple, Orange, Pear
1 10001 Apple, Banana
, вы можете использовать метод pandas.DataFrame.apply()
, чтобы создать новый столбец списков, состоящий из словарей с новыми строками. И после этого вы можете объединить эти списки, чтобы сделать из них новый фрейм данных. Код следующий:
>>> df['new'] = df.apply(lambda row: [{'ID': row.ID, 'Fruit': item} for item in row.Fruit.split(', ')], axis=1)
>>> df_new = pd.DataFrame(df.new.sum())
>>> print(df_new)
ID Fruit
0 10000 Apple
1 10000 Orange
2 10000 Pear
3 10001 Apple
4 10001 Banana