python-3.x - 根据日期时间索引中的条件删除数据框行
问题描述
我有一个大小为 (43817, 6) 的大型数据框。我通过以下代码创建了一个由过去两个月组成的较小数据框:
test_df = df1.last('3M')
我之所以选择“3M”,是因为我在第三个月的第一天运行代码。df 中的索引是一个日期时间索引。
下面的示例数据:
Scheduled_Start_Date CRQ Change Class
Scheduled_Start_Date
2018-05-25 13:00:00 2018-05-25 13:00:00 CRQ000000114908 Standard
2018-05-25 15:00:00 2018-05-25 15:00:00 CRQ000000115436 Standard
2018-05-25 15:00:00 2018-05-25 15:00:00 CRQ000000115429 Standard
2018-05-25 16:00:00 2018-05-25 16:00:00 CRQ000000115491 Standard
2018-05-25 18:00:00 2018-05-25 18:00:00 CRQ000000115572 Standard
2018-05-26 17:00:00 2018-05-26 17:00:00 CRQ000000115495 Emergency
2018-05-29 11:00:00 2018-05-29 11:00:00 CRQ000000115240 Standard
2018-05-29 21:00:00 2018-05-29 21:00:00 CRQ000000115507 Emergency
2018-05-31 15:00:00 2018-05-31 15:00:00 CRQ000000115516 Standard
2018-06-01 05:00:00 2018-06-01 05:00:00 CRQ000000115466 Standard
2018-06-01 09:00:00 2018-06-01 09:00:00 CRQ000000115085 Normal
我想做的是获得过去两个月所有日子的完整视图,无论我何时运行代码,我能想到的唯一方法是删除 datetimeindex 中包含当前不需要的月份的任何行在两个月期间之外。例如,如果我在 6 月 1 日运行小型数据框的代码,它将在 6 月 1 日返回我需要删除的实例。
无论您何时运行代码,是否有更简单的方法可以从 datetimeindex 获取最后两个(完整)月?
解决方案
您可以从中删除当前月份的数据df
,然后查找最近 2 个月的数据。在查找过去 2 个月并删除当前月份然后再查找一个月后可能会很混乱。:
import datetime as dt
current_month = dt.datetime.today().month
df.drop(df.loc[df.index.month==current_month].index).last('2M')
考虑下面的玩具示例:
i = pd.date_range(start='2018-04-01', freq='20D', end='2018-06-30')
df = pd.DataFrame({'A': [1, 10, 3, 4, 5]}, index=i)
print(df)
输出:
A
2018-04-01 1
2018-04-21 10
2018-05-11 3
2018-05-31 4
2018-06-20 5
然后在查找上个月的数据之前删除当前月份n
的数据。
import datetime as dt
current_month = dt.datetime.today().month
df.drop(df.loc[df.index.month==current_month].index).last('2M')
输出:
A
2018-04-01 1
2018-04-21 10
2018-05-11 3
2018-05-31 4
推荐阅读
- chisel - 符号'类型
类路径中缺少 .experimental.MultiIOModule' - windows - windows cmd .bat 处理带空格的文件名
- spring-boot - 从 spring boot application.properties 文件访问 amqp_URI
- html - 为什么我的源中的数值 0 不允许我在网页上拥有服务器?
- ejs - 防止ejs if语句中出现空行
- wordpress - 删除查询字符串和参数
- azure - Windows Azure 虚拟网络点对点:此连接需要此平台上不可用的安全功能
- excel - VBA Excel - 在过滤的行中使用偏移量
- java - get the generic class type at runtime when autowiring
- python - 如何在熊猫中重构数据框?