通过 datetime.date 列表选择数据帧行(datetimeindex)

df 看起来像这样:


DateTime

2017-07-10 03:00:00    288.0

2017-07-10 04:00:00    306.0

2017-08-10 05:00:00    393.0

2017-08-10 06:00:00    522.0

2017-09-10 07:00:00    487.0

2017-09-10 08:00:00    523.0

2017-10-10 09:00:00    585.0

询问如何选择日期列表中的行:


['2017-07-10', '2017-09-10']

具有:


DateTime

2017-07-10 03:00:00    288.0

2017-07-10 04:00:00    306.0

2017-09-10 07:00:00    487.0

2017-09-10 08:00:00    523.0

谢谢


千巷猫影
浏览 167回答 2
2回答

宝慕林4294392

鉴于您列表中的日期最多包含每日信息,您可以首先将 ( Series.dt.floor)DatetimeIndex到每日级别并使用isin以下日期时间对象列表进行索引:t = [pd.to_datetime('2017-07-10'), pd.to_datetime('2017-09-10')]df.index= pd.to_datetime(df.index)df[df.index.floor('d').isin(t)]输出   DateTime2017-07-10 03:00:00     288.02017-07-10 04:00:00     306.02017-09-10 07:00:00     487.02017-09-10 08:00:00     523.0

萧十郎

假设日期时间是索引,请尝试以下操作:to_search=['2017-07-10', '2017-09-10']df[df.index.to_series().dt.date.astype(str).isin(to_search)]                        1DateTime                  2017-07-10 03:00:00  288.02017-07-10 04:00:00  306.02017-09-10 07:00:00  487.02017-09-10 08:00:00  523.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python