我的数据框如下:
hive> select cast(11 as decimal(14,2));
11
hive> select cast(11.22 as decimal(14,2));
11.22
我的意图是按如下方式重新制作数据框
In [16]: df
Out[16]:
name dep
0 jai sales
1 bobby design
2 ram dev
3 shyam dev design
我尝试了以下
In [16]: new_df
Out[16]:
name dev design sales
0 jai 0 1 0
1 bobby 0 1 0
2 ram 1 1 0
但这给了我整个数据框架。如何获得布尔结果?
注意:pd.get_dummies不会给我这样的结果
答案 0 :(得分:1)
将pd.get_dummies
用作:
df[['female','male']] = pd.get_dummies(df.gender)
del df['gender']
print(df)
name female male
0 jai 0 1
1 bobby 1 0
2 ram 0 1
print(pd.get_dummies(df.gender))
female male
0 0 1
1 1 0
2 0 1
编辑::如果值中包含多个字符串,请使用:
df = df.join(df.dep.str.get_dummies(sep=' '))
del df['dep']
print(df)
design dev sales
0 0 0 1
1 1 0 0
2 0 1 0
3 1 1 0
print(df.dep.str.get_dummies(sep=' '))
design dev sales
0 0 0 1
1 1 0 0
2 0 1 0
3 1 1 0