在pd.get_dummies返回255而不是-1之前添加减号

时间:2019-07-05 16:41:09

标签: python pandas

我认为这是一个错误,所以不是严格意义上的此站点上的话题,但我想在此与大熊猫社区一起提供帮助。让我们考虑一下此数据框:

import pandas as pd
df = pd.DataFrame({'col1': [0,1,1,0,1], 'col2':list('aabbc')})

如果我在第二列上使用pd.get_dummies并在前面加减号,这是我得到的:

print (-pd.get_dummies(df.col2))
     a    b    c
0  255    0    0
1  255    0    0
2    0  255    0
3    0  255    0
4    0    0  255

使用str.get_dummies()可获得预期结果:

print (-df.col2.str.get_dummies())
   a  b  c
0 -1  0  0
1 -1  0  0
2  0 -1  0
3  0 -1  0
4  0  0 -1

我有python 3.7.1(熊猫pd.__version__ == "0.24.2"的最新版本之一,并且在Windows 10上运行。

1 个答案:

答案 0 :(得分:2)

可能想要

(-pd.get_dummies(df.col2, dtype=int))

   a  b  c
0 -1  0  0
1 -1  0  0
2  0 -1  0
3  0 -1  0
4  0  0 -1

因为dtype的默认pd.get_dummies是8位无符号整数(dtype : dtype, default np.uint8)?