1
我正在使用一些非常庞大但人口稀少的熊猫数据框。我使用scipy.stats.ttest_ind
来比较一些包含许多nans的列。我最近更新到Anaconda 4.2.12,现在当使用scipy.stats.ttest_ind
时,我得到了下面例子中看到的运行时错误。为什么scipy.stats.ttest_ind在比较nans时抛出一个新的RuntimeWarning?
import numpy as np
import scipy
case1 = case2 = np.linspace(np.nan,np.nan,5)
scipy.stats.ttest_ind(case1,case2)
>>>output:
C:\Anaconda3\lib\site-packages\scipy\stats\_distn_infrastructure.py:1748: RuntimeWarning: invalid value encountered in greater
cond1 = (scale > 0) & (x > self.a) & (x < self.b)
C:\Anaconda3\lib\site-packages\scipy\stats\_distn_infrastructure.py:1748: RuntimeWarning: invalid value encountered in less
cond1 = (scale > 0) & (x > self.a) & (x < self.b)
C:\Anaconda3\lib\site-packages\scipy\stats\_distn_infrastructure.py:1749: RuntimeWarning: invalid value encountered in less_equal
cond2 = cond0 & (x <= self.a)
所以函数运行,我可以使用输出就像我更新了唯一的区别之前,现在我得到这样的运行时警告。
如果我把所有的nans放到我的数据框中,那么ttest_ind
工作得很好。但我不想这样做,因为我需要维护数据帧的结构。
有谁知道为什么会发生这种情况?除了继续使用函数忽略警告或写入某种被破解的函数外,还有什么可以做的吗?
我发现同样的事情,我缩小它下来这个numpy的例子http://stackoverflow.com/q/40452765/2336654 – piRSquared
有趣。那么你现在只是压制这个错误? –
我通过使用熊猫压制它。 'pd.Series([np.nan,-1])<1'。但在我看来,这需要制定出来。 – piRSquared