Вопрос 1:
Как бы вы посчитали количество кварталов между начальной датой (переменная base_date
) и столбцом y
в кадре данных pandas?
from dateutil.relativedelta import relativedelta
import pandas as pd
import numpy as np
base_date=pd.to_datetime('07/01/2019')
fake_data=pd.DataFrame([(x,pd.to_datetime('04/01/2020')+relativedelta(months=y)) for x in list(range(0,100)) for y in list(range(0,100))],columns=['x','y'])
fake_data['z']=fake_data['x']*np.random.uniform(low=1,high=1000)
ОБНОВЛЕНИЕ: кажется, что один из вариантов работает для вопроса 1:
fake_data['month_diff']=(fake_data['y'].dt.year-base_date.year)*12+fake_data['y'].dt.month-base_date.month
fake_data['quarter']=(fake_data['month_diff']/3).astype(int)
Вопрос 2:
Если переменные x
и y
теперь установлены в pandas мультифрейм данных Индекс Как бы вы выполнили ту же задачу, что и в вопросе 1?
fake_data.set_index(['x','y'],drop=True,inplace=True)