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

时间:2018-01-08 14:44:11

标签: python pandas dataframe filter datetimeindex

我有以下数据框,每隔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']]

我所取得的成就最多(但这不是我想要的,观察到每天得到一个量度,而不是我预期的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

任何想法都会受到赞赏.....

1 个答案:

答案 0 :(得分:4)

将日期时间置于日期,然后使用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