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)
?