亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據前后閾值和時間戳對 Pandas 進行切片

根據前后閾值和時間戳對 Pandas 進行切片

HUWWW 2023-03-22 10:53:28
我有一個如下所示的數據框:Timestamp (Index)       Status    value2017-01-01 12:01:00     OPEN      83 2017-01-01 12:02:00     OPEN      82 2017-01-01 12:03:00     OPEN      87 2017-01-01 12:04:00     CLOSE     82 2017-01-01 12:05:00     CLOSE     81 2017-01-01 12:06:00     CLOSE     812017-01-01 12:07:00     CLOSE     812017-01-01 12:08:00     CLOSE     812017-01-01 12:09:00     CLOSE     812017-01-01 12:10:00     CLOSE     812017-01-01 12:11:00     CLOSE     812017-01-01 12:12:00     OPEN      812017-01-01 12:13:00     OPEN      812017-01-01 12:14:00     OPEN      812017-01-01 12:15:00     OPEN      812017-01-01 12:16:00     CLEAR     342017-01-01 12:17:00     CLOSE     232017-01-01 12:18:00     CLOSE     232017-01-01 12:19:00     CLOSE     752017-01-01 12:20:00     CLOSE     652017-01-01 12:21:00     CLOSE     722017-01-01 12:22:00     CLOSE     762017-01-01 12:23:00     CLOSE     772017-01-01 12:24:00     OPEN      872017-01-01 12:25:00     OPEN      872017-01-01 12:26:00     OPEN      872017-01-01 12:27:00     OPEN      872017-01-01 12:28:00     OPEN      872017-01-01 12:29:00     CLOSE     752017-01-01 12:30:00     CLOSE     752017-01-01 12:31:00     CLOSE     75如果連續關閉值中的第一個低于 70,我想刪除之前出現的打開塊和值低于 70 的關閉塊。它應該如下所示:Timestamp (Index)       Status    value2017-01-01 12:01:00     OPEN      83 2017-01-01 12:02:00     OPEN      82 2017-01-01 12:03:00     OPEN      87 2017-01-01 12:04:00     CLOSE     82 2017-01-01 12:05:00     CLOSE     81 2017-01-01 12:06:00     CLOSE     812017-01-01 12:07:00     CLOSE     812017-01-01 12:08:00     CLOSE     812017-01-01 12:09:00     CLOSE     812017-01-01 12:10:00     CLOSE     812017-01-01 12:11:00     CLOSE     812017-01-01 12:24:00     OPEN      872017-01-01 12:25:00     OPEN      872017-01-01 12:26:00     OPEN      872017-01-01 12:27:00     OPEN      872017-01-01 12:28:00     OPEN      872017-01-01 12:29:00     CLOSE     752017-01-01 12:30:00     CLOSE     752017-01-01 12:31:00     CLOSE     75關于如何獲取相關時間戳以刪除這些時間段的任何想法?
查看完整描述

1 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

嘗試:


df[df.groupby((df.status.shift().bfill().ne(df.status) & df.status.eq('OPEN')).cumsum()).transform(min).value.ge(70)]

結果:


                    status  value

timestamp                        

2017-01-01 12:01:00   OPEN     83

2017-01-01 12:02:00   OPEN     82

2017-01-01 12:03:00   OPEN     87

2017-01-01 12:04:00  CLOSE     82

2017-01-01 12:05:00  CLOSE     81

2017-01-01 12:06:00  CLOSE     81

2017-01-01 12:07:00  CLOSE     81

2017-01-01 12:08:00  CLOSE     81

2017-01-01 12:09:00  CLOSE     81

2017-01-01 12:10:00  CLOSE     81

2017-01-01 12:11:00  CLOSE     81

2017-01-01 12:24:00   OPEN     87

2017-01-01 12:25:00   OPEN     87

2017-01-01 12:26:00   OPEN     87

2017-01-01 12:27:00   OPEN     87

2017-01-01 12:28:00   OPEN     87

2017-01-01 12:29:00  CLOSE     75

2017-01-01 12:30:00  CLOSE     75

2017-01-01 12:31:00  CLOSE     75

方法是創建status不等于前一個的組status,從 開始status == 'OPEN'。


然后保留value每組大于或等于 70 的行。


查看完整回答
反對 回復 2023-03-22
  • 1 回答
  • 0 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號