Tushare接口文档:利润表(income)

简介: `income`接口是Tushare Pro中用于获取上市公司利润表(损益表)数据的核心财务接口,它直接反映了公司在特定报告期内的经营成果,是基本面分析的基石。本文除了介绍了简单使用方法外,还介绍了VIP版`income_vip`的使用方法。本文还对`report_type`(报表类型)进行了着重介绍以保证使用时不会遗留数据。
  • 功能描述:获取上市公司财务利润表数据
  • 返回限量:单次请求最大返回500行
  • 接口权限:2000积分200次/分钟;5000积分500次/分钟
  • 说明

   1. 财报披露当晚21点更新,最晚次日;

   2. 当某个报告期有多条记录时,可能是因为财报发生过修正,最新数据可用update_flag为1进行识别,为0则表示为修正前的数据;

   3. 当前接口只能按单支股票获取数据,如果需要获取某一报告期全部上市公司数据,可使用income_vip接口,需5000积分;

   4. 上市公司披露财务三大报表的时候并非简单披露三张表,会依据是否包含子公司、是否累计以及是否发生数据修正披露更多报表。详细请见文末说明1;


输入参数:

名称

类型

必选

描述

ts_code

str

Y

股票代码

ann_date

str

N

公告日期

f_ann_date

str

N

实际公告日期

start_date

str

N

公告日开始日期

end_date

str

N

公告日结束日期

period

str

N

报告期

report_type

str

N

报告类型

comp_type

str

N

公司类型(1-一般工商业;2-银行;3-保险;4-证券)

  1. 日期字段格式均为YYYYMMDD;
  2. 报告期为每个季度的最后一个自然日,例如2026年一季报的报告期为20260331、半年报报告期为20260630、三季报报告期为20260930、年报报告期为20261231;
  3. 报告类型请参考下文说明;
  4. start_dateend_date字段限定的是公告日期的范围,而非报告期的范围;
  5. 虽然report_type是可选参数,但该参数在本接口和VIP版本income_vip中均已默认为“1”,如果想要获取全部数据,则需要对该字段进行遍历。对报表类型的说明请见文末“说明”章节;


输出参数:

名称

类型

默认显示

描述

ts_code

str

Y

TS代码

ann_date

str

Y

公告日期

f_ann_date

str

Y

实际公告日期

end_date

str

Y

报告期

report_type

str

Y

报告类型

comp_type

str

Y

公司类型

end_type

str

Y

报告期类型

basic_eps

float

Y

基本每股收益

diluted_eps

float

Y

稀释每股收益

total_revenue

float

Y

营业总收入

revenue

float

Y

营业收入

int_income

float

Y

利息收入

prem_earned

float

Y

已赚保费

comm_income

float

Y

手续费及佣金收入

n_commis_income

float

Y

手续费及佣金净收入

n_oth_income

float

Y

其他经营净收益

n_oth_b_income

float

Y

加:其他业务净收益

prem_income

float

Y

保险业务收入

out_prem

float

Y

减:分出保费

une_prem_reser

float

Y

提取未到期责任准备金

reins_income

float

Y

其中:分保费收入

n_sec_tb_income

float

Y

代理买卖证券业务净收入

n_sec_uw_income

float

Y

证券承销业务净收入

n_asset_mg_income

float

Y

受托客户资产管理业务净收入

oth_b_income

float

Y

其他业务收入

fv_value_chg_gain

float

Y

加:公允价值变动净收益

invest_income

float

Y

加:投资净收益

ass_invest_income

float

Y

其中:对联营企业和合营企业的投资收益

forex_gain

float

Y

加:汇兑净收益

total_cogs

float

Y

营业总成本

oper_cost

float

Y

减:营业成本

int_exp

float

Y

减:利息支出

comm_exp

float

Y

减:手续费及佣金支出

biz_tax_surchg

float

Y

减:营业税金及附加

sell_exp

float

Y

减:销售费用

admin_exp

float

Y

减:管理费用

fin_exp

float

Y

减:财务费用

assets_impair_loss

float

Y

减:资产减值损失

prem_refund

float

Y

退保金

compens_payout

float

Y

赔付总支出

reser_insur_liab

float

Y

提取保险责任准备金

div_payt

float

Y

保户红利支出

reins_exp

float

Y

分保费用

oper_exp

float

Y

营业支出

compens_payout_refu

float

Y

减:摊回赔付支出

insur_reser_refu

float

Y

减:摊回保险责任准备金

