我有一个表 (df),它有一个“actions”列,其中包含一个列表,其中包含 4 个选项中的 2 个值: do1,do2,do3,do4
print(df['actions'])
0 [do1, do4]
1 [do2, do1]
2 [do2, do3]
3 [do2, do1]
4 [do4, do2]
我正在寻找正确的映射函数,以便向表中添加 4 列,并使用“操作”列中的相应值填充每一列。例如:
print(df)
do1, do2, do3, do4
1 0 0 1
1 1 0 0
答案 0 :(得分:4)
IIUC,你可以试试:
df = pd.DataFrame({'action': {'0': ['do1', 'do4'],
'1': ['do2', 'do1'],
'2': ['do2', 'do3'],
'3': ['do2', 'do1'],
'4': ['do4', 'do2']}})
df = pd.get_dummies(df.action.explode()).groupby(level=0).agg(sum)
do1 do2 do3 do4
0 1 0 0 1
1 1 1 0 0
2 0 1 1 0
3 1 1 0 0
4 0 1 0 1