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

如何在DataFrame中按公司计算每日收益率并添加新列

按公司计算每日收益率的实现方法

操作步骤

要实现按每个公司单独计算每日收益率,需先保证数据有序,再分组执行百分比变化计算,具体如下:

  1. 导入依赖库
import pandas as pd
import numpy as np
  1. 排序数据
    先按公司代码(company_tic)分组,再按日期(date)升序排序,避免因日期乱序导致计算逻辑出错:
df = df.sort_values(by=['company_tic', 'date'])
  1. 分组计算收益率
    使用groupby按公司分组后,调用pct_change()方法直接生成收益率列。该方法的计算逻辑完全匹配(当日价格 - 前一日价格)/前一日价格,且当某公司无前置日期数据时,自动返回np.nan:
df['daily_return'] = df.groupby('company_tic')['price'].pct_change()

效果示例

以示例中的xyz公司数据为例:

  • 2020-01-01的daily_return为np.nan(无前置数据)
  • 2020-01-02的收益率计算结果为(20.14 - 20.89)/20.89 ≈ -0.0359,与pct_change()的输出一致

内容的提问来源于stack exchange,提问作者Marie-Pier St-Vincent

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:11:51