如何使用lambda函数计算pandas dataframe中每行、每列的均值?
基于Lambda函数计算Pandas DataFrame行列均值的实现方案
首先构造示例DataFrame用于测试:
import pandas as pd # 示例测试数据 df = pd.DataFrame({ '语文': [89, 78, 90, 82, 95], '数学': [92, 81, 76, 88, 93], '英语': [79, 85, 94, 73, 87] }, index=['张三', '李四', '王五', '赵六', '孙七'])
计算每列均值
使用apply方法传入lambda函数,指定axis=0按列遍历计算:
- 实现代码:
# 计算所有列的均值 col_mean = df.apply(lambda x: x.mean(), axis=0)
返回结果为索引对应列名、值为对应列均值的Series对象。如果DataFrame包含非数值列,可添加numeric_only=True参数避免报错:
col_mean = df.apply(lambda x: x.mean(numeric_only=True), axis=0)
计算每行均值
调整axis参数为1即可按行遍历计算:
- 实现代码:
# 计算所有行的均值 row_mean = df.apply(lambda x: x.mean(), axis=1)
返回结果为索引对应原DataFrame行索引、值为对应行均值的Series对象。如果需要把行均值作为新列存入原DataFrame,可直接赋值:
df['个人平均分'] = df.apply(lambda x: x.mean(), axis=1)
内容的提问来源于stack exchange,提问作者Rubayet Alam
相关产品推荐
相关产品推荐

