循环以计算两个数据帧之间的值,条件为一

2024-05-13 16:44:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,从一个小型私人项目开始,非常希望有人能在以下方面帮助我:

我能够通过网络浏览不同的财务报表,并将信息解析为三个不同的数据框架(资产负债表、损益表和现金流量数据)。我尝试根据特定年份的股市符号(STM)计算两个数据框中不同值之间的比率,例如XYZ,第1年和第2年之间的收入与平均资产价值的比率(例如收入Y1/((资产Y1+资产Y2)/2))。应计算每个STM的比率。困难在于,STM将根据我将搜集的财务报表而变化。我想自动化比率计算,这样我就不能只循环一个固定的STMS名称,而是需要一个基于两个数据帧中的STMS列的灵活循环。 是否有机会根据stms列中的stms进行迭代

Dataframe 1
|      Breakdown1     |     Year 1    | Year 2    |   STMS       |
|---------------------|---------------|-----------|--------------|
|          Assets|    |         122   |      125  |     XYZ      |
|          Assets     |         110   |      115  |     XXY      |
Dataframe 2
|      Breakdown2     |     Year 1    |    Year 2    |     STMS     |
|---------------------|---------------|--------------|--------------|
|          Income     |         10    |      12      |     XYZ      |
|          Income     |         9     |     10       |     XXY      |

我希望我能解释我试图做什么,有人能给我一个如何解决这个问题的提示。多谢各位


Tags: 数据dataframe资产year比率stm财务报表assets
1条回答
网友
1楼 · 发布于 2024-05-13 16:44:19

您可以合并数据帧,然后计算比率:

merged_df = pd.merge(df1, df2, on="STMS", how="outer")

merged_df["ratio"] = merged_df["Year 1_y"] / (
    (merged_df["Year 1_x"] + merged_df["Year 2_x"]) / 2
)
print(merged_df)

印刷品:

  Breakdown1  Year 1_x  Year 2_x STMS Breakdown2  Year 1_y  Year 2_y     ratio
0     Assets       122       125  XYZ     Income        10        12  0.080972
1     Assets       110       115  XXY     Income         9        10  0.080000

相关问题 更多 >