我正在处理大量的财务信息面板数据,但是这些数据值有点参差不齐。我试图实现的是延迟数据帧的某些变量,以便时间t-1的值与时间t的值对齐
通常,为了滞后变量,我会使用df.groupby('tic')['investments'].shift()
,但是这显然会给出错误的答案,因为df中可能缺少的年份可能会导致错误的时间滞后。为了给您一个想法,df如下所示(仅举一个例子):
datadate fyear ticker tot_a debt
0 31/12/1998 1998 AAPL 188.92 32.44
1 31/12/1999 1999 AAPL 197.44 56.09
2 31/12/2002 2002 AAPL 268.13 89.72
3 31/12/2003 2003 AAPL 278.06 96.32
4 31/12/2004 2004 AAPL 288.35 94.21
5 31/12/2005 2005 AAPL 312.23 84.21
6 31/05/2008 2008 TSLA 45.67 2.56
7 31/05/2009 2009 TSLA 38.29 2.90
8 31/05/2010 2010 TSLA 42.89 4.89
9 31/05/2011 2011 TSLA 56.03 3.78
10 31/05/2014 2014 TSLA 103.45 12.33
.. ... .. ..
我所寻找的是一段代码,它允许我理解(对于每个公司)数据中是否存在差距,如果没有差距,则将指定变量滞后于t-1,如果存在差距,则插入NaN。就这样,
datadate fyear ticker tot_a debt
0 31/12/1998 1998 AAPL NaN NaN
1 31/12/1999 1999 AAPL 188.92 32.44
2 31/12/2002 2002 AAPL NaN NaN
3 31/12/2003 2003 AAPL 268.13 89.72
4 31/12/2004 2004 AAPL 278.06 96.32
5 31/12/2005 2005 AAPL 288.35 94.21
6 31/05/2008 2008 TSLA NaN NaN
7 31/05/2009 2009 TSLA 45.67 2.56
8 31/05/2010 2010 TSLA 38.29 2.90
9 31/05/2011 2011 TSLA 42.89 4.89
10 31/05/2014 2014 TSLA NaN NaN
.. ... .. ..
我希望这些问题有意义
提前谢谢大家:)
这是我的密码
相关问题 更多 >
编程相关推荐