<p>您可以通过<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html" rel="nofollow noreferrer">^{<cd1>}</a>使用dict理解创建年龄组词典,如下所示:</p>
<pre><code>age_dict = {k:v for k, v in df.groupby('age')}
</code></pre>
<p>然后,您可以通过以下方式访问各个年龄组(如25岁):</p>
<pre><code>age_dict[25]
</code></pre>
<p>这将给出与<code>df25 = df.loc[df['age'] == 25]</code>相同的结果:</p>
<pre><code>print(age_dict[25])
age delta disease
2 25 0 0
3 25 1 1
5 25 0 0
</code></pre>
<p>您可以通过以下方式获得所有年龄组的列表:</p>
<pre><code>age_dict_keys = [*age_dict.keys()]
</code></pre>
<p>结果:</p>
<pre><code>print(age_dict_keys)
[25, 42, 50]
</code></pre>
<p>要打印所有年龄组的上下文表,您可以使用:</p>
<pre><code>for key in age_dict_keys:
print('==========================================')
print('key=', key, '\ncrosstab:\n', pd.crosstab(index=age_dict[key]['disease'], columns=age_dict[key]['delta']))
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>==========================================
key= 25
crosstab:
delta 0 1
disease
0 2 0
1 0 1
==========================================
key= 42
crosstab:
delta -1 1
disease
0 1 0
1 0 1
==========================================
key= 50
crosstab:
delta 0
disease
0 1
</code></pre>