2012-12-21 82 views
2

我正在使用大熊貓將日間數據(存儲在data_m中)轉換爲日常數據。出於某種原因,resample在日內數據中不存在的日子中添加了行。例如,1/8/2000不在日內數據中,但每日數據包含該日期的一行,其中NaN作爲值。 DatetimeIndex具有比實際數據更多的條目。我做錯了什麼?Python pandas resample在原始數據中添加日期不存在

data_m.resample('D', how = mean).head() 
Out[13]: 
      x 
2000-01-04 8803.879581 
2000-01-05 8765.036649 
2000-01-06 8893.156250 
2000-01-07 8780.037433 
2000-01-08 NaN 

data_m.resample('D', how = mean) 
Out[14]: 
<class 'pandas.core.frame.DataFrame'> 
DatetimeIndex: 4729 entries, 2000-01-04 00:00:00 to 2012-12-14 00:00:00 
Freq: D 
Data columns: 
x 3241 non-null values 
dtypes: float64(1) 

回答

5

你在做什麼看起來是正確的,它只是熊貓賦予NaN一個空數組的平均值。

In [1]: Series().mean() 
Out[1]: nan 

resample轉換爲定期的時間間隔,因此,如果沒有樣品的那一天你會得到NaN的。

大部分時間有NaN不是問題。如果是,我們既可以使用fill_method(例如'ffill'),或者如果你真的想刪除它們,你可以使用dropna(不推薦):

data_m.resample('D', how = mean, fill_method='ffill') 
data_m.resample('D', how = mean).dropna() 
相關問題