熊猫将列表值映射到相应的列

时间:2021-06-18 11:01:14

标签: python pandas list numpy dictionary

我有一个表 (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 

1 个答案:

答案 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