如何在pandas数据框中使用具有相同标签的多个列的并集

时间:2016-01-11 23:13:24

标签: python-3.x numpy pandas

我有一个像这样的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,并且在数据帧中只保留一列。对于所有其他重复虚拟变量也是如此我有数十万个虚拟变量和数十万行。有没有一种有效的方法呢?

1 个答案:

答案 0 :(得分:0)

如果您在重复的列名称上使用常用的列索引器df[col],您将返回具有该名称的所有列,然后您可以沿着行获取最大值(使用max和{ {1}}):

axis=1