我有一个具有 (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])]
这应该过滤掉不在列表中的月份。
添加回答
举报
0/150
提交
取消