我試圖在價格圖表的 csv 中找到給定時間段的價格值。我已經使用 pd.to_datetime 函式將 Datetime 列轉換為 datetime 資料,但是我似乎找不到一種方法可以讓我按單獨的日期小時和分鐘過濾行。典型的行看起來像這樣。
Datetime 2021-10-15 19:55:00-04:00
Open 40.15
High 40.2
Low 40.14
Close 40.15
Volume 0
Dividends 0
Stock Splits 0
Name: 939, dtype: object
Empty DataFrame
Columns: [Datetime, Open, High, Low, Close, Volume, Dividends, Stock Splits]
Index: []
到目前為止,這是我的代碼
import pandas as pd
data = pd.read_csv("Data\\09-16-21 AMC-5min", parse_dates=["Datetime"])
data["Datetime"] = pd.to_datetime(data['Datetime'])
newData = data[(data.Datetime.day == data.Datetime.day.max()) & data.Datetime.hour == 9 & data.Datetime.minute == 30]
print(newData)
在這個例子中,我試圖找到最近一天 9:30 的資料點。當我嘗試運行它時,我收到以下錯誤
Traceback (most recent call last):
File "C:\Users\Zach\PycharmProjects\Algotrading\Test.py", line 7, in <module>
newData = data[(data.Datetime.day == data.Datetime.day.max()) & data.Datetime.hour == 9 & data.Datetime.minute == 30]
File "C:\Users\Zach\PycharmProjects\Algotrading\venv\lib\site-packages\pandas\core\generic.py", line 5487, in __getattr__
return object.__getattribute__(self, name)
AttributeError: 'Series' object has no attribute 'day'
我不確定如何訪問天、小時和分鐘的單獨值。任何意見,將不勝感激
uj5u.com熱心網友回復:
您需要.dt具有()第二個和第三個條件的訪問器:
newData = data[(data.Datetime.dt.day == data.Datetime.dt.day.max()) &
(data.Datetime.dt.hour == 9) &
(data.Datetime.dt.minute == 30)]
僅轉換為天一次:
s = data.Datetime.dt.day
newData = data[(s == s.max()) &
(data.Datetime.dt.hour == 9) &
(data.Datetime.dt.minute == 30)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/325506.html
上一篇:在時間范圍內為每一分鐘創建行
