如何解决在python中从多个变量创建虚拟变量
我无法从这样的数据集创建虚拟变量:
x = pd.DataFrame({'Temp':['Hot','Cold','Warm','Cold'],'Temp_2':[np.nan,np.nan]
请注意,两个变量(热、冷或暖)中的值相同。
Temp Temp_2
0 Hot NaN
1 Cold Warm
2 Warm Cold
3 Cold NaN
所以我的问题是在使用 pd.get_dummies 时,该函数没有考虑这种关系,而是独立地对两个变量进行编码。
Temp_Cold Temp_Hot Temp_Warm Temp_2_Cold Temp_2_Warm
0 0 1 0 0 0
1 1 0 0 0 1
2 0 0 1 1 0
3 1 0 0 0 0
有什么办法可以把它编成代码,这样我就可以得到它吗?
Cold Hot Warm
0 0 1 0
1 1 0 1
2 1 0 1
3 1 0 0
谢谢,
解决方法
你可以这样做:
x = pd.DataFrame({'Temp':['Hot','Cold','Warm','Cold'],'Temp_2':[np.nan,np.nan]})
print(x)
a = pd.get_dummies(x,prefix=['',''])
b = a.groupby(lambda x:x,axis=1).sum()
print(b)
它不是那么干净但有效。使用前缀允许在从 temp 和 temp_2 生成的列中具有相同的名称。
_Cold _Hot _Warm
0 0 1 0
1 1 0 1
2 1 0 1
3 1 0 0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。