我想將列表中的列名提取到按每行中的值過濾的系列中In [1]: import pandas as pd In [2]: df =pd.DataFrame({'colA':[1,0,1], 'colB':[0,0,1], 'colC':[1,0,0]}) In [3]: print(df) colA colB colC0 1 0 11 0 0 02 1 1 0結果系列應如下所示:0 [colA, colC]1 []2 [colA, colB]dtype: object這是我想出的折磨人的解決方案:In [4]: df2 = df.TIn [5]: l = [df2[df2[i]>0].index.values.tolist() for i in range(3)]In [6]: print(pd.Series(l))0 [colA, colC]1 []2 [colA, colB]dtype: object有沒有一種不那么折磨人的方式來做到這一點?
1 回答

慕尼黑5688855
TA貢獻1848條經驗 獲得超2個贊
您可以np.where假設您的數據幀由 0 和 1 組成,并從結果創建一個系列:
x = np.where(df,df.columns,'')
pd.Series([' '.join(i).split() for i in x])
0 [colA, colC]
1 []
2 [colA, colB]
添加回答
舉報
0/150
提交
取消