3

我有以下数据框,有几天,每 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

任何想法将不胜感激......

4

2 回答 2

6

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

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
于 2018-01-08T14:53:59.543 回答
0

这可以工作几个小时:

hours = [0, 6, 12, 18]
df.loc[(df.index.hour.isin(hours)),:]
于 2021-12-09T17:09:56.703 回答