Python 需要DataFrame.resample()来遵守子时段系列开始日期时间
我正在使用pandas DataFrame.resample()函数将1分钟频率时间序列数据的采样频率降低到15分钟。原始数据由多个按相同分钟频率排列的时间序列组成,其中每个序列都是元组列表,每个元组定义为Python 需要DataFrame.resample()来遵守子时段系列开始日期时间,python,pandas,Python,Pandas,我正在使用pandas DataFrame.resample()函数将1分钟频率时间序列数据的采样频率降低到15分钟。原始数据由多个按相同分钟频率排列的时间序列组成,其中每个序列都是元组列表,每个元组定义为(,)。在填充数据帧之前,我将其转换为(,)。下面是一个时间序列示例 start = datetime(2014, 2, 24, 1, 6, 0, tzinfo=pytz.utc) min_ts = dict((start + timedelta(seconds=60) * t, random
(,)
。在填充数据帧之前,我将其转换为(,)
。下面是一个时间序列示例
start = datetime(2014, 2, 24, 1, 6, 0, tzinfo=pytz.utc)
min_ts = dict((start + timedelta(seconds=60) * t, random.randint(0,3)) for t in range(1, 30))
min_ts =
{datetime.datetime(2014, 2, 24, 1, 7, tzinfo=<UTC>): 2,
datetime.datetime(2014, 2, 24, 1, 8, tzinfo=<UTC>): 1,
datetime.datetime(2014, 2, 24, 1, 9, tzinfo=<UTC>): 0,
datetime.datetime(2014, 2, 24, 1, 10, tzinfo=<UTC>): 3,
datetime.datetime(2014, 2, 24, 1, 11, tzinfo=<UTC>): 1,
datetime.datetime(2014, 2, 24, 1, 12, tzinfo=<UTC>): 0,
datetime.datetime(2014, 2, 24, 1, 13, tzinfo=<UTC>): 1,
datetime.datetime(2014, 2, 24, 1, 14, tzinfo=<UTC>): 0,
datetime.datetime(2014, 2, 24, 1, 15, tzinfo=<UTC>): 3,
datetime.datetime(2014, 2, 24, 1, 16, tzinfo=<UTC>): 3,
datetime.datetime(2014, 2, 24, 1, 17, tzinfo=<UTC>): 3,
datetime.datetime(2014, 2, 24, 1, 18, tzinfo=<UTC>): 1,
datetime.datetime(2014, 2, 24, 1, 19, tzinfo=<UTC>): 3,
datetime.datetime(2014, 2, 24, 1, 20, tzinfo=<UTC>): 0,
datetime.datetime(2014, 2, 24, 1, 21, tzinfo=<UTC>): 2,
datetime.datetime(2014, 2, 24, 1, 22, tzinfo=<UTC>): 1,
datetime.datetime(2014, 2, 24, 1, 23, tzinfo=<UTC>): 0,
datetime.datetime(2014, 2, 24, 1, 24, tzinfo=<UTC>): 3,
datetime.datetime(2014, 2, 24, 1, 25, tzinfo=<UTC>): 1,
datetime.datetime(2014, 2, 24, 1, 26, tzinfo=<UTC>): 1,
datetime.datetime(2014, 2, 24, 1, 27, tzinfo=<UTC>): 2,
datetime.datetime(2014, 2, 24, 1, 28, tzinfo=<UTC>): 0,
datetime.datetime(2014, 2, 24, 1, 29, tzinfo=<UTC>): 3,
datetime.datetime(2014, 2, 24, 1, 30, tzinfo=<UTC>): 2,
datetime.datetime(2014, 2, 24, 1, 31, tzinfo=<UTC>): 3,
datetime.datetime(2014, 2, 24, 1, 32, tzinfo=<UTC>): 0,
datetime.datetime(2014, 2, 24, 1, 33, tzinfo=<UTC>): 3,
datetime.datetime(2014, 2, 24, 1, 34, tzinfo=<UTC>): 2,
datetime.datetime(2014, 2, 24, 1, 35, tzinfo=<UTC>): 0}
我想要的结果是
df =
DateTimeIndex values
--------------------------------------
2014-02-24 01:07:00+00:00 23
2014-02-24 01:22:00+00:00 21
(更新以更清楚地反映所需结果)尝试使用
base
、loffset
和/或将标签切换到left
(这使用了您需要的不同随机种子)
仅供参考。如果您想在何时/如何使用
base
/loffset
时提供更多示例/解释,我们将不胜感激……请提交拉取请求!
df =
DateTimeIndex values
--------------------------------------
2014-02-24 01:07:00+00:00 23
2014-02-24 01:22:00+00:00 21
In [17]: df.resample('15min', how='sum', label='right')
Out[17]:
values
2014-02-24 01:15:00+00:00 10
2014-02-24 01:30:00+00:00 17
2014-02-24 01:45:00+00:00 7
[3 rows x 1 columns]
In [18]: df.resample('15min', how='sum', label='right',base=7)
Out[18]:
values
2014-02-24 01:22:00+00:00 16
2014-02-24 01:37:00+00:00 18
[2 rows x 1 columns]
In [19]: df.resample('15min', how='sum', label='left',base=7)
Out[19]:
values
2014-02-24 01:07:00+00:00 16
2014-02-24 01:22:00+00:00 18
[2 rows x 1 columns]
In [21]: df.resample('15min', how='sum', label='right',loffset='7T')
Out[21]:
values
2014-02-24 01:22:00+00:00 10
2014-02-24 01:37:00+00:00 17
2014-02-24 01:52:00+00:00 7
[3 rows x 1 columns]
In [22]: df.resample('15min', how='sum', label='left',loffset='7T')
Out[22]:
values
2014-02-24 01:07:00+00:00 10
2014-02-24 01:22:00+00:00 17
2014-02-24 01:37:00+00:00 7
[3 rows x 1 columns]