我有一个像这样的pandas数据框:
dx1 dx2 dx3 dx4
25041 40391 5856 0
25041 40391 25081 5856
25041 40391 42822 0
25061 40391 0 0
25041 40391 0 5856
40391 25002 5856 3569
使用虚方法get_dummies,我创建了这样的虚拟表:
dummayData = pd.get_dummies(dataFrame,prefix='dx')
dummyData
dx_25041 dx_25061 dx_40391 dx_25002 dx_40391 dx_0 dx_25081 dx_42822 dx_5856 dx_0 dx_3569 dx_5856
1 0 0 0 1 0 0 0 1 1 0 0
1 0 0 0 1 0 1 0 0 0 0 1
1 0 0 0 1 0 0 1 0 1 0 0
0 1 0 0 1 1 0 0 0 1 0 0
1 0 0 0 1 1 0 0 0 0 0 1
0 0 1 1 0 0 0 0 1 0 1 0
重复虚拟值,例如; dx_40391,dx_0,dx_5856等。他们可以是两个或多个。我想通过UNION操作合并这些虚拟变量,这样对于dx_40391,所有行都将具有值1,并且在数据帧中只保留一列。对于所有其他重复虚拟变量也是如此我有数十万个虚拟变量和数十万行。有没有一种有效的方法呢?
答案 0 :(得分:0)
如果您在重复的列名称上使用常用的列索引器df[col]
,您将返回具有该名称的所有列,然后您可以沿着行获取最大值(使用max
和{ {1}}):
axis=1