Python 数据帧筛选列和返回列名
如何过滤熊猫数据帧,其外观如下:Python 数据帧筛选列和返回列名,python,pandas,filter,Python,Pandas,Filter,如何过滤熊猫数据帧,其外观如下: Head Cat1 Cat2 Cat3 "A" 0 0 1 "B" 1 0 1 因此,如果不是0,它将为每一行返回类别列名 比如说 "A" "Cat3" "B" "Cat1" "Cat3" 我不知道如何解决这个问题,我非常感谢所有帮助您可以先筛选列以获得感兴趣的列,然后调用apply并使用布尔掩码来屏蔽列: In [18]: cat_cols = df.columns[df.colu
Head Cat1 Cat2 Cat3
"A" 0 0 1
"B" 1 0 1
因此,如果不是0,它将为每一行返回类别列名
比如说
"A" "Cat3"
"B" "Cat1" "Cat3"
我不知道如何解决这个问题,我非常感谢所有帮助您可以先筛选列以获得感兴趣的列,然后调用
apply
并使用布尔掩码来屏蔽列:
In [18]:
cat_cols = df.columns[df.columns.str.contains('Cat')]
df[cat_cols].apply(lambda row: ', '.join(cat_cols[row == 1]), axis=1)
Out[18]:
0 Cat3
1 Cat1, Cat3
dtype: object
也可以通过访问.index
属性来检索列:
df[cat_cols].apply(lambda row: ', '.join(row.index[row == 1]), axis=1)