如何基于熊猫多维数据帧计算新变量?

时间:2019-10-01 12:19:00

标签: python pandas numpy

我的数据框以长格式表示“不平衡面板”数据,其中包含许多周期和数千个对象。 在下面的示例中,在多个时间段内只有一个对象。

      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的新手,将不胜感激。

0 个答案:

没有答案