我的数据框以长格式表示“不平衡面板”数据,其中包含许多周期和数千个对象。 在下面的示例中,在多个时间段内只有一个对象。
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-“句号”,B-“对象”,C-“输入期间”):
C2=IF(AND(B2=B1;IFERROR(MONTH(A2)+(YEAR(A2)-2013)*12-MONTH(A1)-(YEAR(A1)-2013)*12;0)=1);C1;A2)
如何在python pandas中定义这样的函数,以及如何将其应用于object列中的每个对象? 如何引用列中的每个对象?如何在函数中输入时间维度?
我是python的新手,将不胜感激。