reins_cost_refund

float

Y

减:摊回分保费用

other_bus_cost

float

Y

其他业务成本

operate_profit

float

Y

营业利润

non_oper_income

float

Y

加:营业外收入

non_oper_exp

float

Y

减:营业外支出

nca_disploss

float

Y

其中:减:非流动资产处置净损失

total_profit

float

Y

利润总额

income_tax

float

Y

所得税费用

n_income

float

Y

净利润(含少数股东损益)

n_income_attr_p

float

Y

净利润(不含少数股东损益)

minority_gain

float

Y

少数股东损益

oth_compr_income

float

Y

其他综合收益

t_compr_income

float

Y

综合收益总额

compr_inc_attr_p

float

Y

归属于母公司(或股东)的综合收益总额

compr_inc_attr_m_s

float

Y

归属于少数股东的综合收益总额

ebit

float

Y

息税前利润

ebitda

float

Y

息税折旧摊销前利润

insurance_exp

float

Y

保险业务支出

undist_profit

float

Y

年初未分配利润

distable_profit

float

Y

可分配利润

rd_exp

float

Y

研发费用

fin_exp_int_exp

float

Y

财务费用:利息费用

fin_exp_int_inc

float

Y

财务费用:利息收入

transfer_surplus_rese

float

Y

盈余公积转入

transfer_housing_imprest

float

Y

住房周转金转入

transfer_oth

float

Y

其他转入

adj_lossgain

float

Y

调整以前年度损益

withdra_legal_surplus

float

Y

提取法定盈余公积

withdra_legal_pubfund

float

Y

提取法定公益金

withdra_biz_devfund

float

Y

提取企业发展基金

withdra_rese_fund

float

Y

提取储备基金

withdra_oth_ersu

float

Y

提取任意盈余公积金

workers_welfare

float

Y

职工奖金福利

distr_profit_shrhder

float

Y

可供股东分配的利润

prfshare_payable_dvd

float

Y

应付优先股股利

comshare_payable_dvd

float

Y

应付普通股股利

capit_comstock_div

float

Y

转作股本的普通股股利

net_after_nr_lp_correct

float

N

扣除非经常性损益后的净利润(更正前)

credit_impa_loss

float

N

信用减值损失

net_expo_hedging_benefits

float

N

净敞口套期收益

oth_impair_loss_assets

float

N

其他资产减值损失

total_opcost

float

N

营业总成本(二)

amodcost_fin_assets

float

N

以摊余成本计量的金融资产终止确认收益

oth_income

float

N

其他收益

asset_disp_income

float

N

资产处置收益

continued_net_profit

float

N

持续经营净利润

end_net_profit

float

N

终止经营净利润

update_flag

str

Y

更新标识


示例:

示例1:获取某支股票某段时间内公布的利润表数据

传入ts_code可指定需要获取数据的个股,传入start_dateend_date可限定财务报表公告的日期范围,fields参数可限定返回的字段。本示例演示获取贵州茅台在2025年公布的利润表数据,获取了2024年年报、2025年一季报到三季报,并未包含2025年年报。

import tushare as ts
pro = ts.pro_api()
df = pro.income(ts_code='600519.SH',  start_date='20250101',  end_date='20251231', fields='ts_code,ann_date,f_ann_date,end_date,report_type,comp_type,basic_eps,diluted_eps')
df

输出结果:

          ts_code        ann_date        f_ann_date        end_date        report_type        comp_type        basic_eps        diluted_eps
0        600519.SH        20251030        20251030        20250930        1        1        51.53        51.53
1        600519.SH        20250813        20250813        20250630        1        1        36.18        36.18
2        600519.SH        20250430        20250430        20250331        1        1        21.38        21.38
3        600519.SH        20250403        20250403        20241231        1        1        68.64        68.64

示例2:获取指定报告期的个股利润表数据

通过传入period可指定返回特定报告期的利润表数据。例如本示例传入ts_code为“600519.SH”、period为“20251231”可获得贵州茅台2025年年报利润表数据。

df = pro.income(ts_code='600519.SH', period='20251231', fields='ts_code,ann_date,f_ann_date,end_date,report_type,comp_type,revenue,basic_eps,diluted_eps')
df

输出结果:

          ts_code        end_date        report_type        revenue        basic_eps        diluted_eps
0        600519.SH        20251231        1        1.688381e+11        65.66        65.66

示例3:获取单季合并报表

