擅长:python、mysql、java
<p>对于高性能的解决方案,我建议通过列出列来创建一个新的数据帧。你知道吗</p>
<pre><code>pd.get_dummies(pd.DataFrame(df.C1.tolist()), prefix='', prefix_sep='')
brunch dinner fancy food
0 0 1 0 0
1 1 0 0 1
2 0 1 1 0
</code></pre>
<p>这将比<code>apply(pd.Series)</code>快得多。你知道吗</p>
<p>假设列表中没有更多相同的值(例如<code>['dinner', ..., 'dinner']</code>),则可以这样做。如果他们这样做了,那么您将需要额外的<code>groupby</code>步骤:</p>
<pre><code>(pd.get_dummies(
pd.DataFrame(df.C1.tolist()), prefix='', prefix_sep='')
.groupby(level=0, axis=1)
.sum())
</code></pre>
<p>好吧,如果你的数据是这样的,那么你要找的不再是“二进制”了。你知道吗</p>