删除有错误数据的天数,Pandas数据框架



有部分读数有错误的数据,我想删除至少有一个的整个天。我已经创建了包含True和False的列,如果该段是错误的。

下面的数据框示例,因为它有超过100k行

power_c  power_g  temperature  to_delete
date_time                                                          
2019-01-01 00:00:00+00:00     2985        0         10.1      False
2019-01-01 00:05:00+00:00     2258        0         10.1       True
2019-01-01 01:00:00+00:00     2266        0         10.1      False
2019-01-02 00:15:00+00:00     3016        0         10.0      False
2019-01-03 01:20:00+00:00     2265        0         10.0       True

例如,第一行和第二行属于同一天的同一小时,其中一个值为True,因此我想删除当天的所有行。

数据总是以5分钟的差异存在,所以我试图在True之后删除288项,但由于错误不在小时开始时,它确实按预期工作。

我对编程很陌生,到处尝试了很多不同的答案,我将非常感谢任何帮助。

按日期分组,然后过滤出至少有一个to_delete的组。

(df
.groupby(df.index.date)
.apply(lambda sf: None if sf['to_delete'].any() else sf)
.reset_index(level=0, drop=True))
power_c  power_g  temperature  to_delete
date_time                                                          
2019-01-02 00:15:00+00:00     3016        0         10.0      False

我假设date_time是日期时间类型。如果没有,先转换:

df.index = pd.to_datetime(df.index)

最新更新