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

标签 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']]

我取得的最大成就是这个(但这不是我想要的,观察到 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

关于python - 如何按日期列表过滤日期和时间的数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48152584/

相关文章:

python - 获取 ArrayField Postgres Django 的 len

python - 使用 google-api-python-client init() 方法时出现 SSL 错误

python - 当一列包含特定子字符串时,在多列上剪切子字符串

r - 仅更改 R 中分类列中的某些值

python - Pandas:重复数据删除时如何创建 "master"记录

python - 训练人脸识别模型

python - 是否可以编译用 Python 编写的程序?

python pandas 3个最小值和3个最大值

python - 如何使用 python pandas 在循环中加入多个数据帧

R - 从 colMeans 函数创建数据帧