You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame中计算公司的平均资产回报率(ROAA)

计算平均资产回报率(ROAA)的解决方案

ROAA的核心计算公式为:ROAA = 当期净利润 / 当期与上期总资产的平均值

针对给定的Pandas DataFrame,可通过以下步骤实现计算:

1. 提取核心数据

先分别取出净利润和总资产的序列:

net_income = df.loc['Net Income']
total_asset = df.loc['Total Asset']

2. 计算总资产平均值

利用shift()方法获取上一年的总资产数据,再计算当期与上期的均值:

avg_asset = (total_asset + total_asset.shift(1)) / 2

3. 计算各年度ROAA

用当期净利润除以对应平均总资产,同时剔除2012年的无效值(无上年总资产数据):

roaa = net_income / avg_asset
roaa = roaa.dropna()

完整代码示例

import pandas as pd

data = {2012: {'Total Asset': 1000000, 'Net Income': 100000},
        2013: {'Total Asset': 2000000, 'Net Income': 300000},
        2014: {'Total Asset': 3000000, 'Net Income': 350000},
        2015: {'Total Asset': 4000000, 'Net Income': 260000},
        2016: {'Total Asset': 3000000, 'Net Income': 300000}}

df = pd.DataFrame(data)

# 执行ROAA计算
net_income = df.loc['Net Income']
total_asset = df.loc['Total Asset']
avg_asset = (total_asset + total_asset.shift(1)) / 2
roaa = net_income / avg_asset
roaa = roaa.dropna()

print("各年度ROAA结果:")
print(roaa)

运行结果

2013    0.200000
2014    0.140000
2015    0.074286
2016    0.085714
Name: Net Income, dtype: float64

结果对应说明

  • 2013年:300000 / [(1000000+2000000)/2] = 20%
  • 2014年:350000 / [(2000000+3000000)/2] = 14%
  • 后续年度计算逻辑一致,结果完全匹配需求。

内容的提问来源于stack exchange,提问作者Ibashorun Ogunmola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:15:32