删除多组时间戳之间的行

我有一个具有 (yyyy-mm-dd hh:mm:ss) 形式的时间戳的 DataFrame。我正在尝试删除两个不同时间戳之间的数据。目前我可以删除 1 个时间戳范围之间的数据,但我无法将其扩展到多个时间戳。


例如,使用 DataFrame 我可以删除一系列行(例如 2015-03-01 00:20:00 到 2015-08-01 01:10:00)但是,我不知道如何删除另一个范围在它旁边。执行此操作的代码如下所示。


index_list= df.timestamp[(df.timestamp >= "2015-07-01 00:00:00") & (df.timestamp <= "2015-12-30 23:50:00")].index.tolist()


df1.drop(df1.index[index_list1, inplace = True)

DataFrame 延续了 3 年以上,并且包含了这 3 年中的每一天。我试图删除所有 3 年从 7 月到 12 月(2015-07-01 00:00:00 到 2015-12-30 23:50:00)的所有行。


我在想我创建了一个辅助列,它从日期列中获取月份,然后根据辅助列中的月份进行删除。


我将不胜感激任何建议。谢谢!


编辑:我添加了 DataFrame 的一个小总结版本。这就是初始 DataFrame 的样子。


df    Date                   v

    2015-01-01 00:00:00     30.0

    2015-02-01 00:10:00     55.0

    2015-03-01 00:20:00     36.0

    2015-04-01 00:30:00     65.0

    2015-05-01 00:40:00     35.0

    2015-06-01 00:50:00     22.0

    2015-07-01 01:00:00     74.0

    2015-08-01 01:10:00     54.0

    2015-09-01 01:20:00     86.0

    2015-10-01 01:30:00     91.0

    2015-11-01 01:40:00     65.0

    2015-12-01 01:50:00     35.0

得到这样的东西


df    Date                   v

    2015-01-01 00:00:00     30.0

    2015-02-01 00:10:00     55.0

    2015-03-01 00:20:00     36.0

    2015-05-01 00:40:00     35.0

    2015-06-01 00:50:00     22.0

    2015-11-01 01:40:00     65.0

    2015-12-01 01:50:00     35.0

其中时间戳“2015-07-01 00:20:00 to 2015-10-01 00:30:00”和“2015-07-01 01:00:00 to 2015-10-01 01:30:00”被删除。对不起,如果我的格式不符合标准。


九州编程
浏览 169回答 2
2回答

守着星空守着你

如果您的时间戳列使用正确的 dtype,您可以这样做:df.loc[df.timestamp.dt.month.isin([1, 2, 3, 5, 6, 11, 12])]这应该过滤掉不在列表中的月份。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python