通过传入report_type可获取指定报表类型的财务数据,值为“2”时得到的是“单季合并”报表。观察本示例贵州茅台20251231的营业收入revenue和示例二中相应的值,可发现report_type为“1”时是当年累计值,为“2”时则为单季度非累计值。更多报表类型请见下文说明章节。

注意,虽然report_type是可选参数,但该参数已经默认为“1”;

df = pro.income_vip(ts_code='600519.SH', period='20251231', report_type='2', fields='ts_code,end_date,report_type,revenue,basic_eps,diluted_eps')
df

输出结果:

          ts_code        end_date        report_type        revenue        basic_eps        diluted_eps
0        600519.SH        20251231        2        4.038439e+10        None        None

示例4:通过VIP版本获取某一报告期所有上市公司的利润表数据

VIP版本利润表数据接口可不必传入ts_code字段,单次返回的数据量上限为9000条记录。本示例演示利用VIP版本获取所有上市公司2025年年报利润表数据。从返回的记录数来看,部分公司拥有不止一条数据。从update_flag字段也可以看出这一点。可能是因为财报发生过修正,最新数据可用update_flag为1进行识别,为0则表示为修正前的数据。

df = pro.income_vip(period='20251231', fields='ts_code,ann_date,f_ann_date,end_date,report_type,comp_type,basic_eps,diluted_eps,update_flag')
df

输出结果:

          ts_code        ann_date        f_ann_date        end_date        report_type        comp_type        basic_eps        diluted_eps        update_flag
0        002107.SZ        20260120        20260120        20251231        1        1        0.170        0.170        1
1        874378.BJ        20260108        20260108        20251231        1        1        1.580        1.580        1
2        874391.BJ        20260122        20260122        20251231        1        1        0.935        0.935        1
3        874400.BJ        20260117        20260117        20251231        1        1        0.880        0.880        1
4        874538.BJ        20260122        20260122        20251231        1        1        1.640        1.640        0
...        ...        ...        ...        ...        ...        ...        ...        ...        ...
6849        920211.BJ        20260328        20260522        20251231        1        1        2.110        2.110        1
6850        874236.BJ        20260613        20260613        20251231        1        1        2.370        2.370        1
6851        001232.SZ        20260422        20260716        20251231        1        1        2.610        2.610        1
6852        002330.SZ        20260424        20260718        20251231        1        1        -0.016        -0.016        1
6853        A25080.SZ        20260320        20260320        20251231        1        1        2.370        2.370        0
6854 rows × 9 columns

示例5:获取某一报告期所有上市公司所有报表类型的利润表数据

通过对report_type字段进行遍历来获取所有报表类型的数据。

import pandas as pd
lst_dfs = []
for t in range(1, 13):
    data = pro.income_vip(period='20251231', report_type=str(t), fields='ts_code,ann_date,f_ann_date,end_date,report_type,comp_type,basic_eps,diluted_eps,update_flag')
    if not data.empty:
        lst_dfs.append(data)
df = pd.concat(lst_dfs, ignore_index=True)
df

输出结果:

          ts_code        ann_date        f_ann_date        end_date        report_type        comp_type        basic_eps        diluted_eps        update_flag
0        002107.SZ        20260120        20260120        20251231        1        1        0.170        0.170        1
1        874378.BJ        20260108        20260108        20251231        1        1        1.580        1.580        1
2        874391.BJ        20260122        20260122        20251231        1        1        0.935        0.935        1
3        874400.BJ        20260117        20260117        20251231        1        1        0.880        0.880        1
4        874538.BJ        20260122        20260122        20251231        1        1        1.640        1.640        0
...        ...        ...        ...        ...        ...        ...        ...        ...        ...
20356        301666.SZ        20260326        20260326        20251231        10        1        NaN        NaN        0
20357        301696.SZ        20260319        20260319        20251231        10        1        NaN        NaN        0
20358        001235.SZ        20260421        20260421        20251231        10        1        NaN        NaN        0
20359        874774.BJ        20260421        20260421        20251231        10        1        NaN        NaN        0
20360        001232.SZ        20260422        20260422        20251231        10        1        NaN        NaN        1
20361 rows × 9 columns


说明:

说明1:对`report_type`(报表类型)的说明:

上市公司披露财务三大报表的时候并非简单披露三张表,会依据是否包含子公司、是否累计以及是否发生数据修正披露更多报表。本小节说明首先摘录Tushare官网上对report_type字段的说明表,然后围绕合并范围(是否包含子公司)、报告期(本季/累计/单季)以及数据状态(原始/调整/上年同期)三个维度划分进一步补充说明,最后提出一些使用建议。

