Мой фрейм данных представляет данные "несбалансированной панели" в длинном формате с большим количеством периодов и тысячами объектов. В приведенном ниже примере есть один объект за несколько периодов времени.
period object
1 2013-01-31 object 1
2 2013-02-28 object 1
3 2013-04-30 object 1
4 2013-05-31 object 1
5 2013-06-30 object 1
Необходимо определить новый столбец «введите период»:
period object enter period
1 2013-01-31 object 1 2013-01-31
2 2013-02-28 object 1 2013-01-31
3 2013-04-30 object 1 2013-04-30
4 2013-05-31 object 1 2013-04-30
5 2013-06-30 object 1 2013-04-30
Логика такова:
если объект находится в базе данных без прерываний, то период ввода = первый период, доступный для этого объекта.
else - Каждый раз, когда для объекта имеются промежутки между периодами, введите period = первый период после пробела.
В Excel формула выглядит следующим образом (A- «period», B- »object ", C-" enter period "):
C2=IF(AND(B2=B1;IFERROR(MONTH(A2)+(YEAR(A2)-2013)*12-MONTH(A1)-(YEAR(A1)-2013)*12;0)=1);C1;A2)
Как определить такую функцию в пандах Python и как применить ее для каждого объекта в столбце объекта? Как ссылаться на каждый объект в столбце? Как ввести измерение времени в функцию?
Я новичок в Python, и любая помощь будет высоко ценится.