我有一个按日期和 ID 索引的面板数据集,看起来像这样:
df = pd.DataFrame({'Date':['2005-12-31', '2006-03-31', '2006-09-30','2005-12-31', '2006-03-31', '2006-06-30', '2006-09-30'],
'ID':[1,1,1,2,2,2,2],
'Value':[14,25,34,23,67,14,46]})
我试图按日期移动相同 ID 的值,并且日期可以是不连续的季度。 groupby.shift 没有给我正确的东西,或者也许我错过了一些东西。这是我所做的:
df['pre_value'] = df.groupby('ID')['Value'].shift(1)
这确实会改变相同 ID 的值,但它会忽略日期...请注意,对于ID==1
, the 2006-06-30
缺失,因此pre_value
为其2006-09-30
确实应该是NaN。我还在研究多重索引或将数据集声明为面板,但这使我的其他计算变得复杂。有没有简单的方法可以使用数据框来做到这一点?