有没有办法使用get_dummies()进行元素的动态预处理(拆分)?

时间:2016-04-18 19:24:46

标签: python python-3.x pandas

我一直在努力解决这个问题,我无法弄明白。

我有一些我正在准备的数据,在此过程中,我必须将数据的某些分类部分转换为二进制文件,使用虚拟对象(我想)。

问题是我的原始数据中的某些条目实际上“属于”所涉及的特定维度的一个或多个类别,我希望在下面的示例中清楚这一点。我希望能够将一个条目归因于多个类别,或者对于那些允许这样做的假人(或其他任何事情)进行某种解决方法。

我看起来像这样:

In [116]: df_sample
Out[116]: 
    A           B          C
0  A1   12.000000       CAT1
1  A2    0.029767       CAT2
2  A3   -2.321058       CAT3
3  A4  121.000000  CAT1,CAT2
4  A5    0.493182       CAT3

使用pd.get_dummies()我得到了这个(有道理):

In [117]: pd.get_dummies(df_sample.C)
Out[117]: 
   CAT1  CAT1,CAT2  CAT2  CAT3
0   1.0        0.0   0.0   0.0
1   0.0        0.0   1.0   0.0
2   0.0        0.0   0.0   1.0
3   0.0        1.0   0.0   0.0
4   0.0        0.0   0.0   1.0

但事实上,我想找到一种方法来解决这个问题:

>>> pd.get_dummies(df_sample.C) 
   CAT1  CAT2  CAT3
0   1.0   0.0   0.0
1   0.0   1.0   0.0
2   0.0   0.0   1.0
3   1.0   1.0   0.0
4   0.0   0.0   1.0

CAT1CAT2上打开第三行。

感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

sep=','

中使用get_dummies()
In [379]: df_sample['C'].str.get_dummies(sep=',')
Out[379]:
   CAT1  CAT2  CAT3
0     1     0     0
1     0     1     0
2     0     0     1
3     1     1     0
4     0     0     1