Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Panda拆分(“提取”)列_Python_Python 3.x_Pandas - Fatal编程技术网

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

Python 使用Panda拆分(“提取”)列,python,python-3.x,pandas,Python,Python 3.x,Pandas,我目前有一个名为Country的专栏,其值可以是美国、加拿大、日本。例如: Country ------- Japan Japan USA .... Canada Country --> Country_Japan Country_USA Country_Canada ------- ------------- ----------- --------------- Japan

我目前有一个名为Country的专栏,其值可以是
美国、加拿大、日本
。例如:

Country
-------
Japan
Japan
USA
....
Canada
Country        -->    Country_Japan    Country_USA    Country_Canada
-------               -------------    -----------    ---------------
Japan                        1              0                0
USA                          0              1                0
Japan                        1              0                0
....
我想将这些值分成三个单独的列(
Country\u USA
Country\u Canada
Country\u Japan
),基本上,如果一个列与Country列中的原始值相匹配,则该列的值将为
1
。例如:

Country
-------
Japan
Japan
USA
....
Canada
Country        -->    Country_Japan    Country_USA    Country_Canada
-------               -------------    -----------    ---------------
Japan                        1              0                0
USA                          0              1                0
Japan                        1              0                0
....
使用Panda/Python3.x是否有一种简单(不繁琐)的方法来实现这一点?谢谢

与和一起使用:

演示:

df=pd.DataFrame({'Country':['Japan','USA','Japan','Canada']})
print(df.join(df['Country'].str.get_dummies().add_prefix('Country_')))
print(df.join(pd.get_dummies(df)))
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
  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
  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:

df=pd.DataFrame({'Country':['Japan','USA','Japan','Canada']})
print(df.join(df['Country'].str.get_dummies().add_prefix('Country_')))
print(df.join(pd.get_dummies(df)))
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
  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
  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
斯科特的另一个好版本:

df=pd.DataFrame({'Country':['Japan','USA','Japan','Canada']})
print(df.join(df['Country'].str.get_dummies().add_prefix('Country_')))
print(df.join(pd.get_dummies(df)))
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
  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
  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
与和一起使用:

演示:

df=pd.DataFrame({'Country':['Japan','USA','Japan','Canada']})
print(df.join(df['Country'].str.get_dummies().add_prefix('Country_')))
print(df.join(pd.get_dummies(df)))
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
  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
  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:

df=pd.DataFrame({'Country':['Japan','USA','Japan','Canada']})
print(df.join(df['Country'].str.get_dummies().add_prefix('Country_')))
print(df.join(pd.get_dummies(df)))
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
  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
  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
斯科特的另一个好版本:

df=pd.DataFrame({'Country':['Japan','USA','Japan','Canada']})
print(df.join(df['Country'].str.get_dummies().add_prefix('Country_')))
print(df.join(pd.get_dummies(df)))
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
  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
  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

看看如何使用
pd.get\u dummies
。看看如何使用
pd.get\u dummies
。正是我所想的+1
print(df.join(pd.get_dummies(df))
这里有另一个使用字典解包的技巧<代码>打印(df.assign(**pd.get_dummies(df))@ScottBoston哇。。。你是熊猫方面的专家@斯科特伯顿,你真是熊猫的大师,脱帽致敬先生。正是我所想的+1
print(df.join(pd.get_dummies(df))
这里有另一个使用字典解包的技巧<代码>打印(df.assign(**pd.get_dummies(df))@ScottBoston哇。。。你是熊猫方面的专家@斯科特伯顿,你真是熊猫的大师,脱帽致敬先生。