为什么我不能 select 日内时间序列中的一整天?

Why can't I select whole days from intra-day time series?

我有基本的金融 OHLCV 数据。

                      Datetime        Open    Volume        date
0    2021-08-25 09:30:00-04:00  149.699997   3524920  2021-08-25
1    2021-08-25 09:35:00-04:00  149.699997   1424746  2021-08-25
2    2021-08-25 09:40:00-04:00  149.785004   1248013  2021-08-25
3    2021-08-25 09:45:00-04:00  149.649994   1208242  2021-08-25
4    2021-08-25 09:50:00-04:00  149.486603   1345607  2021-08-25

假设我想select某一天的所有示例。

df["Datetime"].eq("2021-08-25")

即使在使用 lt 或 gt 时与字符串日期的比较有效,这也不起作用。

所以我用

创建了日期列
df["date"] = df["Datetime"].dt.date

这个新列还不是对象数据类型:

df_n["date"].eq("2021-08-25")

还是不行。

一个解决方案是 'remove' 次,这意味着通过 Series.str.normalize 将它们设置为 00:00:00,因为显然 pandas 将字符串日期时间与时间戳进行比较:

df["Datetime"].dt.normalize().eq("2021-08-25")
df["Datetime"].dt.floor('d').eq("2021-08-25")

如果需要比较日期,也需要另一边的日期:

from datetime import date

df["Datetime"].dt.date.eq(date(2021,8,25))

用strftime也可以

df1['Datetime']= pd.to_datetime(df1['Datetime'] )
df1[df1['Datetime'].dt.strftime('%Y-%m-%d')=='2021-08-25']