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

如何在pandas DataFrame中按Ticker分组重置计算Retained Earnings的百分比变化

实现方法

首先需要保证同一只股票(Ticker)的财务数据按时间先后排序,再按Ticker分组计算环比百分比变化即可,核心用pandas的groupby+pct_change方法实现:

步骤1:按时间维度排序

保证每个Ticker的财务报告按时间先后排列,避免计算顺序错误:

import pandas as pd
import numpy as np

# 按Ticker、财年、财期升序排列,覆盖原始索引
df = df.sort_values(by=['Ticker', 'Fiscal Year', 'Fiscal Period'], ignore_index=True)

步骤2:分组计算百分比变化

按Ticker分组后计算Retained Earnings列的环比变化,每个新Ticker的第一行结果会自动置为空值,符合重置计算逻辑的要求:

df['Retained Earnings 环比变化率'] = df.groupby('Ticker')['Retained Earnings'].pct_change()

可选:异常值与格式优化

如果上期留存收益为0或负数时,pct_change会返回无穷值,可统一替换为空值;也可以直接格式化为百分比字符串:

# 替换正负无穷值为空
df['Retained Earnings 环比变化率'] = df['Retained Earnings 环比变化率'].replace([np.inf, -np.inf], np.nan)

# 可选:格式化为带两位小数的百分比形式
df['Retained Earnings 环比变化率'] = df['Retained Earnings 环比变化率'].apply(
    lambda x: f"{x:.2%}" if pd.notna(x) else x
)

内容的提问来源于stack exchange,提问作者Calvin K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:15:08