因此,我试图在我的 pandas 数据框中删除一年内某一天的数据,并且我正在努力找出执行此过程的正确代码。我的数据由 6 年(2001-2007 年)每半小时的观察组成。因此,理想情况下,我想删除索引中某一天对应的 48 个观测值 ('2004-02-29')。我尝试过的常识性方法是以下方法:
len(data)
122640
data = data[data.index != '2004-02-29']
len(data)
122639
问题是此方法仅在指定的当天删除一个观察值。我认为我错误地处理了 bool 语句,但我不确定如何修复它。有人可以在这个过程中帮助我吗?我将在下面的数据框中提供变量示例:
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
请注意,我缺少每年第一个月和最后一个月的数据。
最佳答案
有两件事:
添加对索引的日期部分的访问;
使用 datetime.date
而不是字符串。
data = data[data.index.date != datetime.date(2004,2,29)]
如果您想删除所有闰日,您可以使用如下内容:
data = data[(data.index.month != 2) & (data.index.day != 29)]
关于python - 根据 pandas 数据框索引删除数据行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35518870/