Pandas如何计算DataFrame中每行指定列值的标准差
pandas逐行计算多列标准差填充指定列实现
直接对需要计算的A、B、C、D四列按行维度调用标准差计算方法,将结果直接赋值给stdDev列即可,不需要写循环逐行遍历,pandas内置的轴向计算性能更高。
import pandas as pd # 构造示例数据(如果你已经有读取好的DataFrame可以跳过这部分) df = pd.DataFrame({ 'Key': ['X', 'y', 'z'], 'A': [1, 4, 8], 'B': [2, 5, 9], 'C': [3, 6, 10], 'D': [4, 7, 11] }) # 核心计算逻辑:axis=1 指定按行方向计算 # 注意:pandas的std()默认计算样本标准差(自由度为n-1),如果需要计算总体标准差(自由度为n),请添加参数 ddof=0 df['stdDev'] = df[['A', 'B', 'C', 'D']].std(axis=1) # 总体标准差计算写法 # df['stdDev'] = df[['A', 'B', 'C', 'D']].std(axis=1, ddof=0)
运行后得到的结果和预期完全一致:
Key A B C D stdDev 0 X 1 2 3 4 1.290994 1 y 4 5 6 7 1.290994 2 z 8 9 10 11 1.290994
注:示例中三行的标准差结果完全相同是正常现象,因为每行的4个值都是公差为1的连续整数,数据离散程度完全一致。
内容的提问来源于stack exchange,提问作者foxbundle
相关产品推荐
相关产品推荐

