Python 以预定义的时间值进行采样
这是另一个问题的后续问题: 假设我有以下时间序列:Python 以预定义的时间值进行采样,python,datetime,numpy,pandas,timestamp,Python,Datetime,Numpy,Pandas,Timestamp,这是另一个问题的后续问题: 假设我有以下时间序列: money_spent timestamp 2014-10-06 18:00:40.063000-04:00 0.568000 2014-10-06 18:00:41.361000-04:00 3.014770 2014-10-06 18:00:42.896000-04:00 0.878154 2014-10-0
money_spent
timestamp
2014-10-06 18:00:40.063000-04:00 0.568000
2014-10-06 18:00:41.361000-04:00 3.014770
2014-10-06 18:00:42.896000-04:00 0.878154
2014-10-06 18:00:43.040000-04:00 0.723077
2014-10-06 18:00:44.791000-04:00 0.723077
2014-10-06 18:00:45.496000-04:00 0.309539
2014-10-06 18:00:45.799000-04:00 3.032000
2014-10-06 18:00:47.470000-04:00 3.014770
2014-10-06 18:00:48.092000-04:00 1.584616
我想试一试:
- 在预定义的时间点(例如,从18:00到19:00,每隔
秒的时间戳范围)2.5
- 对于每个样本,获取间隔内花费的总和
# Start at 18:00
start_time = datetime.datetime(year = 2014,
month = 10,
day = 6,
hour = 18,
tzinfo = pytz.timezone('US/Eastern')
# Finish 400 seconds later
end_time = start_time + datetime.timedelta(seconds=400)
my_new_timestamps = pd.date_range(start = start_time,
end = end_time,
freq = '2.5s')
我想通过获取花费的金钱的总和,在文章顶部的我的新时间戳定义的位置上重新采样我的原始数据框
请注意,原始数据帧仅涵盖从~18:00:40到~18:00:48,因此如果我这样做:
resample('2.5S',how='sum',label='right')
上述命令将仅在这两个时间之间的时间窗口上返回样本,不在my_new_时间戳定义的开始时间和结束时间之间返回样本。它还将在2.5s
间隔上取样,这些间隔与我想要的间隔(那些由my_new_Timestaps
定义的间隔)不同。请发布你期望的,因为我认为df.resample('2500L','how='sum')
对你不起作用。谢谢@Jeff我更新了帖子。resample
的问题是,它只考虑我有数据的时间值(即数据帧索引定义的时间窗口),但我希望获得不同时间戳集的样本。尝试使用freq='2500L'
;频率中有一个分数错误(它会使频率变为5s,这是错误的)。你可以简单地重新采样,它会像你想要的那样工作。如果你真的想(之前或之后)恢复到你的全部范围,你可以重新编制索引,但那将是NaNThanks@Jeff。如果我事先重新编制索引,重新采样
会从数据帧中的第一个时间戳开始计数吗?(如果是这样,这完全解决了问题)。是的,它将“捕捉”到第一个频率(如果需要,可以使用loffset
和/或label
,从最大的戳记开始计算)