python - 将间隔日期时间值转换为任意频率时间序列

标签 python time-series pandas data-analysis

我有以下数据结构:

2011-01-01 00:00, 2011-01-20 00:00, 200   # days-range
2011-01-20 00:00, 2011-03-08 00:00, 1288  # days-range
2011-04-11 00:00, 2012-01-08 00:00, 5987  # days-range

2012-02-01 00:00, 2012-02-01 01:00, 7     # hourly-range
2012-02-01 02:00, 2012-02-01 02:30, 3     # hourly-range

这是与 的间隔开始日期 , 结束日期 (在日期之间记录的一些指标)。

为了进一步的数据分析,我需要生成具有所需频率的时间序列:
每月/每天/每小时/半小时时间序列。例如,每小时数据:
2011-01-01 00:00, 2 
2011-01-01 01:00, 6
2011-01-01 02:00, 5
...

是否有任何 python 库可以帮助实现这种数据转换?

最佳答案

import pandas as pd

def stretch(start_date, end_date, value, freq):
    freq_dict = {'d': pd.datetools.day,
                 'h': pd.datetools.Hour(1)}
    dr = pd.DateRange(start_date, end_date, offset=freq_dict[freq])
    return pd.TimeSeries(value / dr.size, index=dr)


print stretch('2011-01-01 00:00', '2011-01-20 00:00', 200, 'd')

打印
2011-01-01    10
2011-01-02    10
2011-01-03    10
2011-01-04    10
2011-01-05    10
2011-01-06    10
2011-01-07    10
2011-01-08    10
2011-01-09    10
2011-01-10    10
2011-01-11    10
2011-01-12    10
2011-01-13    10
2011-01-14    10
2011-01-15    10
2011-01-16    10
2011-01-17    10
2011-01-18    10
2011-01-19    10
2011-01-20    10

关于python - 将间隔日期时间值转换为任意频率时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10532501/

相关文章:

python - 发电机 : KeyConditionExpression to check if an attribute exists or not null

python - Django:检测未使用的模板

以_为前缀的python字符串,它是什么?

python - 将带有日期值的列表加载到 pandas 数据框中并随时间绘制事件图

python - 如何从两个表创建二进制标签

python - 遍历嵌套的字符串列表以获取第一项

python - Pandas :过去n天的平均值

python - 在无向图中查找最大节点数

python - 具有多个时间序列的 PCA 作为具有 sklearn 的一个实例的特征

javascript - Chart JS - 为 x 轴时间序列设置一周的开始