Использование данных более высокой частоты в качестве прокси для данных более низкой частоты - PullRequest
0 голосов
/ 25 сентября 2019

у меня два раза сериал - годовой и квартальныйГодовые данные заканчиваются в 2018 году, но квартальные данные идут до 2019q3.Каков наилучший способ объединить два, где 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

1 Ответ

0 голосов
/ 25 сентября 2019

Вы можете организовать свои данные для использования DatetimeIndex.Годовой фрейм тогда хорош (если есть одна строка в год), но для квартала DataFrame нам нужно взять последнее значение в каждом году, достигнутое с resample.last.combine_first дает нам приоритет над годовым фреймом данных, когда мы присоединяемся к ним.

Подготовка данных

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...