如果我有很多时间序列数据,是否可以删除数据帧中的任何行,如果它不在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分钟......
答案 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
...