Python 当使用T组数据计算上一行值时,如何在数据帧中使用上一行值
我有这样的数据框架: 我需要获得这样的数据帧: 开始数据帧:Python 当使用T组数据计算上一行值时,如何在数据帧中使用上一行值,python,pandas,lambda,iteration,apply,Python,Pandas,Lambda,Iteration,Apply,我有这样的数据框架: 我需要获得这样的数据帧: 开始数据帧: 第一列是合同id 第二列是日期 第三列为预付款系数(EAR) 第4栏为合同付款 结果数据帧: 第五列是EAR。它等于Ear_coef(t)*债务与Ear(t-1) 第六列是带耳的债务。它将债务与EAR(t-1)+合同(t)+EAR(t)相等 Ear和债务在第一个日期分别等于0和债务 我曾试图用apply解决这样的任务。但我没有成功,因为我需要使用之前的值,这也是计算出来的。 这个答案对我没有帮助 因为我有几百个身份证 我将
- 第一列是合同id李>
- 第二列是日期李>
- 第三列为预付款系数(EAR)李>
- 第4栏为合同付款李>
- 第五列是EAR。它等于Ear_coef(t)*债务与Ear(t-1)
- 第六列是带耳的债务。它将债务与EAR(t-1)+合同(t)+EAR(t)相等
.apply()
。解决办法是:
df['EAR']=df['EAR_coef']*df['Debt with EAR']].shift(1)
你可能需要最后一篇专栏文章,但我不确定你的公式是什么?这似乎是永无止境的。你的方法不起作用,因为你不知道df(带耳朵的债务)的所有预测水平。例如,对于id 111,使用方法df['EAR']=[NaN,20,NaN]。这是不正确的。是的,但你的公式有问题
EAR
依赖于Debt\u和Debt\u和EAR依赖于EAR
。正如我在第一天描述的EAR
和Debt\u和Debt\u和Debt
分别等于0和Debt
。但是在第二个日期,我可以在开始时计算EAR,然后我可以用EAR计算债务
df = pd.DataFrame({'id': [111,111,111, 222,222,222],\
'Date': ['30.04.2020', '31.05.2020', '30.06.2020', \
'30.04.2020', '31.05.2020', '30.06.2020'],\
'Debt': [100,100,70, 200,200,200] , \
'Ear_coef': [0,0.2,0.2, 0,0,0.3]})
df['Date'] = pd.to_datetime(df['Date'] )
df['Contract'] = pd.DataFrame(df.groupby(['id']).apply(lambda x: x.Debt - x.Debt.shift(1))).reset_index().Debt
# df.groupby(['id']).
df