🚀 AI 一键生成 joinquant 策略代码
立即体验
👉 AI 生成代码 👈

为什么聚宽获取的 adjusted_profit (扣非净利润) 与雪球等平台不一致?

joinquant | 发布时间: 2026/6/2
以下内容由 EasyQuant 生成。

问题描述

财务指标数据中的adjusted_profit数据对吗?

请问一下,财务指标数据中的adjusted_profit数据对吗?

adjusted_profit 扣除非经常损益后的净利润(元)

以中集集团(SZ000039)为例,雪球和天天基金2021第三季度的值为80.18亿
但是通过聚宽平台获取的数据为4.369602e+09,即43.69亿,查询语句如下:
df = getfundamentals(query(
valuation.code,indicator.adjusted_profit
).filter(indicator.code.in(['000039.XSHE'])), statDate='2021q3')

请问是我写的不对吗?

解决方案

您好!您获取的数据是正确的,出现差异的原因在于数据统计的周期不同

差异原因解析

  1. 聚宽平台的数据口径(单季度)
    在聚宽平台中,当您使用 statDate='2021q3' 查询 indicator(财务指标表)或 income(利润表)等数据时,默认返回的是单季度数据。也就是说,您获取的 43.69 亿是中集集团在 2021年第三季度(7月-9月) 这三个月内产生的扣非净利润。

  2. 第三方平台的数据口径(累计值)
    雪球、天天基金等财经网站上展示的“三季报”数据,通常是前三季度的累计数据。也就是说,他们展示的 80.18 亿是中集集团在 2021年前三季度(1月-9月) 累计产生的扣非净利润。

如何在聚宽获取前三季度的累计数据?

如果您希望在聚宽获取与雪球等平台一致的前三季度累计数据,您需要分别获取第一季度(q1)、第二季度(q2)和第三季度(q3)的单季度数据,然后将它们相加。

以下是获取前三季度累计扣非净利润的代码示例:

from jqdata import *

# 定义要查询的股票和年份
stock = '000039.XSHE'
year = '2021'

# 分别获取 q1, q2, q3 的单季度数据
q1_df = get_fundamentals(query(indicator.adjusted_profit).filter(indicator.code == stock), statDate=f'{year}q1')
q2_df = get_fundamentals(query(indicator.adjusted_profit).filter(indicator.code == stock), statDate=f'{year}q2')
q3_df = get_fundamentals(query(indicator.adjusted_profit).filter(indicator.code == stock), statDate=f'{year}q3')

# 提取数值并求和
profit_q1 = q1_df['adjusted_profit'][0] if not q1_df.empty else 0
profit_q2 = q2_df['adjusted_profit'][0] if not q2_df.empty else 0
profit_q3 = q3_df['adjusted_profit'][0] if not q3_df.empty else 0

total_profit_3q = profit_q1 + profit_q2 + profit_q3

print(f"{stock} {year}年前三季度累计扣非净利润为: {total_profit_3q} 元")

总结

聚宽考虑到量化分析中经常需要消除季节性影响或进行环比分析,因此默认提供的是单季度数据。在与其他平台核对财务数据时,请务必注意区分单季度数据累计报告期数据