gpt4 book ai didi

python - 计算每个 pandas.DataFrame 列的 numpy.std?

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:02 27 4
gpt4 key购买 nike

我想获取 pandas.DataFrame 每一列的 numpy.std

这是我的代码:

import pandas as pd
import numpy as np

prices = pd.DataFrame([[-0.33333333, -0.25343423, -0.1666666667],
[+0.23432323, +0.14285714, -0.0769230769],
[+0.42857143, +0.07692308, +0.1818181818]])

print(pd.DataFrame(prices.std(axis=0)))

这是我的代码的输出:

pd.DataFrame([[ 0.39590933],
[ 0.21234018],
[ 0.1809432 ]])

这是正确的输出(如果使用 np.std 计算)

pd.DataFrame([[ 0.32325862],
[ 0.17337503],
[ 0.1477395 ]])

为什么我有这样的差异?我该如何解决?

注意:我试过这样做:

print(np.std(prices, axis=0))

但我有以下错误:

Traceback (most recent call last):
File "C:\Users\*****\Documents\******\******\****.py", line 10, in <module>
print(np.std(prices, axis=0))
File "C:\Python33\lib\site-packages\numpy\core\fromnumeric.py", line 2812, in std
return std(axis=axis, dtype=dtype, out=out, ddof=ddof)
TypeError: std() got an unexpected keyword argument 'dtype'

谢谢!

最佳答案

他们都是对的:他们只是在默认的 delta 自由度上有所不同。 np.std使用 0 和 DataFrame.std使用 1:

>>> prices.std(axis=0, ddof=0)
0 0.323259
1 0.173375
2 0.147740
dtype: float64
>>> prices.std(axis=0, ddof=1)
0 0.395909
1 0.212340
2 0.180943
dtype: float64
>>> np.std(prices.values, axis=0, ddof=0)
array([ 0.32325862, 0.17337503, 0.1477395 ])
>>> np.std(prices.values, axis=0, ddof=1)
array([ 0.39590933, 0.21234018, 0.1809432 ])

关于python - 计算每个 pandas.DataFrame 列的 numpy.std?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20432278/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com