使用Panda拆分(“提取”)列

时间:2018-12-05 02:25:24

标签: python python-3.x pandas

我目前有一个名为“国家/地区”的列,其值可以为USA, Canada, Japan。例如:

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

我想将值拆分(“提取”)为三个单独的列(Country_USACountry_CanadaCountry_Japan),基本上,一列的值将为{ {1}}(如果它与“国家/地区”列中的原始值匹配)。例如:

1

是否有使用Panda / Python 3.x的简单(非繁琐)方法?谢谢!

1 个答案:

答案 0 :(得分:2)

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