使用熊猫拆分("extract")列



我目前有一个名为Country的列,其值可以是USA, Canada, Japan。例如:

Country
-------
Japan
Japan
USA
....
Canada

我想将值拆分("提取"(为三个单独的列(Country_USACountry_CanadaCountry_Japan(,基本上,如果一列与Country列中的原始值匹配,那么它的值将为1。例如:

Country        -->    Country_Japan    Country_USA    Country_Canada
-------               -------------    -----------    ---------------
Japan                        1              0                0
USA                          0              1                0
Japan                        1              0                0
....

使用Panda/Python3.x有没有一种简单(非乏味(的方法可以做到这一点?谢谢

joinget_dummiesadd_prefix:一起使用

print(df.join(df['Country'].str.get_dummies().add_prefix('Country_')))

演示:

df=pd.DataFrame({'Country':['Japan','USA','Japan','Canada']})
print(df.join(df['Country'].str.get_dummies().add_prefix('Country_')))

输出:

Country  Country_Canada  Country_Japan  Country_USA
0   Japan               0              1            0
1     USA               0              0            1
2   Japan               0              1            0
3  Canada               1              0            0

更好的版本,感谢Scott:

print(df.join(pd.get_dummies(df)))

输出:

Country  Country_Canada  Country_Japan  Country_USA
0   Japan               0              1            0
1     USA               0              0            1
2   Japan               0              1            0
3  Canada               1              0            0

Scott的另一个好版本:

print(df.assign(**pd.get_dummies(df)))

输出:

Country  Country_Canada  Country_Japan  Country_USA
0   Japan               0              1            0
1     USA               0              0            1
2   Japan               0              1            0
3  Canada               1              0            0

最新更新