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

按Sex分组填充Age列NaN值时遇长度匹配错误,如何解决?

问题解决:按Sex分组填充Age列NaN值的错误修正

错误原因

你遇到的ValueError: Columns must be same length as key是因为:

  • 原代码df.groupby('Sex').transform(...)会对整个DataFrame的所有列执行transform操作,返回的是与原DataFrame结构一致的多列结果
  • 而你试图将这个多列结果赋值给单个列df['Age'],两者维度不匹配,因此报错

修正后的代码

方法一:指定分组后仅处理Age列

直接针对Age列做分组和填充操作,返回的结果是与原列长度一致的Series:

df['Age'] = df.groupby('Sex')['Age'].transform(lambda x: x.fillna(x.mean()))

方法二:更简洁的fillna写法

利用fillna直接接收分组计算的均值结果,逻辑更清晰:

df['Age'] = df['Age'].fillna(df.groupby('Sex')['Age'].transform('mean'))

两种方法都能实现你的需求:按Sex分组计算各组平均年龄,并用该均值填充对应组内Age列的NaN值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:01:13