python - 根据条件查找日期和前后班次
问题描述
我目前正在分析 python 中的一些时间序列数据,我需要根据其他列值找到事件的开始和结束。
我的数据框大致如下所示:
Month Price Change
9 2009-06-01 144384.10 0.1112
10 2009-07-01 132549.80 -0.082
11 2009-08-01 144611.00 0.091
12 2009-09-01 135389.50 -0.0638
13 2009-10-01 140593.30 0.0384
14 2009-11-01 153151.70 0.0893
15 2009-12-01 151010.80 -0.014
16 2010-01-01 152519.30 0.01
17 2010-02-01 145998.30 -0.0428
18 2010-03-01 151475.30 0.0375
19 2010-04-01 163071.70 0.0766
20 2010-05-01 150044.20 -0.0799
21 2010-06-01 143950.30 -0.0406
22 2010-07-01 139866.00 -0.0284
23 2010-08-01 137859.00 -0.0143
假设我在 2010 年中期遇到了危机。我想通过查看该Change
列来找到危机的第一个日期。我有以下代码,但我想知道它是否可以写得更有效率,因为这只是危机开始的一部分:
crisis = df
crisis["month_1"] = crisis["Month"].shift(1)
crisis = crisis[(crisis["Change"]< 0) & (crisis["Month"] > "2010-02-01")]
start_date = crisis["month_1"].iloc[0]
解决方案
推荐阅读
- reactjs - 仅适用于 CSS 的热重载?
- android - 当应用程序从移动设备运行时尝试获取空数组的长度
- python-3.x - 在python3.7 hashlib中,同样计算两次得到的结果不同
- php - 从服务到另一个服务的依赖注入不起作用 symfony 5
- ruby-on-rails - 放置Rails Form_For字段在不同位置
- android-studio - 包名包含意外级别 com.tmp
- python - 我想在 python 中找到使用 def 的前 10 名客户
- scala - 条件隐式定义 Scala
- c++ - 在树c ++中查找特定节点高度
- google-apps-script - 在多个下拉列表中创建注释的脚本