所以我试图在我的熊猫数据框架中在一年内的某一天删除数据,我正在努力找出正确的代码来完成这个过程。我的数据包括6年的半小时观察(2001-2007)。理想情况下,我想在我的索引中删除对应于一天的48个观察结果(' 2004-02-29')。我尝试过的常识方法是以下方法:
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 :(得分:1)
两件事:
添加访问索引的日期组件;
使用datetime.date
而不是字符串。
data = data[data.index.date != datetime.date(2004,2,29)]
如果您想删除所有闰日,可以使用以下内容:
data = data[(data.index.month != 2) & (data.index.day != 29)]
答案 1 :(得分:0)
没有您的数据,但请尝试(假设您的索引为pd.DatetimeIndex
):
import datetime
data[data.index.date != datetime.date(2004,2,29)]