如何按日期列表过滤日期和时间的数据框?

How to filter a dataframe of dates and hours by a list of dates?

我有以下数据框,有几天,每 15 分钟测量一次:

                 CONSUMPTION
2016-11-01 01:00:00  3539
2016-11-01 01:15:00  3560
2016-11-01 01:30:00  3505
....
2016-11-02 01:00:00  3400
2016-11-02 01:15:00  3447
....
2016-11-03 01:00:00  2400
2016-11-03 01:15:00  2447

如果要求简单的一天,每个都有效:

df['2016-11-01']

我得到了那天的所有小节,96 节小节:

    CONSUMPTION
2016-11-01 01:00:00  3539
2016-11-01 01:15:00  3560
2016-11-01 01:30:00  3505
....

但是我的问题是我想获取日期列表,但这行不通:

df[['2016-11-01','2016-11-03']]

我达到的最多的是这个(但这不是我想要的,观察到 1 每天得到一个测量,而不是我预期的 96 个测量):

qwe=['2016-11-01','2016-11-03']
df.ix[df.index.to_datetime().isin(qwe)]

            CONSUMPTION
2016-11-01  3539
2016-11-03  2400

如有任何想法,我们将不胜感激......

将日期时间设为 Day,然后使用 isin 和 loc 即

li = ['2016-11-01','2016-11-02']
df.loc[(df.index.floor('D').isin(li)),:]

                    CONSUMPTION
Date                            
2016-11-01 01:00:00         3539
2016-11-01 01:15:00         3560
2016-11-01 01:30:00         3505
2016-11-02 01:00:00         3400
2016-11-02 01:15:00         3447

这可以工作几个小时:

hours = [0, 6, 12, 18]
df.loc[(df.index.hour.isin(hours)),:]