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

多DataFrame按行列匹配计算均值并补全缺失Flavor值的方法

当然可以实现!

你完全可以通过合并DataFrame、填充缺失值后调用.mean()来达成需求,下面是具体的实现步骤和代码示例:

步骤说明

核心思路是先让所有DataFrame的行(Flavor)和列(月份)完全对齐,缺失的位置用指定常量(15)填充,再对每个(Flavor, 月份)组合计算均值。

1. 准备数据

先把你的DataFrame放到一个列表里,方便批量处理:

import pandas as pd

# 示例数据
df1 = pd.DataFrame(
    {'June 2016': [17.0,7.0,11.0], 'July 2016': [23.0,12.0,14.0]},
    index=['Vanilla', 'Chocolate', 'Strawberry']
)
df1.index.name = 'Flavor'

df2 = pd.DataFrame(
    {'June 2016': [9.0,10.0], 'July 2016': [19.0,3.0]},
    index=['Vanilla', 'Chocolate']
)
df2.index.name = 'Flavor'

# 收集所有DataFrame
dfs = [df1, df2]

2. 合并并对齐数据

用pd.concat按列方向合并,并用keys标记每个原始DataFrame,这样会生成多层级列索引:

combined = pd.concat(dfs, axis=1, keys=['df1', 'df2'])

此时combined的结构会是:

df1               df2          
    June 2016 July 2016 June 2016 July 2016
Flavor                                     
Vanilla        17.0       23.0        9.0       19.0
Chocolate       7.0       12.0       10.0        3.0
Strawberry     11.0       14.0        NaN        NaN

3. 调整结构并填充缺失值

交换列的层级,把月份放到外层,然后堆叠(stack)成长格式,这样每个(Flavor, 月份)组合对应所有DataFrame的数值,缺失的位置用15填充:

# 交换列层级,让月份作为第一层级
stacked = combined.swaplevel(axis=1).stack(level=0)
# 填充NaN为指定常量15
stacked_filled = stacked.fillna(15)

此时stacked_filled的结构是:

df1   df2
Flavor     Month              
Vanilla    June 2016  17.0   9.0
           July 2016  23.0  19.0
Chocolate  June 2016   7.0  10.0
           July 2016  12.0   3.0
Strawberry June 2016  11.0  15.0
           July 2016  14.0  15.0

4. 计算均值并转换回宽格式

对每行调用.mean()计算均值,再用unstack()转换回你需要的宽格式:

# 计算均值
mean_values = stacked_filled.mean(axis=1)
# 转换回宽格式
result = mean_values.unstack()

最终的result就是你想要的结果:

June 2016  July 2016
Flavor                        
Vanilla        13.0       21.0
Chocolate       8.5        7.5
Strawberry     13.0       14.5

验证一下:

  • Vanilla在July的均值:(23+19)/2 = 21 ✔️
  • Strawberry在June的均值:(11+15)/2 =13 ✔️

这个方法扩展性很强——如果后续新增更多DataFrame,只需要把它们加入dfs列表即可,不需要修改其他逻辑。

内容的提问来源于stack exchange,提问作者florence-y

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:57:02