注意,虽然report_type是可选参数,但该参数已经默认为“1”;

Tushare官网对主要报表类型说明

代码

类型

说明

1

合并报表

上市公司最新报表(默认)

2

单季合并

单一季度的合并报表

3

调整单季合并表

调整后的单季合并报表(如果有)

4

调整合并报表

本年度公布上年同期的财务报表数据,报告期为上年度

5

调整前合并报表

数据发生变更,将原数据进行保留,即调整前的原数据

6

母公司报表

该公司母公司的财务报表数据

7

母公司单季表

母公司的单季度表

8

母公司调整单季表

母公司调整后的单季表

9

母公司调整表

该公司母公司的本年度公布上年同期的财务报表数据

10

母公司调整前报表

母公司调整之前的原始财务报表数据

11

母公司调整前合并报表

母公司调整之前合并报表原数据

12

母公司调整前报表

母公司报表发生变更前保留的原数据

补充说明

report_type(报表类型)有12种类型主要围绕合并范围(是否包含子公司)、报告期(本季/累计/单季)以及数据状态(原始/调整/上年同期)三个维度划分。

a. 最常用报表 (默认)

代码

类型名称

简要说明

1

合并报表

默认报表。反映上市公司及其全部子公司作为一个整体的财务状况,是进行绝大多数财务分析(如估值、成长性)时使用的标准报表。

b. 按合并范围划分

代码

类型名称

简要说明

1

合并报表

如上所述,包含母公司和所有子公司。

6

母公司报表

仅反映上市公司(母公司)自身的财务状况,不含子公司。用于分析母公司本身的经营和资产情况。

c. 按数据状态/调整类型划分

代码

类型名称

简要说明

4

调整合并报表

本年度公布的上年同期的财务报表数据(即为了可比性,对上年数据按新准则或口径调整后的版本)。

5

调整前合并报表

当数据发生变更(更正)时,保留的原始旧数据。

9

母公司调整表

对应代码 4 的母公司版本。

10

母公司调整前报表

对应代码 5 的母公司版本。

d. 按报告期划分(单季/累计)

代码

类型名称

简要说明

2

单季合并

单独提取本报告期(一个季度)内的经营数据,而非年初至今的累计数据。

3

调整单季合并表

对应代码 2 的调整版本(如有)。

7

母公司单季表

对应代码 2 的母公司版本。

8

母公司调整单季表

对应代码 3 的母公司版本。

e. 其他

代码

类型名称

简要说明

11

母公司调整前合并报表

母公司报表发生变更前,所保留的原始合并报表数据。

12

母公司调整前报表

母公司报表发生变更前,所保留的原始母公司报表数据。

使用建议

  1. 首选默认:进行常规的成长性、盈利能力分析时,直接使用默认的 report_type='1'(合并报表) 即可。
  2. 关注变更:当发现某公司历史数据有重大调整时,可以查看 report_type='5'(调整前合并报表)来对比原始数据,以了解调整的影响。
  3. 单季分析:如果需要分析收入的季节性,应使用 report_type='2'(单季合并)数据,它直接提供了单一季度的经营情况。

说明2:本文说明

本文旨在对Tushare的利润表income数据接口进行介绍,提供更多参考示例和使用说明。

income接口是Tushare Pro中用于获取上市公司利润表(损益表)数据的核心财务接口,它直接反映了公司在特定报告期内的经营成果,是基本面分析的基石。本文除了介绍了简单使用方法外,还介绍了VIP版income_vip的使用方法。本文还对report_type(报表类型)进行了着重介绍以保证使用时不会遗留数据。

本文目的是为了让用户和AIGC工具能够更便捷、准确地使用该接口。大家在使用过程中遇到什么问题和建议可在线留言,作者会进行数据探索将结果更新到文章中,并将建议反馈给Tushare团队。本文另一个目的也是为了聚集大家的智慧以创建“我为人人,人人为我”的共创氛围。

