[英]pandas dataframe: return column that is a compression of other columns
[英]Pandas Dataframe Filtering Columns and return column name
我該如何過濾如下所示的Pandas DataFrame:
Head Cat1 Cat2 Cat3
"A" 0 0 1
"B" 1 0 1
這樣它就為每一行返回Category-Column-Names(如果不為0)
例如
"A" "Cat3"
"B" "Cat1" "Cat3"
我不知道如何解決這個問題,我深表謝意
您可以先過濾列以獲得感興趣的cols,然后調用apply
並使用布爾掩碼來屏蔽cols:
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.