[英]Using higher frequency data as a proxy for lower-frequency data
我有兩次系列 - 年度和季度。 年度數據在 2018 年結束,但季度數據持續到 2019 年第三季度。 將兩者結合起來的最佳方法是什么,Python 檢查最新的可用季度和年度數據是什么,並用最新的季度值填充年度時間序列?
這就是我的想法:
Data_ann
2013 5.1
2014 3.2
2015 2.1
2016 2.2
2017 2.1
2018 4.2
2019 n/a
Data_qtr
...
2018q1 2.5
2018q2 2.2
2018q3 3.7
2018q4 4.2
2019q1 1.2
2019q2 2.3
2019q3 n/a
和結果
2013 5.1
2014 3.2
2015 2.1
2016 2.2
2017 2.1
2018 4.2
2019 2.3
您可以組織數據以使用DatetimeIndex
。 年度框架就可以了(如果每年有一行),但是對於季度 DataFrame,我們需要采用每年的最后一個值,通過resample.last
完成。 當我們加入時, combine_first
讓我們優先考慮每年的 DataFrame。
df_ann = pd.read_clipboard(header=None)
df_ann.columns = ['date', 'value']
df_ann['date'] = pd.to_datetime(df_ann['date'], format='%Y')
df_ann = df_ann.set_index('date')
# value
#date
#2013-01-01 5.1
#2014-01-01 3.2
#2015-01-01 2.1
#2016-01-01 2.2
#2017-01-01 2.1
#2018-01-01 4.2
#2019-01-01 NaN
df_qtr = pd.read_clipboard(header=None)
df_qtr.columns = ['date', 'value']
df_qtr['date'] = pd.to_datetime(df_qtr['date'])
df_qtr = df_qtr.set_index('date')
# value
#date
#2018-01-01 2.5
#2018-04-01 2.2
#2018-07-01 3.7
#2018-10-01 4.2
#2019-01-01 1.2
#2019-04-01 2.3
#2019-07-01 NaN
df_ann.to_period('Y').combine_first(df_qtr.resample('Y').last().to_period('Y'))
value
date
2013 5.1
2014 3.2
2015 2.1
2016 2.2
2017 2.1
2018 4.2
2019 2.3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.