Pandas 上一行和当前行的平均值-大熊猫
目标Pandas 上一行和当前行的平均值-大熊猫,pandas,Pandas,目标 df = data[['per_fisc_year', 'consol_net_income_loss', 'tot_asset', 'curr_portion_debt', 'tot_lterm_debt', 'tot_share_holder_equity']] df 计算平均总资产,其中平均总资产=(上一年度资产+本年度资产)/2 计算资产回报率(ROA)=净收入/平均总资产
df = data[['per_fisc_year',
'consol_net_income_loss',
'tot_asset',
'curr_portion_debt',
'tot_lterm_debt',
'tot_share_holder_equity']]
df
- 计算平均总资产,其中平均总资产=(上一年度资产+本年度资产)/2
- 计算资产回报率(ROA)=
/净收入
平均总资产
df = data[['per_fisc_year',
'consol_net_income_loss',
'tot_asset',
'curr_portion_debt',
'tot_lterm_debt',
'tot_share_holder_equity']]
df
输出
问题
平均总资产
时,我可以并行计算资产的收益
,还是必须独立运行对于第一个问题,请看一看。这将通过以下方式处理您的
avg_tot_资产
:
df['avg_tot_assets'] = df.tot_asset.rolling(window=2).mean()
至于并行计算另一列,可能有一种方法,但这样做不太可能获得任何性能。按顺序做会更好。像这样:
df['ROA'] = df.net_income / df.avg_tot_assets
您可以尝试花费大量时间编写一个复杂的函数,该函数将按行遍历数据帧并依次计算每个值,然后将输出应用于原始数据帧,但这将大大低于内置方法 哇-这太简单了。我曾见过其他人尝试.groupby和.index,但这非常优雅。谢谢你!这个答案救了我的命!