python - 如何在 python 中使用 Pandas 数据框按特定日期和时间进行过滤

标签 python pandas dataframe datetime

我试图在价格图表的 csv 中查找给定时间段内的价格值。我已经使用 pd.to_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'

我不确定如何访问天、小时和分钟的单独值。任何建议将不胜感激

最佳答案

你需要.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)]

关于python - 如何在 python 中使用 Pandas 数据框按特定日期和时间进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69611773/

相关文章:

python - 获取原始的、未解析的 HTTP 响应

python - Pandas 力矩阵乘法

python - 修改代码以捕获大于 - 而不是完全匹配的值

pandas - '<' not supported between instances of ' 日期时间.日期' 和 'str'

python - 在 Python、OpenCv 中调整图像大小以保持纵横比

python - Xvfb 多显示器并行处理?

python - 使用 Numpy 进行间接排序

python - 根据缺失条件在 Pandas 中创建代理行

python - 用计数复制数据框中的每一行

scala - 如何重新整理Spark数据框中的行?