Python 使用Panda拆分(“提取”)列
我目前有一个名为Country的专栏,其值可以是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
-------
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
。正是我所想的+1print(df.join(pd.get_dummies(df))
这里有另一个使用字典解包的技巧<代码>打印(df.assign(**pd.get_dummies(df))@ScottBoston哇。。。你是熊猫方面的专家@斯科特伯顿,你真是熊猫的大师,脱帽致敬先生。正是我所想的+1print(df.join(pd.get_dummies(df))
这里有另一个使用字典解包的技巧<代码>打印(df.assign(**pd.get_dummies(df))@ScottBoston哇。。。你是熊猫方面的专家@斯科特伯顿,你真是熊猫的大师,脱帽致敬先生。