Pandas pd.Series().var() 函数与手动计算 std 相比给出不同的输出。知道这里出了什么问题吗?
Pandas pd.Series().var() function is giving different output when compared with calculating std manually. Any Idea what's happening wrong here?
我正在尝试手动计算标准偏差,而不是使用 pandas.Series().std() 方法,但输出结果有所不同。请帮忙。
手动方差计算
values = pd.read_csv('Values.csv')
mom_1 = pd.Series(values['col_name'].mean() - values['col_name'])
mom_2 = mom_1*mom_1
print(np.sqrt(np.sum(mom_2.values,dtype = np.float64)/ values.shape[0] - 1))
输出 1 - 10773.042044307498
Pandas方差计算
print(np.sqrt(pd.Series(values['col_name'].astype(np.float64)).var()))
输出 2 - 10773.042044307516
尝试从 pandas.core.nanops pandas nanvar implementaton line 711 but still getting output 1 only. find the Values.csv here
复制 pandas nanvar 函数
pandas==1.0.1
numpy==1.17.0
知道这里出了什么问题吗?
这是因为一个名为 bottleneck 的库,pandas 用于更快的计算。由于 pandas 使用默认设置,现在关闭它会产生相同的输出。
我正在尝试手动计算标准偏差,而不是使用 pandas.Series().std() 方法,但输出结果有所不同。请帮忙。
手动方差计算
values = pd.read_csv('Values.csv')
mom_1 = pd.Series(values['col_name'].mean() - values['col_name'])
mom_2 = mom_1*mom_1
print(np.sqrt(np.sum(mom_2.values,dtype = np.float64)/ values.shape[0] - 1))
输出 1 - 10773.042044307498
Pandas方差计算
print(np.sqrt(pd.Series(values['col_name'].astype(np.float64)).var()))
输出 2 - 10773.042044307516
尝试从 pandas.core.nanops pandas nanvar implementaton line 711 but still getting output 1 only. find the Values.csv here
复制 pandas nanvar 函数pandas==1.0.1 numpy==1.17.0
知道这里出了什么问题吗?
这是因为一个名为 bottleneck 的库,pandas 用于更快的计算。由于 pandas 使用默认设置,现在关闭它会产生相同的输出。