在一个环境中,我有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
是什么给出的?
答案 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)。