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

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

如何使用 contains 過濾數據框 DatetimeIndex

如何使用 contains 過濾數據框 DatetimeIndex

瀟瀟雨雨 2023-09-12 20:12:16
我有一個按日期時間索引的數據框。我正在嘗試創建某種僅提供包含特定時間的幀的過濾器。例如,所有包含“09:30”的幀df.dtypesopen             float64high             float64low              float64close            float64volume             int64returns          float64returns_final      int64dtype: object我可以根據幀的開頭來執行此操作,但我不知道我們是否可以使用通配符類型過濾器。df.loc['2020'].head(5)                    open        high         low        close         volume    returns returns_finalDatetime                            2020-07-06 09:30:00 255.337982  261.950012  253.208786  261.421997  6592145 -6.084015   12020-07-06 11:00:00 261.526001  268.399994  261.239990  266.275452  4955678 -4.749451   12020-07-06 12:30:00 266.269043  266.989990  264.200012  265.191986  2002640 1.077057    -12020-07-06 14:00:00 265.185455  269.558014  261.597992  268.513763  3303263 -3.328308   12020-07-06 15:30:00 268.528015  275.558014  268.096008  274.200012  2583149 -5.671997   12020-07-07 09:30:00 281.002014  285.641998  267.341980  277.621979  10130111    3.380035    -12020-07-07 11:00:00 278.000000  284.600006  276.536011  278.123718  4221461 -0.123718   12020-07-07 12:30:00 278.000000  282.000000  277.399994  280.131012  2394459 -2.131012   1我正在嘗試沿著這些思路找到一些東西df.loc['*09:30*']我想我可能需要重新索引這個或其他東西任何意見將不勝感激
查看完整描述

2 回答

?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

你可以使用這個:


df[df.index.strftime('%H:%M:%S') == '09:30:00']

輸出:


                           open        high         low       close    volume   returns  return_final

Datetime                                                                                             

2020-07-06 09:30:00  255.337982  261.950012  253.208786  261.421997   6592145 -6.084015             1

2020-07-07 09:30:00  281.002014  285.641998  267.341980  277.621979  10130111  3.380035            -1

一天中的多個時間:


df[df.index.strftime('%H:%M:%S').isin(['09:30:00','11:00:00'])]

您可以使用過濾器,就像使用正則表達式一樣:


df.filter(regex='09:30|11:00', axis=0)

輸出:


                                      open        high         low              close    volume  returns  return_final

Datetime                                                                                                              

2020-07-06 09:30:00 255.337982  261.950012  253.208786  261.421997  6592145 -6.084015  1.000000      NaN           NaN

2020-07-06 11:00:00 261.526001  268.399994  261.239990  266.275452  4955678 -4.749451  1.000000      NaN           NaN

2020-07-07 09:30:00 281.002014  285.641998  267.341980  277.621979           10130111  3.380035     -1.0           NaN

2020-07-07 11:00:00 278.000000  284.600006  276.536011  278.123718  4221461 -0.123718  1.000000      NaN           NaN



查看完整回答
反對 回復 2023-09-12
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

看起來好像有效。


df.filter(like='09:30', axis=0)


    open    high    low close   volume  returns returns_final

Datetime                            

2020-07-06 09:30:00 255.337982  261.950012  253.208786  261.421997  6592145 -6.084015   1

2020-07-07 09:30:00 281.002014  285.641998  267.341980  277.621979  10130111    3.380035    -1

2020-07-08 09:30:00 281.000000  283.399994  277.662018  278.865784  4698944 2.134216    -1

2020-07-09 09:30:00 279.398010  281.500000  271.919983  272.015991  4562064 7.382019    -1

2020-07-10 09:30:00 278.220367  283.799988  275.202026  283.506012  4274774 -5.285645   1



查看完整回答
反對 回復 2023-09-12
  • 2 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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