我有一个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'))]