describe()返回所有空值

时间:2019-09-23 02:15:03

标签: python

我试图使用describe()获得一些描述性统计信息,但是获得nan的数值。

我尝试使用axis=0axis=1,而axis=1产生正确的数值,但这不是我所需要的; axis=0没有给出数值,希望得到点赞。

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值都应该是浮点数。

1 个答案:

答案 0 :(得分:0)

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