Pandas删除/过滤时间序列数据

时间:2018-03-16 16:15:04

标签: python pandas time-series

如果我有很多时间序列数据,是否可以删除数据帧中的任何行,如果它不在0,15,30,45分钟时间戳上?

例如,我可以每隔5分钟编制一些数据......

import pandas as pd
import numpy as np

time = pd.date_range('6/28/2013', periods=2000, freq='5min')
data = pd.Series(np.random.randint(100, size=2000), index=time)

print(data)

但是我如何过滤以删除在0,15,30,45分钟时间间隔内没有落下的任何行?基本上最终结果只需要15分钟......

3 个答案:

答案 0 :(得分:3)

您可以使用isin

data[data.index.minute.isin([0,15,30,45])]

答案 1 :(得分:1)

由于分钟是15 *的倍数,如[0,15,30,45],您也可以使用

data[(data.index.minute % 15) == 0]

答案 2 :(得分:1)

使用pandas.Series.asfreq

data.asfreq(‘15T’)

2013-06-28 00:00:00    21
2013-06-28 00:15:00    20
2013-06-28 00:30:00    92
2013-06-28 00:45:00    70
2013-06-28 01:00:00    86
2013-06-28 01:15:00    82
2013-06-28 01:30:00    13
...