2016-02-20 162 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)]