2016-02-20 118 views
1

因此,我試圖在一年內的某一天在我的熊貓數據框中刪除基於某一天的數據,並且我正在努力找出正確的代碼來執行此操作處理。我的數據包括6年(2001-2007)的半小時觀測數據。所以理想情況下,我想在我的索引('2004-02-29')中刪除48天的觀測數據。常識的方式我想它是下面的方法:刪除基於熊貓數據幀索引的數據行

len(data) 
    122640 

    data = data[data.index != '2004-02-29'] 

    len(data) 
    122639 

的問題是,這種方法僅下降指定的那一天內的一個觀察。我想我正在接近布爾語句錯誤,但我不知道如何解決它。有人可以幫助我在這個過程中嗎?我將在下文中我的數據幀提供可變的樣本:

2001-01-01 00:28:48   NaN 
    2001-01-01 00:57:36   NaN 
    2001-01-01 01:26:24   NaN 
    2001-01-01 01:55:12   NaN 
    2001-01-01 02:24:00   NaN 
    2001-01-01 03:07:12   NaN 
    ............................... 
    2007-12-31 23:31:12   NaN 
    2008-01-01 00:00:00   NaN 
    Name: SFO3, dtype: float64 

注意,我對每年的第一個和最後一個月丟失的數據。

回答

0

沒有您的數據,但請嘗試(假設你的指數爲pd.DatetimeIndex):

import datetime 
data[data.index.date != datetime.date(2004,2,29)] 
1

兩件事情: 添加訪問索引的日期組件; 使用datetime.date而不是字符串。

data = data[data.index.date != datetime.date(2004,2,29)] 

如果你想刪除所有的飛躍天,你可以使用這樣的事情:

data = data[(data.index.month != 2) & (data.index.day != 29)]