如何删除datetime不增加的数据帧行



我有一个datetime索引的数据帧,输出如下:

2012-04-08 21:59:49 7651.8 7655.8

2012-04-08 21:59:50 7651.7 7655.7

2012-04-08 21:59:54 7651.7 7655.7

2012-04-08 21:59:55 7651.8 7655.8

2012-04-08 09:47:00 7544.9 7545.9

有效行的datetime值必须等于或大于前一行(且第一行总是有效的)。

因此,在上面的提取中,唯一无效的行是最后一行,因为datetime不满足上述条件。

我已经设法删除了违规行:

df.drop (df.loc [df.index.to_series () .diff () & lt;pd。to_timedelta(0秒)]。指数,原地= True)

但这看起来有点复杂。是否有更简单的方法来实现这一点?

df.index.to_series().diff() < pd.to_timedelta('0 seconds')返回一个布尔系列,您可以使用布尔索引来选择行:

df = df.loc[~(df.index.to_series().diff() < pd.to_timedelta('0 seconds'))]

最新更新