相关文章
|
2月前
|
人工智能 安全 API
API Key如何从"人手一把"走向"按需分配"——从身份认证到策略驱动的访问控制
本文探讨AI时代API Key管理的痛点与破局之道:当团队规模扩大,分散的静态Key导致成本失控、安全风险与排查困难。核心方案是用“虚拟Key+策略绑定”替代“人手一把”,实现按需签发、动态授权、分钟级回收,并达成成本归因透明化。管得更聪明,而非更严。
228 0
|
Java Maven
IDEA自带Maven添加阿里镜像
IDEA自带Maven添加阿里镜像
IDEA自带Maven添加阿里镜像
|
10天前
|
缓存 人工智能 API
阿里云Qwen3.8‑Flash 大模型解析:百万上下文MoE、多模态能力、API实战与企业落地指南
2026年,通义千问正式推出Qwen3.8‑Flash多模态大模型,作为Qwen3.8系列面向高效推理打造的旗舰版本,该模型采用稀疏混合专家MoE架构,把长上下文处理、多模态理解、工具调用能力融为一体,原生支持最高100万Token上下文窗口,能够完整读取超长业务文档、完整代码仓库、长时间会议视频,一次性完成信息解析、摘要、推理与生成任务。
462 4
|
2月前
|
BI
Tushare接口文档:资产负债表(balancesheet)
`balancesheet`接口是Tushare Pro中用于获取上市公司资产负债表(财务状况表)核心数据的接口。它反映了公司在特定时点(报告期末)的资产、负债和股东权益状况,是进行财务结构、偿债能力和资产质量分析的基石。用户可按照“资产类”、“负债类”、“股东权益类”以及“结构性指标”来结构化理解本接口给出的输出字段。本文除了介绍了简单使用方法外,还介绍了VIP版`balancesheet_vip`的使用方法。本文还对`report_type`(报表类型)进行了着重介绍以保证使用时不会遗留数据。
222 1
|
2月前
|
数据挖掘
Tushare接口文档:个股资金流向(moneyflow)
本文旨在对Tushare的个股资金流向`moneyflow`数据接口进行介绍,提供更多参考示例和使用说明。 本接口可获取沪深A股票资金流向数据,分析大单小单成交情况,用于判别资金动向。本文除了从交易日、个股方面简单介绍如何快速获取数据外,还演示了如何计算主力资金流向及对单支股票主力资金流向绘制趋势图,最后演示了如何筛选主力资金净流入top 10的个股。
580 9
|
2月前
|
数据可视化 Shell
Tushare接口文档:指数日线行情(index_daily)
本文旨在对Tushare的指数日线行情`index_daily`数据接口进行介绍,提供更多参考示例和使用说明。指数日线行情包含高开低收、涨跌幅、成交量和成交额等数据。在使用过程中如果不确定使用什么后缀作为`ts_code`可根据接口`index_basic`的`symbol`字段获取`ts_code`进行使用。如发现指数与一般行情软件不同,本文开头说明中有解释,您亦可以将问题反馈给Tushare团队进行处理。
270 3
|
2月前
|
Web App开发 程序员 Linux
【2026最新】Chocolatey包管理器下载使用指南(程序员必备)
Chocolatey 是 Windows 免费开源命令行包管理器,支持一键安装、更新、卸载软件(如 choco install chrome),省去手动下载与配置。软件库丰富,社区活跃,媲美 Linux 的 apt/yum。另有 Winget(微软官方)、Scoop(便携优先)可选。
|
2月前
|
存储 算法
Tushare接口文档:复权因子(adj_factor)
本文介绍的复权因子是“累计后复权因子”,存储的是每个交易日的快照。本文介绍了如何获取某个交易日全市场股票的复权因子、如何获取单只股票最近6000条复权因子、如何获取某段时间区间里的复权因子以及如何计算前复权和后复权价格。
393 8
|
2月前
|
数据可视化
节点管控可视化工具值不值得上?2026年四个团队的实测结论
本文复盘2026年多个团队从Excel+例会转向节点管控可视化工具的真实经历。核心痛点为进度不透明、角色信息混杂、节点无关联。工具解决信息同步问题——状态可视化、分角色视图、依赖关联,节点逾期率从30%降至10%以内。但工具无法替代复杂决策和习惯切换,选型前需明确核心痛点。
131 0
|
2月前
|
SQL 人工智能 关系型数据库
Agent一个查询5分钟打满CPU,背后是数据库正在经历的三个根本性变化
当Agent成为数据库的主要使用者,查询模式、数据形态和交互方式正在发生根本性变化。文章从一个真实的Agent查询风暴案例出发,分析AI查询优化器的反馈回路机制、多模融合架构的解决思路、NL2SQL背后的语义层关键技术,以及数据库如何在概率性环境里保持工程确定性,最后探讨这些变化对SQL技能、数据库选型和DBA角色的实际影响。