擅长:python、mysql、java
<p>将1值替换为列名</p>
<pre><code>df5.replace(1, pd.Series(df5.columns, df5.columns), inplace=True)
</code></pre>
<p>将0值替换为NaN,然后使用<code>stack</code>删除它们并转换为list</p>
<pre><code>cols = df5.replace(0, np.nan).stack().groupby(level=0).apply(list).tolist()
cols
</code></pre>
<p>这将返回列表列表,而不是集合列表:</p>
<pre><code>[['B', 'D'], ['A', 'B', 'D'], ['B', 'C', 'D'], ['A', 'B', 'C']]
</code></pre>
<p>堆叠是为了去除零。如果您可以保留它们(或者在不同的步骤中删除),那么<code>df5.values.tolist()</code>就可以了</p>