Вам нужно сочетание pivot
, explode
и str.split(',')
Сначала str.split(',')
сгенерирует список исходных строк, разделенных ,
. После этого мы используем explode()
для этого столбца, чтобы преобразовать каждый элемент в виде списка в строку, реплицируя значения индекса. Наконец, с помощью поворота мы можем присвоить значения столбца, который мы exploded
, в качестве заголовков для нашего нового фрейма данных.
Похоже, это помогает:
import pandas as pd
x=pd.DataFrame({'A':['action,adventure','adventure,biographies',
'biographies,action','adventure,diaries','biographies,diaries',
'diaries,adventure'],
'B':[1,1,2,3,7,5]})
x['A'] = x['A'].str.split(',')
x = x.explode('A')
final_df = x.pivot(columns='A')
print(final_df)
Вывод:
B
A action adventure biographies diaries
0 1.0 1.0 NaN NaN
1 NaN 1.0 1.0 NaN
2 2.0 NaN 2.0 NaN
3 NaN 3.0 NaN 3.0
4 NaN NaN 7.0 7.0
5 NaN 5.0 NaN 5.0