<h2>方案1</h2>
<p>您可以检查循环中<code>disease</code>中<code>df['Disease']</code>的出现情况:</p>
<pre><code>>>> diseases = ['Cooties', 'Dragon Pox', 'Greycale']
>>> for disease in diseases:
>>> df[disease] = pd.Series(val == disease for val in df['Disease'].values).astype(int)
</code></pre>
<h2>方案2</h2>
<p>或者,在用<code>'& '</code>分割<code>df['Disease']</code>中的字符串之后,可以使用<code>.get_dummies</code>。你知道吗</p>
<pre><code>>>> sub_df = df['Disease'].str.split('& ', expand=True)
>>> dummies = pd.get_dummies(sub_df)
>>> dummies
# 0_Cooties 0_Dragon Pox 0_Greycale 1_Cooties
# 0 1 0 0 0
# 1 0 1 0 0
# 2 0 0 1 1
# Let's rename the columns by taking only the text after the '_'
>>> _, dummies.columns = zip(*dummies.columns.str.split('_'))
>>> dummies.groupby(dummies.columns, axis=1).sum()
# Cooties Dragon Pox Greycale
# 0 1 0 0
# 1 0 1 0
# 2 1 0 1
</code></pre>