我认为这是一个错误,所以不是严格意义上的此站点上的话题,但我想在此与大熊猫社区一起提供帮助。让我们考虑一下此数据框:>
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上运行。
答案 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
)?