Python 在数据帧中的行上迭代

Python 在数据帧中的行上迭代,python,pandas,dataframe,Python,Pandas,Dataframe,例如: 我希望现金剩余值进入下一行中的可用金额值,然后再进入其他每一行,但我不确定如何执行此操作。从外观上看,您可以使用pandas并传递适当的lambda函数,该函数将上一行的现金剩余值作为参数,例如,使用.loc或.iloc.方法取决于每个月是否有一些额外的逻辑: 从datetime导入datetime作为dt 将numpy作为np导入 作为pd进口熊猫 df=pd.DataFrame.from_dict({ ‘日期’:[dt(2008,4,30)、dt(2008,5,3)、dt(2008

例如:


我希望现金剩余值进入下一行中的可用金额值,然后再进入其他每一行,但我不确定如何执行此操作。

从外观上看,您可以使用pandas并传递适当的lambda函数,该函数将上一行的
现金剩余值作为参数,例如,使用.loc或.iloc.

方法取决于每个月是否有一些额外的逻辑:

从datetime导入datetime作为dt
将numpy作为np导入
作为pd进口熊猫
df=pd.DataFrame.from_dict({
‘日期’:[dt(2008,4,30)、dt(2008,5,3)、dt(2008,6,30)、dt(2008,7,31)、dt(2008,8,29)],
“NYSEARCA:PYZ:[36.37,38.52,35.82,35.80,34.86],
“可用金额”:[2100]+[np.nan]*4,
“支出金额”:[1984.2]+[np.nan]*4,
“剩余现金”:[115.8]+[np.nan]*4
})
方法_1=df.copy()
#如果存在“逐行”依赖项
对于i,方法_1.iterrows()中的行:
如果不是np.isnan(第[‘剩余现金’]行):
现金周转=行[“剩余现金”]
其他:
#伪附加时间序列相关逻辑
现金资产=现金资产
花费=轮(np.random.rand(1.item()*20,2)#随便什么
现金周转=现金周转-已用
行['amount\u available'、'amount\u Explored'、'cash\u Resisting']=[cash\u rem\u old,Explored,cash\u rem]
方法_1.iloc[i]=行
#如果只是需要复制值
方法2=df.copy()
目标=方法2[剩余现金][0]
方法2.loc[1:,[‘可用金额’、‘花费金额’、‘剩余现金’]=[目标,0.0,目标]
打印(方法1)
#NYSEARCA日期:PYZ金额\可用金额\已用现金\剩余
# 0 2008-04-30         36.37           2100.00       1984.20          115.80
# 1 2008-05-03         38.52            115.80         14.81          100.99
# 2 2008-06-30         35.82            100.99          0.96          100.03
# 3 2008-07-31         35.80            100.03         17.65           82.38
# 4 2008-08-29         34.86             82.38          7.24           75.14
打印(方法2)
#NYSEARCA日期:PYZ金额\可用金额\已用现金\剩余
# 0 2008-04-30         36.37            2100.0        1984.2           115.8
# 1 2008-05-03         38.52             115.8           0.0           115.8
# 2 2008-06-30         35.82             115.8           0.0           115.8
# 3 2008-07-31         35.80             115.8           0.0           115.8
# 4 2008-08-29         34.86             115.8           0.0           115.8
df.fillna(115.8)