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

Pandas Groupby无需聚合获取单条返回值的操作方法

仅调用groupby方法只会生成分组实例,需要对实例执行取值操作才能拿到具体数值。针对每个分组仅存唯一值的场景,可选择以下实现方式:

  • 方案1:直接生成城市与占比的映射字典(无需二次groupby,效率更高)
    因为每个州下的城市对应唯一占比,直接将CITY设为索引提取PERC_MEN列转字典即可,示例代码:
    for state, state_df in df.groupby(by=['STATE']):
        city_perc_map = state_df.set_index('CITY')['PERC_MEN'].to_dict()
        # 直接通过城市名取值,例如city_perc_map['ABBEVILLE']即可拿到对应占比
        print(city_perc_map)
    
  • 方案2:遍历二次groupby的结果取值
    如果必须保留二次groupby的逻辑,直接遍历分组对象的返回值即可:
    for state, state_df in df.groupby(by=['STATE']):
        for city, perc_group in state_df.groupby(by=['CITY'])['PERC_MEN']:
            # 每个分组只有一个值,取第一个元素即可
            perc_value = perc_group.iloc[0]
            print(f"{city}: {perc_value}")
    
  • 方案3:使用极简聚合函数(无性能损耗,代码最简洁)
    虽然用到聚合函数,但因为每个分组只有一个值,first/last/min等聚合操作的结果和原始值完全一致,写法更简洁:
    for state, state_df in df.groupby(by=['STATE']):
        city_perc_series = state_df.groupby(by=['CITY'])['PERC_MEN'].first()
        # 此时得到索引为CITY的Series,直接用城市名作为索引即可取值
        print(city_perc_series)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:45:04