You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask中如何遍历Pandas生成的年龄分组性别统计透视表?

遍历Pandas DataFrame的几种实用方法

嘿,针对你这个按年龄组和性别统计的DataFrame,我给你整理了几种常用的遍历方式,你可以根据自己的需求来选:

1. 按行遍历(同时获取年龄组索引和对应性别数据)

如果需要逐个处理每个年龄组的男女数据,用iterrows()最方便,它会返回每一行的索引(这里就是age_group)和行数据:

for age_group, row in age_grp.iterrows():
    female_count = row['F']
    male_count = row['M']
    print(f"年龄组 {age_group}: 女性 {female_count} 人,男性 {male_count} 人")

2. 按列遍历(先处理某一性别的所有年龄组数据)

要是你想先聚焦某个性别,再遍历它的各个年龄组统计值,可以用items()(Pandas新版本推荐用这个替代旧的iteritems()):

for gender, column_data in age_grp.items():
    print(f"\n性别 {gender} 的各年龄组人数:")
    for age_group, count in column_data.items():
        print(f"  {age_group}: {count}")

3. 逐个遍历所有单元格(获取每个年龄组+性别组合的统计值)

如果需要拿到每一个具体的(年龄组,性别)对应的人数,你可以用stack()把二维DataFrame转成一维Series,再遍历它的键值对:

for (age_group, gender), count in age_grp.stack().items():
    print(f"年龄组 {age_group},性别 {gender}: {count} 人")

4. 高效遍历(适合大数据集)

如果你的数据量很大,itertuples()会比iterrows()更高效,它返回的是命名元组,访问速度更快:

for row in age_grp.itertuples():
    age_group = row.Index
    female_count = row.F
    male_count = row.M
    print(f"年龄组 {age_group}: 女性 {female_count} 人,男性 {male_count} 人")

选哪种方式主要看你具体要做什么:如果是整行/整列处理,选前两种;要逐个单元格就用第三种;追求性能就用第四种。

内容的提问来源于stack exchange,提问作者Reub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:37:13