使用布尔响应将列追加到数据框

时间:2018-10-06 16:38:17

标签: python pandas

我的数据框如下:

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不会给我这样的结果

1 个答案:

答案 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