get_fundamentals - 查询基本面数据
函数原型:
get_fundamentals(table, symbols, start_date, end_date, fields=None, filter=None, order_by=None, limit=1000, df=False)
参数:
参数名 | 类型 | 说明 |
---|---|---|
table | str | 表名,只支持单表查询. 具体表名及fields字段名及filter可过滤的字段参考 财务数据文档 |
symbols | str or list | 标的代码, 多个代码可用 , (英文逗号)分割, 也支持 ['symbol1', 'symbol2'] 这种列表格式,使用时参考symbol |
start_date | str | 开始时间, (%Y-%m-%d 格式) |
end_date | str | 结束时间, (%Y-%m-%d 格式) |
fields | str | 查询字段 (必填) |
filter | str | 查询过滤,使用方法参考例3、例4 |
order_by | str or None | 排序方式, 默认 None . TCLOSE 表示按 TCLOSE 升序排序. -TCLOSE 表示按 TCLOSE 降序排序. TCLOSE, -NEGOTIABLEMV 表示按 TCLOSE 升序, NEGOTIABLEMV 降序综合排序 |
limit | int | 数量. 默认是1000 , 为保护服务器, 单次查询最多返回 40000 条记录 |
df | bool | 是否返回dataframe格式, 默认False, 返回list[dict] |
返回值:
key | value类型 | 说明 |
---|---|---|
symbol | str | 标的代码 |
pub_date | datetime.datetime | 公司发布财报的日期. |
end_date | datetime.datetime | 财报统计的季度的最后一天. |
fields | dict | 相应指定查询 fields 字段的值. 字典key值请参考 财务数据文档 |
示例:
例1: 取股票代码 SHSE.600000, SZSE.000001
, 离 2017-01-01
最近一个交易日的 股票交易财务衍生表 的 TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI
字段的值
get_fundamentals(table='trading_derivative_indicator', symbols='SHSE.600000, SZSE.000001',
start_date='2017-01-01', end_date='2017-01-01',
fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI',
df=True )
输出:
symbol pub_date end_date NEGOTIABLEMV PEMRQ PELFYNPAAEI PETTMNPAAEI PELFY TURNRATE PETTM TOTMKTCAP TCLOSE
SHSE.600000 2016-12-30 00:00:00 2016-12-30 00:00:00 3.3261e+11 6.4605 7.0707 6.6184 6.925 0.0598 6.4746 3.50432e+11 16.21
SZSE.000001 2016-12-30 00:00:00 2016-12-30 00:00:00 1.33144e+11 6.2604 7.1341 6.2644 7.1462 0.2068 6.8399 1.56251e+11 9.1
例2:
取股票代码 SHSE.600000, SZSE.000001
, 指定时间段 2016-01-01 -- 2017-01-01
股票交易财务衍生表 的 TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI
字段的值
1 get_fundamentals(table='trading_derivative_indicator', symbols='SHSE.600000, SZSE.000001', start_date='2016-01-01', end_date='2017-01-01', 2 fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI', df=True)
例3:
取指定股票 SHSE.600000, SHSE.600001, SHSE.600002
离 2017-01-01
最近一个交易日, 且满足条件 PCTTM > 0 and PCTTM < 10
股票交易财务衍生表 的 TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI
字段的值
1 get_fundamentals(table='trading_derivative_indicator', symbols='SHSE.600000, SHSE.600001, SHSE.600002', start_date='2017-01-01', end_date='2017-01-01', filter='PCTTM > 0 and PCTTM < 10', 2 fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI', df=True) 3 # 或者这样写 4 my_symbols = ['SHSE.600000', 'SHSE.600001', 'SHSE.600002'] 5 get_fundamentals(table='trading_derivative_indicator', start_date='2017-01-01', end_date='2017-01-01', filter='PCTTM > 0 and PCTTM < 10', symbols=my_symbols, 6 fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI', df=True)
例4:
取指定股票 SHSE.600000, SZSE.000001
离 2016-01-20
最近一个财报, 同时满足条件 CURFDS > 0 and TOTLIABSHAREQUI > 0
的 资产负债 的数据
1 get_fundamentals(table='balance_sheet', start_date='2016-01-20', end_date='2016-01-20', 2 fields='CURFDS, SETTRESEDEPO, PLAC, TRADFINASSET, ', 3 symbols='SHSE.600000, SZSE.000001', 4 filter='CURFDS > 0 and TOTLIABSHAREQUI > 0', 5 df=True) 6 # 或者这样写 7 my_symbols = ['SHSE.600000', 'SZSE.000001'] 8 get_fundamentals(table='balance_sheet', start_date='2016-01-20', end_date='2016-01-20', 9 fields='CURFDS, SETTRESEDEPO, PLAC, TRADFINASSET, ', 10 symbols=my_symbols, 11 filter='CURFDS > 0 and TOTLIABSHAREQUI > 0', 12 df=True)
注意:
1.当 start_date
== end_date
时, 取所举每个股票离 end_date
最近业务日期(交易日期或报告日期) 一条数据,当 start_date
< end_date
时, 取指定时间段的数据,当 start_date
> end_date
时, 返回空list/空DataFrame
2.当不指定排序方式时,返回的list/DataFrame
以参数pub_date/end_date
来排序
3.start_date和end_date中月,日均可以只输入个位数,例:'2010-7-8'
或'2017-7-30'
4.若输入包含无效标的代码,则返回的list/DataFrame
只包含有效标的代码对应的数据
5.在该函数中,table参数只支持输入一个表名,若表名输入错误或以'table1,table2'
方式输入多个表名,函数返回空list/空DataFrame
6.若表名输入正确,但查询字段中出现非指定字符串,则程序直接报错