Python 数组与列表中数据计算的细微差异
正如您在下面的代码中所看到的,我用两种不同的方法计算“open”列中数据的方差。唯一的区别是,在第二个版本中,我获取值,而不是包含值的列。为什么这会导致不同的方差计算Python 数组与列表中数据计算的细微差异,python,pandas,statistics,Python,Pandas,Statistics,正如您在下面的代码中所看到的,我用两种不同的方法计算“open”列中数据的方差。唯一的区别是,在第二个版本中,我获取值,而不是包含值的列。为什么这会导致不同的方差计算 apple\u prices=pd.read\u csv('apple\u prices.csv')) 打印(apple_prices['open'].values.var()) #打印102.22564310059172 打印(apple_prices['open'].var()) #打印103.82291877403847 产
apple\u prices=pd.read\u csv('apple\u prices.csv'))
打印(apple_prices['open'].values.var())
#打印102.22564310059172
打印(apple_prices['open'].var())
#打印103.82291877403847
产生差异的原因是pandas.Series.var
的默认ddof
(增量自由度)为1,而numpy.ndarray.var
的默认ddof
为0。手动设置此选项会产生相同的结果:
import pandas as pd
import numpy as np
np.random.seed(0)
x = pd.Series(np.random.rand(100))
print(x.var(ddof=1))
# 0.08395738934787107
print(x.values.var(ddof=1))
# 0.08395738934787107
请参阅以下文档:产生差异的原因是
pandas.Series.var
的默认ddof
(增量自由度)为1,而numpy.ndarray.var
的默认ddof
为0。手动设置此选项会产生相同的结果:
import pandas as pd
import numpy as np
np.random.seed(0)
x = pd.Series(np.random.rand(100))
print(x.var(ddof=1))
# 0.08395738934787107
print(x.values.var(ddof=1))
# 0.08395738934787107
请参阅以下文档:Pandas和numpy的自由度默认值不同。Pandas和numpy的自由度默认值不同。