1
我有一個熊貓的TimeSeries與<0.1
值,指向檢出限:處理檢出限
In [1]: type(ts)
Out[1]: pandas.core.series.TimeSeries
In [2]: ts[55:63]
Out[2]: Date
2006-08-07 0.8809099
2006-08-21 1.027876
2007-07-10 0.5982836
2007-07-26 0.8
2007-08-09 <0.1
2007-08-23 1.013378
2008-07-14 0.6568888
2008-07-29 0.6966623
Name: PO4 uM
我一直想:
ts.str.contains('<0.1')
但無法弄清楚如何用它來替換我的數據值。
如何用Pandas可以處理的值取代這些檢測極限指標?
是,使用na_values與pd.ExcelFile .parse用NaN取代<0.1值,但我並不是真的想要NaN,因爲低於檢測極限與缺失值非常不同(Tufte認爲l在「挑戰者」災難中,在O形圈損傷情節中留下「無損」價值扮演了重要角色)。我想用'0.1'替換''<0.1''值是保守的。不幸的是,具有「<0.1」值的系列也有NaN,所以我必須這樣做才能使它工作:'ts [ts.str.contains('<0.1')。replace(NaN,False)] = 0.1' – 2013-02-12 10:51:12
@RichSignell你可以使用'轉換器'參數eg 'pd.read_clipboard(sep ='\ s +',header = None,converters = {1:lambda x:0.1 if x =='<0.1'else x})':) – 2013-02-12 12:39:07
Andy,我很樂意使用轉換器的方法,但我似乎無法得到它的工作。我相信這很簡單。 'urllib.urlretrieve(URL =的 'http://epi.whoi.edu/ipython/results/mdistefano/Falmouth_data.csv',filename='Falmouth_data.csv'); pd.read_csv( 'Falmouth_data.csv',index_col = 'Date', na_values = ['?',None,'NS','no sample left','Sample Destroyed','machine error','#VALUE!'], 轉換器= {'PO4 uM': lambda x:0.1如果x =='<0.1'else x})' – 2013-02-12 21:30:07