Я хочу выбрать строки из моего pandas DataFrame, где записи находятся перед определенной датой для каждого идентификатора.
У меня есть некоторые пороговые даты для каждого идентификатора:
thresholds = pd.DataFrame({'id':[1, 2, 3], 'threshold_date':pd.date_range('2019-01-01', periods = 3)})
thresholds
id threshold_date
0 1 2019-01-01
1 2 2019-01-02
2 3 2019-01-03
I иметь DataFrame с датами после пороговой даты для каждого идентификатора:
df = pd.DataFrame({'id':[1, 1, 2, 2, 3, 3], 'threshold_date':pd.date_range('2018-12-30', periods = 6), 'value': [0.1, 0.2, 0.3, 0.1, 0.2, 0.3]})
df
id threshold_date value
0 1 2018-12-30 0.1
1 1 2018-12-31 0.2
2 2 2019-01-01 0.3
3 2 2019-01-02 0.1
4 3 2019-01-03 0.2
5 3 2019-01-04 0.3
df = pd.DataFrame({'id':[1, 1, 2], 'threshold_date':pd.date_range('2018-12-30', periods = 3), 'value': [0.1, 0.2, 0.3]})
Я хотел бы отфильтровать мой DataFrame, чтобы у меня были только строки до пороговой даты для каждого идентификатора:
df_filt = pd.DataFrame({'id':[1, 1, 2], 'threshold_date':pd.date_range('2018-12-30', periods = 3), 'value': [0.1, 0.2, 0.3]})
id threshold_date value
0 1 2018-12-30 0.1
1 1 2018-12-31 0.2
2 2 2019-01-01 0.3
Как я могу это сделать?