2012-06-27 70 views
3

我正在讀取僅包含可用時間的時間序列數據。這導致Series沒有缺失值,但是不相等的間隔索引。我想將其轉換爲Series,其索引間距相等,缺失值。因爲我不知道先驗的間距會是什麼,我目前使用像重新採樣熊貓時間序列而不計算新的偏移量

min_dt  = np.diff(series.index.values).min() 
new_spacing = pandas.DateOffset(days=min_dt.days, seconds=min_dt.seconds, 
           microseconds=min_dt.microseconds) 
series  = series.asfreq(new_spacing) 

一個函數來計算的間距應該是什麼(請注意,這是用熊貓0.7.3 - 0.8測試版代碼看起來有點不同,因爲我必須使用serial.index.to_pydatetime()來正確地使用Numpy 1.6)。

有沒有一種更簡單的方法來使用熊貓庫進行此操作?

回答

0

如果你想NaN的在沒有數據,你可以只使用Minute()位於datetools(如熊貓0.7.x的)的地方

from pandas.core.datetools import day, Minute 
tseries.asfreq(Minute()) 

這應該提供1均勻間隔的時間序列與沒有數據的系列值相比,與NaN差別很小。

+0

正如您所說,這將導致條目間的間隔爲1分鐘。我試圖把它放在均勻間隔的位置,其間隔等於我在條目之間的最小間距(即數據的「實際」頻率是什麼 - 每24小時或每12小時等) 。 –

+0

對不起,誤解了這個問題。在這種情況下,我不確定是否有比您擁有更簡單的方法。它有什麼問題? – reptilicus

+1

嚴格地說,沒有什麼是「錯誤的」,但是當我更多地瞭解熊貓庫時,我想避免重新實現我不知道的內建函數。此外,不得不在NumPy中使用索引的顯式值在使用NumPy日期時間類型的pandas 0.8.0 beta版中引發了一些問題,其中日期時間在熊貓指數中看起來很好,但是查看基礎NumPy數組給出了奇怪的值和一個錯誤的計算。 –