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

pandas groupby后调用iterrows报错AttributeError,求解决方案

解决DataFrameGroupBy无iterrows()方法的问题

groupby()返回的是分组对象(DataFrameGroupBy),不是普通DataFrame,所以没有iterrows()方法。解决方式分两种场景:

1. 需遍历分组内的每一行

直接遍历分组对象,每个迭代元素是(组名, 子DataFrame),再对子DataFrame调用iterrows():

import pandas as pd

# 示例数据
df = pd.DataFrame({
    'group': ['A', 'A', 'B', 'B'],
    'value': [1, 2, 3, 4]
})

# 遍历分组+行
for group_name, sub_df in df.groupby('group'):
    print(f"组名: {group_name}")
    for idx, row in sub_df.iterrows():
        print(f"行索引: {idx}, value值: {row['value']}")

2. 优先用内置分组计算(更高效)

如果是做分组统计/计算,尽量用pandas内置的agg()、apply()等方法,比手动遍历行效率高得多:

示例1:聚合计算

# 计算每组的均值、总和
agg_result = df.groupby('group').agg({
    'value': ['mean', 'sum']
})
print(agg_result)

示例2:自定义分组处理

def process_subgroup(sub_df):
    # 自定义逻辑:给每组加列,存value的累加和
    sub_df['cumulative_sum'] = sub_df['value'].cumsum()
    return sub_df

processed_df = df.groupby('group').apply(process_subgroup)
print(processed_df)

注意:iterrows()本身效率较低,大数据量场景下建议优先用矢量化操作或分组聚合方法,避免逐行遍历。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 13:14:58