大熊猫描述0.18.0 vs pandas描述0.17.0

时间:2016-05-09 18:50:50

标签: python pandas

在一个环境中,我有pandas版本0.17.0和numpy版本1.10.1。 在另一个环境中,我有pandas版本0.18.1和numpy版本1.10.4。

我运行这段代码

from pandas import Series
import numpy as np
Series([1,2,3,4,5,np.NaN]).describe()

使用pandas版本0.17.0,我得到了这个输出:

count    5.000000 
mean     3.000000
std      1.581139
min      1.000000
25%      2.000000
50%      3.000000
75%      4.000000
max      5.000000
dtype: float64

使用pandas版本0.18.1我得到了这个输出:

count    5.000000
mean     3.000000
std      1.581139
min      1.000000
25%           NaN
50%           NaN
75%           NaN
max      5.000000
dtype: float64

是什么给出的?

1 个答案:

答案 0 :(得分:4)

您的问题是Series.describe()使用Series.quantile(),而Pandas 0.18.1中目前有reported bug (#13098),当Series.quantile()系列包含{nan时,>>> import pandas as pd >>> import numpy >>> s = pd.Series([1, 2, 3, 4, numpy.nan]) >>> s.quantile(0.5) nan 不会返回百分位数1}}。

来自#13098的错误演示:

notnull

如果您查看pull #12752,在计算百分位数之前,nan似乎曾被用来删除Series.quantile()值,但它已被删除。

<强>更新

此问题现在似乎已在this commit后关闭,之后nan再次处理{{1}} (2016/05/12)