如何在熊猫中编辑OneHotEncoder的实现过程?

时间:2019-07-28 09:54:32

标签: python pandas

我想使用函数“ pandas.get_dummies()”将“类型:[N,N,N,Y,Y,N,Y……]”的数据帧转换为“类型:[0,0] ,0,1,1,0,1……]“

import pandas as pd
# Define a DataFrame "df"
df = pd.get_dummies(df)

但是该函数始终将“ N”转换为“ 1”,将“ Y”转换为“ 0”。因此,结果是“类型:[1,1,1,0,0,1,0……]”。那不是我想要的,因为这会给我的计算带来麻烦。

我应该怎么做才能改变它?

1 个答案:

答案 0 :(得分:1)

您可以使用1-pd.get_dummies(df)1映射到0,反之亦然,例如:

>>> df
   0
0  N
1  N
2  N
3  Y
4  Y
5  N
6  Y
>>> 1 - pd.get_dummies(df)
   0_N  0_Y
0    0    1
1    0    1
2    0    1
3    1    0
4    1    0
5    0    1
6    1    0

或者如果将其转换为布尔值,则可以使用布尔值求反,例如:

>>> ~pd.get_dummies(df, dtype=bool)
     0_N    0_Y
0  False   True
1  False   True
2  False   True
3   True  False
4   True  False
5  False   True
6   True  False