<p>如果需要指示符列(仅<code>0</code>或<code>1</code>):</p>
<p>使用<a href="http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MultiLabelBinarizer.html" rel="nofollow noreferrer">^{<cd3>}</a>:</p>
<pre><code>from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
df1 = pd.DataFrame(mlb.fit_transform(df['target']),columns=mlb.classes_)
print (df1)
Aging Brain Dementia Genetics Neurons
0 1 1 0 1 1
1 0 0 1 1 0
2 0 1 1 1 0
</code></pre>
<p>或者<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.join.html" rel="nofollow noreferrer">^{<cd4>}</a>和<a href="http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.get_dummies.html" rel="nofollow noreferrer">^{<cd5>}</a>-但是它更慢:</p>
<pre><code>df1 = df['target'].str.join('|').str.get_dummies()
</code></pre>
<hr/>
<p>如果需要列表中的计数值:</p>
<pre><code>data = [{'target': ['Neurons','Brain', 'Neurons', 'Neurons']},
{'target': ['Dementia', 'Genetics']},
{'target': ['Brain','Brain', 'Genetics']}]
df = pd.DataFrame(data)
from collections import Counter
df = pd.DataFrame([Counter(x) for x in df['target']]).fillna(0).astype(int)
print (df)
Brain Dementia Genetics Neurons
0 1 0 0 3
1 0 1 1 0
2 2 0 1 0
</code></pre>