首页 > 解决方案 > 具有本地化日期时间索引的数据框:如何删除没有给定时间的日期

问题描述

我有一个如下数据框:

                            A   B
2014-06-02 09:00:00-04:00   ... ...
2014-06-02 10:00:00-04:00   ... ...
2014-06-02 11:00:00-04:00   ... ...
2014-06-02 12:00:00-04:00   ... ...
2014-06-03 09:00:00-04:00   ... ...
2014-06-03 10:00:00-04:00   ... ...
2014-06-03 11:00:00-04:00   ... ...
2014-06-04 09:00:00-04:00   ... ...
2014-06-04 10:00:00-04:00   ... ...
2014-06-04 11:00:00-04:00   ... ...
2014-06-04 12:00:00-04:00   ... ...

我需要删除没有小时 12:00:00-04:00 的日子:在我的示例中,它将是 2014-06-03。所以最终的数据框看起来像:

                            A   B
2014-06-02 09:00:00-04:00   ... ...
2014-06-02 10:00:00-04:00   ... ...
2014-06-02 11:00:00-04:00   ... ...
2014-06-02 12:00:00-04:00   ... ...
2014-06-04 09:00:00-04:00   ... ...
2014-06-04 10:00:00-04:00   ... ...
2014-06-04 11:00:00-04:00   ... ...
2014-06-04 12:00:00-04:00   ... ...

请注意索引已本地化 (-04:00)

熊猫 0.24.2

标签: pythonpython-3.xpandasdataframe

解决方案


你可以groupbyfilter

df.groupby(df.index.date).filter(lambda s: 12 in s.index.hour)

                            A   B
2014-06-02 09:00:00-04:00   ... ...
2014-06-02 10:00:00-04:00   ... ...
2014-06-02 11:00:00-04:00   ... ...
2014-06-02 12:00:00-04:00   ... ...
2014-06-04 09:00:00-04:00   ... ...
2014-06-04 10:00:00-04:00   ... ...
2014-06-04 11:00:00-04:00   ... ...
2014-06-04 12:00:00-04:00   ... ...

推荐阅读