为什么我不能 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']
我有基本的金融 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']