首页 文章

熊猫将每小时的时间序列重新采样为每小时比例的时间序列

提问于
浏览
3

我正在处理每小时的时间序列(日期,时间(小时),P),并尝试计算每小时每日总数“金额”的比例 . 我知道我可以让我们Pandas的重新采样('D',怎么='sum')来计算P(DailyP)的每日总和,但在同一步骤中,我想用每日P来计算每日P的比例每小时(因此,P / DailyP)以小时时间序列结束(即,与原始时间序列相同) . 我不确定这在Pandas术语中是否甚至可以被称为“重新采样” . 这可能从我对术语的使用中可以明显看出,但我是Python的绝对新手还是编程 . 如果有人可以建议一种方法来做到这一点,我会非常感激 . 谢谢!

1 回答

  • 4

    一种可能的方法是将每日总和重新索引回原始小时指数( reindex )并向前填充值(以便每小时得到当天总和的值, fillna ):

    df.resample('D', how='sum').reindex(df.index).fillna(method="ffill")
    

    这可以用来划分原始数据帧 .

    一个例子:

    >>> import pandas as pd
    >>> import numpy as np
    >>> 
    >>> df = pd.DataFrame({'P' : np.random.rand(72)}, index=pd.date_range('2013-05-05', periods=72, freq='h'))
    >>> df.resample('D', 'sum').reindex(df.index).fillna(method="pad")
                                 P
    2013-05-05 00:00:00  14.049649
    2013-05-05 01:00:00  14.049649
    ...
    2013-05-05 22:00:00  14.049649
    2013-05-05 23:00:00  14.049649
    2013-05-06 00:00:00  13.483974
    2013-05-06 01:00:00  13.483974
    ...
    2013-05-06 23:00:00  13.483974
    2013-05-07 00:00:00  12.693711
    2013-05-07 01:00:00  12.693711
    ..
    2013-05-07 22:00:00  12.693711
    2013-05-07 23:00:00  12.693711
    

相关问题