如果行等于python中的值,则打印列名称

Han*_*yle 2 python numpy pandas

如果值= 1,我如何在行之间进行迭代并在一列中打印列名称

mydata = [{'a' : '0', 'b': 1, 'c': 0}, {'a' : 1, 'b': 0, 'c':1}, {'a' : '0', 'b': 1, 'c':1}] 
df = pd.DataFrame(mydata)

a   b   c   Result 
0   1   0   b 
1   0   1   a , c
0   1   1   b , c
Run Code Online (Sandbox Code Playgroud)

结果仅显示等于1的列名称

WeN*_*Ben 5

运用 dot

df['New']=df.astype(int).dot(df.columns+',').str[:-1]
df
Out[44]: 
   a  b  c  New
0  0  1  0    b
1  1  0  1  a,c
2  0  1  1  b,c
Run Code Online (Sandbox Code Playgroud)