选择白天和黑夜之间的数据

时间:2019-03-18 20:37:07

标签: pandas datetime dataframe timestamp time-series

我的数据如下所示,它是基于分钟的数据,为期两年。

  1. 2017-04-02 00:00:00
  2. 2017-04-02 00:01:00
  3. 2017-04-02 00:02:00
  4. 2017-04-02 00:03:00
  5. 2017-04-02 00:04:00
  6. ....
  7. 2017-04-02 23:59:00
  8. ...
  9. 2019-02-01 22:54:00
  10. 2019-02-01 22:55:00
  11. 2019-02-01 22:56:00
  12. 2019-02-01 22:57:00
  13. 2019-02-01 22:58:00
  14. 2019-02-01 22:59:00
  15. 2019-02-01 23:00:00

我想访问工作日结束到下一个开始之间的所有数据行。我的数据框中所有天在 2018-04-02 18:00:00 2018-04-03 05:00:00 之间的示例。请帮助

2 个答案:

答案 0 :(得分:1)

一种方法是根据datetime列或索引上的条件进行布尔索引。假设您的DataFrame名为df,并且它的DatetimeIndex等于您发布的示例数据,请尝试以下操作:

df[(df.index.hour >= 18) | (df.index.hour <= 5)]

答案 1 :(得分:1)

如果您使用DatetimeIndex,则可以使用.between_time

import pandas as pd
df = pd.DataFrame({'date': pd.date_range('2017-04-02', freq='90min', periods=100)})
df = df.set_index('date')

df.between_time('18:00', '5:00')

#date
#2017-04-02 00:00:00
#2017-04-02 01:30:00
#2017-04-02 03:00:00
#2017-04-02 04:30:00
#2017-04-02 18:00:00
#2017-04-02 19:30:00
#2017-04-02 21:00:00
#2017-04-02 22:30:00
#....