为了账号安全,请及时绑定邮箱和手机立即绑定

删除多组时间戳之间的行

删除多组时间戳之间的行

九州编程 2021-10-19 10:45:18
我有一个具有 (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”被删除。对不起,如果我的格式不符合标准。
查看完整描述

2 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

如果您的时间戳列使用正确的 dtype,您可以这样做:

df.loc[df.timestamp.dt.month.isin([1, 2, 3, 5, 6, 11, 12])]

这应该过滤掉不在列表中的月份。


查看完整回答
反对 回复 2021-10-19
  • 2 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信