我有一个数据帧,其中一列名为label
,它的值为[0,1,2,3,4,5,6,8,9]
。
我想用它生成虚拟列,但我希望将一些标签连接在一起,例如,如果观测值有标签0、1或2,我希望dummy_012
为1
如果我使用命令df2 = pd.get_dummies(df, columns=['label'])
,它将创建9列,每个标签1列
我知道我可以在那之后使用df2['dummy_012']=df2['dummy_0']+df2['dummy_1']+df2['dummy_2']
将其转换为一个joint列,但我想知道是否有更类似python的方法(或者一些函数,我可以将参数更改为join)
我不知道这是pythonic,因为可能存在一个更优雅的解决方案,但我允许您更改参数,并将其矢量化。我读到过get_dummies()在处理大量数据时可能有点慢,一般来说,矢量化熊猫是一种很好的做法。所以我把这个函数矢量化,让它用numpy数组进行计算。与类似函数相比,当数据集的大小增加时,它应该会提高性能
此函数将把数据帧和数字列表作为字符串,并返回数据帧和所需的列
如果您希望输入是整数而不是字符串,可以调整上面的函数,如下所示
也许这种方法可以提供一个想法:
输出:
然后应用假人:
相关问题 更多 >
编程相关推荐