У меня есть следующий фрейм данных:
import pandas as pd
data = {
'Num' : ['1','2', '3','4','5','6','7'],
'col1': ['val1', 'val6', 'val3', 'val7', 'val2','val4','val5'],
'col2': ['','val3','val5','','','',''],
'col3': ['','val1','val2','','','','']
}
df = pd.DataFrame(data)
df["myvals"]=1
Num col1 col2 col3 myvals
0 1 val1 1
1 2 val6 val3 val1 1
2 3 val3 val5 val2 1
3 4 val7 1
4 5 val2 1
5 6 val4 1
6 7 val5 1
Я пытаюсь перенести значения из 'col1', 'col2' и 'col3' в один и тот же набор 'поворотных столбцов', но до сих пор я могу захватывать только значения из' col1 ':
pd.pivot_table(df, values="myvals", index=["Num"], columns="col1", fill_value=0)
col1 val1 val2 val3 val4 val5 val6 val7
Num
1 1 0 0 0 0 0 0
2 0 0 0 0 0 1 0
3 0 0 1 0 0 0 0
4 0 0 0 0 0 0 1
5 0 1 0 0 0 0 0
6 0 0 0 1 0 0 0
7 0 0 0 0 1 0 0
Любые идеи о том, как также ввести значения из' col2 'и' col3 ', выглядят какниже, где строки для 'Num' = 2 и 'Num' = 3 должны иметь несколько единиц?
col1 val1 val2 val3 val4 val5 val6 val7
Num
1 1 0 0 0 0 0 0
2 1 0 1 0 0 1 0
3 0 1 1 0 1 0 0
4 0 0 0 0 0 0 1
5 0 1 0 0 0 0 0
6 0 0 0 1 0 0 0
7 0 0 0 0 1 0 0