我一直在pandas中使用TimeSeries的between_time
方法,它返回指定时间之间的所有值,无论它们的日期如何。
但是我需要选择两个日期和时间,因为我的时间序列结构 包含多个日期。
解决这个问题的一种方法虽然相当不灵活,但只是迭代这些值并删除那些不相关的值。
有更优雅的方式吗?
答案 0 :(得分:5)
您可以先选择感兴趣的日期,然后使用between_time
。例如,假设您有72小时的时间序列:
import pandas as pd
from numpy.random import randn
rng = pd.date_range('1/1/2013', periods=72, freq='H')
ts = pd.Series(randn(len(rng)), index=rng)
选择20:00和20:00之间1月2日和3日22:00你可以做到:
ts['2013-01-02':'2013-01-03'].between_time('20:00', '22:00')
给你这样的东西:
2013-01-02 20:00:00 0.144399
2013-01-02 21:00:00 0.886806
2013-01-02 22:00:00 0.126844
2013-01-03 20:00:00 -0.464741
2013-01-03 21:00:00 1.856746
2013-01-03 22:00:00 -0.286726