我试图使用describe()
来获取一些描述性统计数据,但获取了应该是数字的nan
值。
我尝试使用 axis=0
或 axis=1
,而 axis=1
产生了正确的数值,但这不是正确的数值我需要; axis=0
没有给出数值,除了 nob 之外。
import scipy.stats as scs
import statsmodels.api as sm
arr = log_returns.to_numpy() #log_returns is the pd.DataFrame, 1200*9
scs.describe(arr, axis=0)
我尝试使用其他数据框,它运行良好,但 log_returns 看起来不错。
这是我使用代码得到的:
DescribeResult(nobs=1263, minmax=(array([nan, nan, nan, nan, nan, nan, nan, nan, nan]), array([nan, nan, nan, nan, nan, nan, nan, nan, nan])), mean=array([nan, nan, nan, nan, nan, nan, nan, nan, nan]), variance=array([nan, nan, nan, nan, nan, nan, nan, nan, nan]), skewness=array([nan, nan, nan, nan, nan, nan, nan, nan, nan]), kurtosis=array([nan, nan, nan, nan, nan, nan, nan, nan, nan]))
实际上所有的 nan 值都应该是 float 。
import scipy.stats as scs
import statsmodels.api as sm
import numpy as np
arr = np.array([[ 0.00319106, -0.00020801, 0.01943055, 0.01673707, -0.00785203, 0.00484115],
[ 0.0168392 , 0.01185672, 0.02491374, -0.02243826, -0.01460924, 0.00407847],
[ 0.01888372, 0.03193653, 0.00877704, -0.01465269, 0.00651202, 0.00078617]])#log_returns.to_numpy() #log_returns is the pd.DataFrame, 1200*9
scs.describe(arr, axis=0)
并给出:
DescribeResult(nobs=3, minmax=(array([ 0.00319106, -0.00020801, 0.00877704, -0.02243826, -0.01460924,
0.00078617]), array([0.01888372, 0.03193653, 0.02491374, 0.01673707, 0.00651202,
0.00484115])), mean=array([ 0.01297133, 0.01452841, 0.01770711, -0.00678463, -0.00531642,
0.00323526]), variance=array([7.27852276e-05, 2.63671322e-04, 6.73259558e-05, 4.30106436e-04,
1.16348907e-04, 4.64396381e-06]), skewness=array([-0.66169565, 0.2940851 , -0.36884708, 0.59665684, 0.40799184,
-0.60877654]), kurtosis=array([-1.5, -1.5, -1.5, -1.5, -1.5, -1.5]))
我必须进行一些 statmodels
更新才能使其正常工作,但现在它似乎可以正常工作。
尝试使用 pip 将 statmodels
更新到最新版本:
pip install statsmodels --upgrade
如果你使用 conda 会更好:
conda upgrade statsmodels
我是一名优秀的程序员,十分优秀!