求助:自定义Python函数计算DataFrame列均值报错排查
问题排查与修正
你的代码存在三个关键错误,逐一说明并修正:
1. 函数内部硬编码全局变量,未使用传入的参数
函数定义时参数为df,但内部却引用了全局的df2,这会导致函数无法复用,且逻辑依赖外部变量,违背封装原则。
2. 函数调用时列名格式错误
调用时传入的["B"]是列表类型,而DataFrame取单列需要传入字符串"B",用列表会返回多列DataFrame,后续len()和sum()的处理会触发错误。
3. 违反题目要求:使用了Python内置函数
题目明确要求不使用Python内置函数,但你的代码里用了len()和sum(),不符合约束条件。
修正后的完整代码(完全不使用内置函数)
def summary_statistics(df, column_name): total = 0.0 count = 0 # 手动遍历列值,累加求和并计数 for value in df[column_name]: total += value count += 1 # 处理空列避免除以0 if count == 0: return 0.0 mean = total / count return mean # 正确调用方式 summary_statistics(df2, "B")
针对你的示例DataFrame,运行后会返回88.0,与手动计算结果一致:(70+65+80+75+90+90+95+100+105+110)/10 = 88。
内容的提问来源于stack exchange,提问作者thole
相关产品推荐
相关产品推荐

