Так что в этом примере col1 имеет 2 разные категории. Как можно было бы вычислить те категории, которые удовлетворяют, если мы скажем n месяцев = 12, чтобы новый столбец отмечал категорию A как True, а cat B как false, поскольку она больше, чем n = 12 месяцев.
d_ex = pd.DataFrame({'col1': ['A', 'A', 'B', 'B', 'A'],
'col2': ['2019-01-01', '2018-02-01',
'2015-01-01', '2019-01-01', '2019-05-01']})
d_ex['col2'] = pd.to_datetime(d_ex['col2'])
Я пытался
d_ex.groupby(['col1'])['col2'].diff()
, но это не работает. Кроме того, может быть более двух вхождений категории, поэтому, если бы существовала третья категория A с датой 2015 года, я хотел бы, чтобы она помечалась как False, но два других по-прежнему действительны.
Я нашел это, но я не уверен, как изменить код, чтобы не использовать idxmax Вычисление разницы в датах в объекте Pandas GroupBy
Попытка получить решение, данное
(d_ex.groupby('col1')['col2'].diff().apply(lambda x: my_abs(x))
.apply(lambda x: set_condition(x)).bfill())
возвращает
0 True
1 True
2 False
3 False
4 False
, но индекс 4 должен быть True