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

多级列DataFrame计算重复样本均值遇NaN问题求助

问题分析与解决方法

你的问题出在melt+groupby+apply的组合逻辑偏差,导致后续unstack时结构混乱,产生大量NaN。具体来说:

  • melt把宽表转成长表后,原本的列层级信息被拆进variable列,你groupby的disease_state和disease_state_general来自拆分后的列层级,此时apply行均值是对每个组内的所有行(对应原始表的不同行)求平均,得到的结果索引是原始行索引+分组键,unstack后因索引不匹配自然出现大量缺失值,完全偏离了你“对同一生物重复下的三重样本列求均值”的需求。

正确处理方式(无需melt,直接针对多级列操作)

假设你的DataFrame列层级是[disease_state, 生物重复编号, 三重样本编号](比如列名类似('control', '1', 'rep1')、('sporadic_PD', '2', 'rep3')),直接按前两层列分组求均值即可:

# 按疾病状态+生物重复编号分组,计算每组(三重样本)的均值
result = test_data.groupby(level=['disease_state', '生物重复编号'], axis=1).mean()

# 按需调整列名,比如合并层级为你要的disease_state_general格式
result.columns = [f"{state}_{rep}" for state, rep in result.columns]

如果列层级是[disease_state_general, disease_state, 生物重复, 三重样本],只需调整groupby的level参数:

result = test_data.groupby(level=['disease_state_general', '生物重复'], axis=1).mean()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 23:57:38