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