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

如何对DataFrame列表中重复索引分组求均值并输出结果DataFrame

实现方案

我们可以用字典记录每个索引对应的数值总和、出现次数,遍历完所有DataFrame后再计算均值生成结果,全程不需要拼接DataFrame,代码如下:

import pandas as pd

# 初始化两个字典分别存储索引对应的数值总和、出现次数
sum_dict = {}
count_dict = {}

# 遍历列表内的每一个DataFrame
for df in df_list:
    # 遍历当前df的每一行索引和对应的N列数值
    for idx, val in df['N'].items():
        sum_dict[idx] = sum_dict.get(idx, 0) + val
        count_dict[idx] = count_dict.get(idx, 0) + 1

# 计算每个索引的均值,转换为目标DataFrame
avg_dict = {idx: sum_dict[idx]/count_dict[idx] for idx in sum_dict}
result_df = pd.DataFrame.from_dict(avg_dict, orient='index', columns=['N'])
# 按索引排序即可得到符合预期的输出
result_df = result_df.sort_index()

输出验证

打印result_df即可得到目标结果:

N
1  1.7
2  1.6
3  2.9
4  4.3
5  6.4
7  4.9

逻辑说明

  • 全程没有使用pd.concat、pd.merge这类拼接DataFrame的方法,完全符合要求
  • 逐个遍历DataFrame的行数据做统计,内存占用比直接拼接大表更低,也适配DataFrame数量多、单表体量小的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:06:01