尝试将多行分类变量转换为具有虚拟变量列的单行

2024-06-01 08:51:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据集:

ID   Action      Converted
567  Email         True
567  Text          True
567  Phone call    True
432  Phone call    False
432  Social Media  False
432  Text          False

我希望最后一张桌子看起来像

ID  Email Text PhoneCall SocialMedia Converted
567 1     1    1         0             True
432 0     1    1         1             False

这是一个小样本。我有300多个独特的操作,所以手动键入它们不是一个选项。基本上,我们希望将多行中的这些分类变量转换为一行,操作显示为虚拟变量


Tags: 数据textidfalsetrueemailphonesocial
2条回答
df.groupby(['ID', 'Action']).size().unstack(fill_value=0)

输出:

^{tb1}$

pd.get_虚拟将分类变量转换为虚拟/指示变量。然后groupby将基于相似的ID连接数据帧,sum将在Action列中添加1到0

y = pd.get_dummies(df.Action, prefix='Action')
y['ID']=df.ID
y.groupby(['ID']).sum() 

相关问题 更多 >