簡體   English   中英

熊貓數據框過濾列和返回列名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM