<p>你可以在这里使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.crosstab.html" rel="nofollow noreferrer">^{<cd1>}</a></p>
<pre><code>df
ID Category
21 aec8e68b3 subarachnoid
23 aec8e68b3 any
57 ff7125125 subarachnoid
59 ff7125125 any
115 9b7d000a2 intraparenchymal
119 9b7d000a2 any
172 85f1fa3bd subdural
173 85f1fa3bd any
181 4598fa77a intraparenchymal
182 4598fa77a intraventricular
184 4598fa77a subdural
185 4598fa77a any
208 4c45dcf36 subdural
209 4c45dcf36 any
pd.crosstab(df['ID'], df['Category']).astype(bool)
Category any intraparenchymal intraventricular subarachnoid subdural
ID
4598fa77a True True True False True
4c45dcf36 True False False False True
85f1fa3bd True False False False True
9b7d000a2 True True False False False
aec8e68b3 True False False True False
ff7125125 True False False True False
</code></pre>
<ul>
<li>要删除轴名称,请使用<code>_.rename_axis(index=None, columns=None)</code></li>
</ul>
<p><strong>或</strong></p>
<p>使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html" rel="nofollow noreferrer">^{<cd3>}</a></p>
<pre><code>df.pivot_table(index='ID', columns='Category', fill_value=0, aggfunc='size')
</code></pre>
<hr/>
<pre><code>df.assign(val = True).pivot_table(index='ID', columns= 'Category',
values = 'val',fill_value=False)
</code></pre>
<p>使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.unstack.html" rel="nofollow noreferrer">^{<cd4>}</a>的另一个想法</p>
<pre><code>df.assign(val = True).set_index(['ID', 'Category']).val.unstack(fill_value= False)
</code></pre>