我想将列表中的列名提取到按每行中的值过滤的系列中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
提交
取消