首页 > 解决方案 > 将虚拟变量值从 1 更改为列名,然后创建一个可以比较行的列表

问题描述

我有一个看起来像这样的数据框:

A    B    C

1    0    0
1    1    0
0    1    0
0    0    1

我想用相应的列名替换所有值,以便数据如下所示:

 A    B    C  

 A    0    0  
 A    B    0   
 0    B    0   
 0    0    C   

之后,我想创建一个列,它是所有列值的列表,如下所示:

 A    B    C         D

 A    0    0   ['A','0','0']
 A    B    0   ['A','B','0']
 0    B    0   ['0','B','0']
 0    0    C   ['0','0','C']

最后,我想按 D 列分组并计算每个模式的出现次数。

标签: pythonpandaslistrenamedummy-variable

解决方案


你可以做mul

df.mul(df.columns).replace('',0)
Out[63]: 
   A  B  C
0  A  0  0
1  A  B  0
2  0  B  0
3  0  0  C
#df['D']=df.mul(df.columns).replace('',0).values.tolist()

推荐阅读