akshare 1.14.49__py3-none-any.whl → 1.17.99__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- akshare/__init__.py +595 -129
- akshare/air/air_hebei.py +77 -54
- akshare/air/air_zhenqi.py +0 -4
- akshare/air/cons.py +1 -0
- akshare/air/crypto.js +1 -1
- akshare/air/outcrypto.js +1 -1
- akshare/article/cons.py +1 -0
- akshare/article/epu_index.py +4 -3
- akshare/article/ff_factor.py +19 -8
- akshare/article/fred_md.py +4 -1
- akshare/article/risk_rv.py +3 -8
- akshare/bank/bank_cbirc_2020.py +11 -11
- akshare/bank/cons.py +7 -6
- akshare/bond/bond_buy_back_em.py +228 -0
- akshare/bond/bond_cb_sina.py +1 -0
- akshare/bond/bond_cb_ths.py +17 -9
- akshare/bond/bond_cbond.py +19 -14
- akshare/bond/bond_china.py +38 -39
- akshare/bond/bond_china_money.py +1 -1
- akshare/bond/bond_convert.py +10 -9
- akshare/bond/bond_em.py +37 -17
- akshare/bond/bond_summary.py +38 -37
- akshare/bond/bond_zh_cov.py +31 -40
- akshare/bond/bond_zh_sina.py +4 -0
- akshare/bond/cons.py +14 -11
- akshare/cal/__init__.py +0 -0
- akshare/cal/rv.py +170 -0
- akshare/cost/cost_living.py +7 -5
- akshare/crypto/__init__.py +1 -1
- akshare/crypto/crypto_bitcoin_cme.py +9 -7
- akshare/crypto/crypto_hold.py +4 -2
- akshare/currency/currency.py +1 -0
- akshare/currency/currency_china_bank_sina.py +11 -6
- akshare/data/__init__.py +1 -1
- akshare/data/cninfo.js +1 -1
- akshare/datasets.py +10 -21
- akshare/economic/cons.py +10 -3
- akshare/economic/macro_australia.py +74 -69
- akshare/economic/macro_bank.py +95 -653
- akshare/economic/macro_canada.py +92 -81
- akshare/economic/macro_china.py +97 -105
- akshare/economic/macro_china_hk.py +0 -1
- akshare/economic/macro_euro.py +103 -56
- akshare/economic/macro_finance_ths.py +7 -5
- akshare/economic/macro_germany.py +1 -1
- akshare/economic/macro_japan.py +0 -1
- akshare/economic/macro_other.py +1 -6
- akshare/economic/macro_swiss.py +2 -3
- akshare/economic/macro_uk.py +1 -1
- akshare/economic/macro_usa.py +7 -9
- akshare/economic/marco_cnbs.py +11 -6
- akshare/energy/energy_carbon.py +0 -1
- akshare/energy/energy_oil_em.py +1 -2
- akshare/event/cons.py +1 -0
- akshare/exceptions.py +43 -0
- akshare/file_fold/calendar.json +245 -2
- akshare/forex/__init__.py +0 -0
- akshare/forex/cons.py +192 -0
- akshare/forex/forex_em.py +149 -0
- akshare/fortune/fortune_500.py +1 -37
- akshare/fortune/fortune_bloomberg.py +6 -3
- akshare/fortune/fortune_forbes_500.py +3 -6
- akshare/fortune/fortune_hurun.py +2 -1
- akshare/fortune/fortune_xincaifu_500.py +17 -14
- akshare/fund/fund_announcement_em.py +145 -0
- akshare/fund/fund_aum_em.py +49 -35
- akshare/fund/fund_em.py +251 -220
- akshare/fund/fund_etf_em.py +44 -35
- akshare/fund/fund_etf_sina.py +75 -27
- akshare/fund/fund_etf_ths.py +2 -0
- akshare/fund/fund_fee_em.py +172 -0
- akshare/fund/fund_fhsp_em.py +42 -32
- akshare/fund/fund_init_em.py +8 -5
- akshare/fund/fund_lof_em.py +12 -19
- akshare/fund/fund_manager.py +25 -11
- akshare/fund/fund_overview_em.py +42 -0
- akshare/fund/fund_portfolio_em.py +23 -21
- akshare/fund/fund_position_lg.py +19 -8
- akshare/fund/fund_rank_em.py +2 -5
- akshare/fund/fund_rating.py +33 -12
- akshare/fund/fund_scale_em.py +24 -13
- akshare/fund/fund_scale_sina.py +20 -10
- akshare/fund/fund_xq.py +3 -2
- akshare/futures/cons.py +135 -39
- akshare/futures/cot.py +55 -56
- akshare/futures/futures_basis.py +49 -11
- akshare/futures/futures_comex_em.py +1 -0
- akshare/futures/futures_comm_ctp.py +1 -1
- akshare/futures/futures_contract_detail.py +59 -9
- akshare/futures/futures_daily_bar.py +66 -59
- akshare/futures/futures_foreign.py +14 -8
- akshare/futures/futures_hf_em.py +215 -61
- akshare/futures/futures_hist_em.py +191 -0
- akshare/futures/futures_hq_sina.py +5 -3
- akshare/futures/futures_index_ccidx.py +24 -82
- akshare/futures/futures_inventory_99.py +70 -272
- akshare/futures/futures_inventory_em.py +14 -11
- akshare/futures/futures_news_shmet.py +2 -2
- akshare/futures/futures_roll_yield.py +11 -24
- akshare/futures/futures_rule.py +7 -3
- akshare/futures/futures_rule_em.py +38 -0
- akshare/futures/futures_settlement_price_sgx.py +21 -6
- akshare/futures/futures_stock_js.py +0 -1
- akshare/futures/futures_to_spot.py +5 -6
- akshare/futures/futures_warehouse_receipt.py +48 -47
- akshare/futures/futures_zh_sina.py +3 -3
- akshare/futures/receipt.py +298 -165
- akshare/futures/requests_fun.py +16 -3
- akshare/futures/symbol_var.py +32 -13
- akshare/futures_derivative/cons.py +100 -103
- akshare/futures_derivative/futures_contract_info_cffex.py +55 -39
- akshare/futures_derivative/futures_contract_info_czce.py +2 -0
- akshare/futures_derivative/futures_contract_info_dce.py +43 -17
- akshare/futures_derivative/futures_contract_info_gfex.py +43 -31
- akshare/futures_derivative/futures_contract_info_ine.py +43 -34
- akshare/futures_derivative/futures_contract_info_shfe.py +3 -4
- akshare/futures_derivative/futures_cot_sina.py +8 -6
- akshare/futures_derivative/futures_index_sina.py +25 -13
- akshare/fx/cons.py +12 -7
- akshare/fx/fx_c_swap_cm.py +62 -0
- akshare/fx/fx_quote.py +3 -2
- akshare/fx/fx_quote_baidu.py +2 -1
- akshare/hf/__init__.py +1 -1
- akshare/hf/hf_sp500.py +8 -7
- akshare/index/cons.py +132 -28
- akshare/index/index_cni.py +7 -7
- akshare/index/index_cons.py +2 -2
- akshare/index/index_csindex.py +68 -0
- akshare/index/index_cx.py +20 -20
- akshare/index/index_drewry.py +17 -16
- akshare/index/index_eri.py +1 -0
- akshare/index/index_global_em.py +167 -0
- akshare/index/index_global_sina.py +82 -0
- akshare/index/index_kq_fz.py +17 -14
- akshare/index/index_kq_ss.py +1 -0
- akshare/index/index_option_qvix.py +351 -16
- akshare/index/index_research_sw.py +21 -21
- akshare/index/index_spot.py +9 -5
- akshare/index/index_stock_hk.py +5 -9
- akshare/index/index_stock_zh.py +111 -24
- akshare/index/index_stock_zh_csindex.py +3 -367
- akshare/index/index_sugar.py +18 -4
- akshare/index/index_sw.py +10 -2
- akshare/index/index_yw.py +53 -75
- akshare/index/index_zh_em.py +15 -82
- akshare/interest_rate/interbank_rate_em.py +0 -1
- akshare/movie/jm.js +0 -1
- akshare/news/__init__.py +1 -1
- akshare/news/news_baidu.py +395 -222
- akshare/news/news_stock.py +49 -16
- akshare/option/cons.py +2 -2
- akshare/option/option_commodity.py +341 -220
- akshare/option/option_commodity_sina.py +22 -26
- akshare/option/option_contract_info_ctp.py +63 -0
- akshare/option/option_current_sse.py +61 -0
- akshare/option/option_current_szse.py +84 -0
- akshare/option/option_czce.py +37 -9
- akshare/option/option_daily_stats_sse_szse.py +0 -1
- akshare/option/option_em.py +4 -8
- akshare/option/option_finance.py +60 -12
- akshare/option/option_finance_sina.py +7 -7
- akshare/option/option_lhb_em.py +0 -1
- akshare/option/option_margin.py +62 -0
- akshare/option/option_premium_analysis_em.py +58 -53
- akshare/option/option_risk_analysis_em.py +11 -8
- akshare/option/option_risk_indicator_sse.py +3 -4
- akshare/option/option_value_analysis_em.py +62 -55
- akshare/other/__init__.py +1 -1
- akshare/pro/__init__.py +0 -1
- akshare/pro/client.py +6 -4
- akshare/pro/cons.py +3 -2
- akshare/pro/data_pro.py +6 -5
- akshare/qdii/__init__.py +0 -0
- akshare/qdii/qdii_jsl.py +233 -0
- akshare/qhkc/__init__.py +1 -6
- akshare/qhkc/qhkc_api.py +64 -22
- akshare/qhkc_web/__init__.py +1 -6
- akshare/qhkc_web/qhkc_fund.py +10 -6
- akshare/qhkc_web/qhkc_index.py +28 -14
- akshare/qhkc_web/qhkc_tool.py +62 -59
- akshare/rate/__init__.py +1 -1
- akshare/rate/repo_rate.py +36 -32
- akshare/reits/__init__.py +1 -1
- akshare/reits/reits_basic.py +149 -13
- akshare/request.py +117 -0
- akshare/spot/__init__.py +1 -1
- akshare/spot/spot_hog_soozhu.py +165 -3
- akshare/spot/spot_sge.py +70 -9
- akshare/stock/cons.py +60 -23
- akshare/stock/stock_allotment_cninfo.py +8 -8
- akshare/stock/stock_ask_bid_em.py +3 -78
- akshare/stock/stock_board_concept_em.py +160 -35
- akshare/stock/stock_board_industry_em.py +163 -70
- akshare/stock/stock_dividend_cninfo.py +31 -17
- akshare/stock/stock_dzjy_em.py +347 -260
- akshare/stock/stock_fund_em.py +72 -64
- akshare/stock/stock_fund_hold.py +1 -2
- akshare/stock/stock_gsrl_em.py +1 -0
- akshare/stock/stock_hk_comparison_em.py +175 -0
- akshare/stock/stock_hk_famous.py +4 -5
- akshare/stock/stock_hk_fhpx_ths.py +2 -1
- akshare/stock/stock_hk_hot_rank_em.py +1 -0
- akshare/stock/stock_hk_sina.py +84 -36
- akshare/stock/stock_hold_control_cninfo.py +82 -0
- akshare/stock/stock_hold_control_em.py +0 -2
- akshare/stock/stock_hot_rank_em.py +4 -1
- akshare/stock/stock_hot_search_baidu.py +32 -19
- akshare/stock/stock_hot_up_em.py +4 -1
- akshare/stock/stock_hsgt_em.py +155 -0
- akshare/stock/stock_industry.py +1 -0
- akshare/stock/stock_industry_cninfo.py +1 -2
- akshare/stock/stock_info.py +6 -4
- akshare/stock/stock_info_em.py +17 -11
- akshare/stock/stock_intraday_em.py +4 -78
- akshare/stock/stock_intraday_sina.py +2 -2
- akshare/stock/stock_news_cx.py +39 -0
- akshare/stock/stock_profile_cninfo.py +7 -7
- akshare/stock/stock_profile_em.py +302 -0
- akshare/stock/stock_rank_forecast.py +6 -5
- akshare/stock/stock_repurchase_em.py +7 -2
- akshare/stock/stock_share_changes_cninfo.py +7 -5
- akshare/stock/stock_share_hold.py +24 -20
- akshare/stock/stock_stop.py +6 -6
- akshare/stock/stock_summary.py +153 -417
- akshare/stock/stock_us_famous.py +5 -6
- akshare/stock/stock_us_js.py +3 -2
- akshare/stock/stock_us_pink.py +38 -27
- akshare/stock/stock_us_sina.py +7 -3
- akshare/stock/stock_weibo_nlp.py +18 -20
- akshare/stock/stock_xq.py +24 -22
- akshare/stock/stock_zh_a_sina.py +8 -5
- akshare/stock/stock_zh_a_special.py +240 -243
- akshare/stock/stock_zh_a_tick_tx.py +11 -3
- akshare/stock/stock_zh_ah_tx.py +23 -26
- akshare/stock/stock_zh_b_sina.py +2 -2
- akshare/stock/stock_zh_comparison_em.py +250 -0
- akshare/stock/stock_zh_kcb_sina.py +67 -64
- akshare/stock_a/__init__.py +0 -0
- akshare/stock_a/stock_board_concept_name_em.py +170 -0
- akshare/stock_a/stock_individual_fund_flow_rank.py +258 -0
- akshare/stock_a/stock_zh_a_spot.py +212 -0
- akshare/stock_feature/cons.py +1 -0
- akshare/stock_feature/stock_a_indicator.py +9 -54
- akshare/stock_feature/stock_a_pe_and_pb.py +23 -5
- akshare/stock_feature/stock_account_em.py +0 -1
- akshare/stock_feature/stock_all_pb.py +2 -1
- akshare/stock_feature/stock_analyst_em.py +36 -30
- akshare/stock_feature/stock_board_concept_ths.py +328 -0
- akshare/stock_feature/stock_board_industry_ths.py +57 -2
- akshare/stock_feature/stock_buffett_index_lg.py +10 -8
- akshare/stock_feature/stock_classify_sina.py +3 -6
- akshare/stock_feature/stock_comment_em.py +81 -144
- akshare/stock_feature/stock_congestion_lg.py +2 -1
- akshare/stock_feature/stock_cyq_em.py +5 -11
- akshare/stock_feature/stock_disclosure_cninfo.py +6 -6
- akshare/stock_feature/stock_dxsyl_em.py +121 -74
- akshare/stock_feature/stock_ebs_lg.py +5 -4
- akshare/stock_feature/stock_esg_sina.py +29 -7
- akshare/stock_feature/stock_fhps_em.py +2 -1
- akshare/stock_feature/stock_fhps_ths.py +15 -7
- akshare/stock_feature/stock_fund_flow.py +30 -22
- akshare/stock_feature/stock_gddh_em.py +19 -11
- akshare/stock_feature/stock_gdfx_em.py +226 -113
- akshare/stock_feature/stock_gdhs.py +75 -50
- akshare/stock_feature/stock_gdzjc_em.py +21 -10
- akshare/stock_feature/stock_gpzy_em.py +78 -46
- akshare/stock_feature/stock_gxl_lg.py +3 -2
- akshare/stock_feature/stock_hist_em.py +137 -234
- akshare/stock_feature/stock_hist_tx.py +13 -10
- akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
- akshare/stock_feature/stock_hot_xq.py +4 -6
- akshare/stock_feature/stock_hsgt_em.py +269 -97
- akshare/stock_feature/stock_hsgt_exchange_rate.py +115 -87
- akshare/stock_feature/stock_hsgt_min_em.py +13 -16
- akshare/stock_feature/stock_info.py +7 -80
- akshare/stock_feature/stock_inner_trade_xq.py +38 -31
- akshare/stock_feature/stock_jgdy_em.py +43 -40
- akshare/stock_feature/stock_lhb_em.py +119 -3
- akshare/stock_feature/stock_margin_em.py +0 -1
- akshare/stock_feature/stock_margin_sse.py +0 -2
- akshare/stock_feature/stock_pankou_em.py +71 -35
- akshare/stock_feature/stock_qsjy_em.py +13 -4
- akshare/stock_feature/stock_report_em.py +151 -7
- akshare/stock_feature/stock_research_report_em.py +55 -20
- akshare/stock_feature/stock_sy_em.py +20 -15
- akshare/stock_feature/stock_technology_ths.py +122 -77
- akshare/stock_feature/stock_tfp_em.py +2 -1
- akshare/stock_feature/stock_three_report_em.py +21 -5
- akshare/stock_feature/stock_ttm_lyr.py +18 -9
- akshare/stock_feature/stock_value_em.py +83 -0
- akshare/stock_feature/stock_yjbb_em.py +58 -32
- akshare/stock_feature/stock_yjyg_cninfo.py +6 -2
- akshare/stock_feature/stock_yjyg_em.py +1 -1
- akshare/stock_feature/stock_yzxdr_em.py +24 -22
- akshare/stock_feature/stock_zdhtmx_em.py +20 -6
- akshare/stock_feature/stock_zh_vote_baidu.py +4 -1
- akshare/stock_feature/stock_ztb_em.py +39 -24
- akshare/stock_fundamental/__init__.py +1 -1
- akshare/stock_fundamental/stock_basic_info_xq.py +119 -0
- akshare/stock_fundamental/{stock_finance_hk.py → stock_finance_hk_em.py} +23 -16
- akshare/stock_fundamental/{stock_finance.py → stock_finance_sina.py} +60 -7
- akshare/stock_fundamental/stock_finance_ths.py +524 -57
- akshare/stock_fundamental/stock_finance_us_em.py +268 -0
- akshare/stock_fundamental/stock_gbjg_em.py +80 -0
- akshare/stock_fundamental/stock_hold.py +26 -17
- akshare/stock_fundamental/stock_ipo_declare.py +1 -0
- akshare/stock_fundamental/stock_kcb_detail_sse.py +10 -10
- akshare/stock_fundamental/stock_kcb_sse.py +26 -25
- akshare/stock_fundamental/stock_notice.py +12 -3
- akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
- akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +64 -41
- akshare/stock_fundamental/stock_profit_forecast_ths.py +86 -35
- akshare/stock_fundamental/stock_recommend.py +20 -4
- akshare/stock_fundamental/stock_zygc.py +5 -62
- akshare/utils/context.py +43 -0
- akshare/utils/demjson.py +2009 -1338
- akshare/utils/func.py +49 -2
- akshare/utils/multi_decrypt.py +53 -0
- akshare/utils/token_process.py +6 -5
- {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/METADATA +54 -80
- akshare-1.17.99.dist-info/RECORD +409 -0
- {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/WHEEL +1 -1
- {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info/licenses}/LICENSE +1 -1
- tests/test_func.py +3 -5
- akshare/bond/bond_futures.py +0 -50
- akshare/bond/bond_investing.py +0 -139
- akshare/crypto/crypto_hist_investing.py +0 -249
- akshare/fund/fund_announcement.py +0 -56
- akshare/futures/futures_international.py +0 -170
- akshare/futures/futures_news_baidu.py +0 -54
- akshare/futures/inventory_data.py +0 -100
- akshare/futures_derivative/futures_index_price_nh.py +0 -61
- akshare/futures_derivative/futures_index_return_nh.py +0 -47
- akshare/futures_derivative/futures_index_volatility_nh.py +0 -53
- akshare/futures_derivative/futures_other_index_nh.py +0 -145
- akshare/index/index_fear_greed_funddb.py +0 -78
- akshare/index/index_investing.py +0 -232
- akshare/sport/__init__.py +0 -6
- akshare/sport/sport_olympic.py +0 -27
- akshare/stock_feature/stock_wencai.py +0 -104
- akshare/stock_fundamental/stock_mda_ym.py +0 -40
- akshare-1.14.49.dist-info/RECORD +0 -387
- {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/top_level.txt +0 -0
|
@@ -7,6 +7,7 @@ http://data.eastmoney.com/jgdy/
|
|
|
7
7
|
东方财富网-数据中心-特色数据-机构调研-机构调研统计: http://data.eastmoney.com/jgdy/tj.html
|
|
8
8
|
东方财富网-数据中心-特色数据-机构调研-机构调研详细: http://data.eastmoney.com/jgdy/xx.html
|
|
9
9
|
"""
|
|
10
|
+
|
|
10
11
|
import pandas as pd
|
|
11
12
|
import requests
|
|
12
13
|
from tqdm import tqdm
|
|
@@ -15,34 +16,34 @@ from tqdm import tqdm
|
|
|
15
16
|
def stock_jgdy_tj_em(date: str = "20220101") -> pd.DataFrame:
|
|
16
17
|
"""
|
|
17
18
|
东方财富网-数据中心-特色数据-机构调研-机构调研统计
|
|
18
|
-
|
|
19
|
+
https://data.eastmoney.com/jgdy/tj.html
|
|
19
20
|
:param date: 开始时间
|
|
20
21
|
:type date: str
|
|
21
22
|
:return: 机构调研统计
|
|
22
23
|
:rtype: pandas.DataFrame
|
|
23
24
|
"""
|
|
24
|
-
url = "
|
|
25
|
+
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
|
|
25
26
|
params = {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
27
|
+
"sortColumns": "NOTICE_DATE,SUM,RECEIVE_START_DATE,SECURITY_CODE",
|
|
28
|
+
"sortTypes": "-1,-1,-1,1",
|
|
29
|
+
"pageSize": "500",
|
|
30
|
+
"pageNumber": "1",
|
|
31
|
+
"reportName": "RPT_ORG_SURVEYNEW",
|
|
32
|
+
"columns": "ALL",
|
|
33
|
+
"quoteColumns": "f2~01~SECURITY_CODE~CLOSE_PRICE,f3~01~SECURITY_CODE~CHANGE_RATE",
|
|
34
|
+
"source": "WEB",
|
|
35
|
+
"client": "WEB",
|
|
36
|
+
"filter": f"""(NUMBERNEW="1")(IS_SOURCE="1")(NOTICE_DATE>'{'-'.join([date[:4], date[4:6], date[6:]])}')""",
|
|
36
37
|
}
|
|
37
38
|
r = requests.get(url, params=params)
|
|
38
39
|
data_json = r.json()
|
|
39
|
-
total_page = data_json[
|
|
40
|
+
total_page = data_json["result"]["pages"]
|
|
40
41
|
big_df = pd.DataFrame()
|
|
41
|
-
for page in tqdm(range(1, total_page+1), leave=False):
|
|
42
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
42
43
|
params.update({"pageNumber": page})
|
|
43
44
|
r = requests.get(url, params=params)
|
|
44
45
|
data_json = r.json()
|
|
45
|
-
temp_df = pd.DataFrame(data_json[
|
|
46
|
+
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
46
47
|
big_df = pd.concat([big_df, temp_df])
|
|
47
48
|
big_df.reset_index(inplace=True)
|
|
48
49
|
big_df["index"] = list(range(1, len(big_df) + 1))
|
|
@@ -96,45 +97,47 @@ def stock_jgdy_tj_em(date: str = "20220101") -> pd.DataFrame:
|
|
|
96
97
|
"公告日期",
|
|
97
98
|
]
|
|
98
99
|
]
|
|
99
|
-
big_df[
|
|
100
|
-
big_df[
|
|
101
|
-
big_df[
|
|
102
|
-
big_df[
|
|
103
|
-
big_df[
|
|
100
|
+
big_df["最新价"] = pd.to_numeric(big_df["最新价"], errors="coerce")
|
|
101
|
+
big_df["涨跌幅"] = pd.to_numeric(big_df["涨跌幅"], errors="coerce")
|
|
102
|
+
big_df["接待机构数量"] = pd.to_numeric(big_df["接待机构数量"], errors="coerce")
|
|
103
|
+
big_df["接待日期"] = pd.to_datetime(big_df["接待日期"], errors="coerce").dt.date
|
|
104
|
+
big_df["公告日期"] = pd.to_datetime(big_df["公告日期"], errors="coerce").dt.date
|
|
104
105
|
return big_df
|
|
105
106
|
|
|
106
107
|
|
|
107
|
-
def stock_jgdy_detail_em(date: str = "
|
|
108
|
+
def stock_jgdy_detail_em(date: str = "20241211") -> pd.DataFrame:
|
|
108
109
|
"""
|
|
109
110
|
东方财富网-数据中心-特色数据-机构调研-机构调研详细
|
|
110
|
-
|
|
111
|
+
https://data.eastmoney.com/jgdy/xx.html
|
|
111
112
|
:param date: 开始时间
|
|
112
113
|
:type date: str
|
|
113
114
|
:return: 机构调研详细
|
|
114
115
|
:rtype: pandas.DataFrame
|
|
115
116
|
"""
|
|
116
|
-
url = "
|
|
117
|
+
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
|
|
117
118
|
params = {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
119
|
+
"sortColumns": "NOTICE_DATE,RECEIVE_START_DATE,SECURITY_CODE,NUMBERNEW",
|
|
120
|
+
"sortTypes": "-1,-1,1,-1",
|
|
121
|
+
"pageSize": "50",
|
|
122
|
+
"pageNumber": "1",
|
|
123
|
+
"reportName": "RPT_ORG_SURVEY",
|
|
124
|
+
"columns": "SECUCODE,SECURITY_CODE,SECURITY_NAME_ABBR,NOTICE_DATE,RECEIVE_START_DATE,"
|
|
125
|
+
"RECEIVE_OBJECT,RECEIVE_PLACE,RECEIVE_WAY_EXPLAIN,INVESTIGATORS,RECEPTIONIST,ORG_TYPE",
|
|
126
|
+
"quoteColumns": "f2~01~SECURITY_CODE~CLOSE_PRICE,f3~01~SECURITY_CODE~CHANGE_RATE",
|
|
127
|
+
"quoteType": "0",
|
|
128
|
+
"source": "WEB",
|
|
129
|
+
"client": "WEB",
|
|
130
|
+
"filter": f"""(IS_SOURCE="1")(RECEIVE_START_DATE>'{'-'.join([date[:4], date[4:6], date[6:]])}')""",
|
|
128
131
|
}
|
|
129
132
|
r = requests.get(url, params=params)
|
|
130
133
|
data_json = r.json()
|
|
131
|
-
total_page = data_json[
|
|
134
|
+
total_page = data_json["result"]["pages"]
|
|
132
135
|
big_df = pd.DataFrame()
|
|
133
|
-
for page in tqdm(range(1, total_page+1), leave=False):
|
|
136
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
134
137
|
params.update({"pageNumber": page})
|
|
135
138
|
r = requests.get(url, params=params)
|
|
136
139
|
data_json = r.json()
|
|
137
|
-
temp_df = pd.DataFrame(data_json[
|
|
140
|
+
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
138
141
|
big_df = pd.concat([big_df, temp_df])
|
|
139
142
|
big_df.reset_index(inplace=True)
|
|
140
143
|
big_df["index"] = list(range(1, len(big_df) + 1))
|
|
@@ -171,10 +174,10 @@ def stock_jgdy_detail_em(date: str = "20220101") -> pd.DataFrame:
|
|
|
171
174
|
"公告日期",
|
|
172
175
|
]
|
|
173
176
|
]
|
|
174
|
-
big_df[
|
|
175
|
-
big_df[
|
|
176
|
-
big_df[
|
|
177
|
-
big_df[
|
|
177
|
+
big_df["最新价"] = pd.to_numeric(big_df["最新价"], errors="coerce")
|
|
178
|
+
big_df["涨跌幅"] = pd.to_numeric(big_df["涨跌幅"], errors="coerce")
|
|
179
|
+
big_df["调研日期"] = pd.to_datetime(big_df["调研日期"], errors="coerce").dt.date
|
|
180
|
+
big_df["公告日期"] = pd.to_datetime(big_df["公告日期"], errors="coerce").dt.date
|
|
178
181
|
return big_df
|
|
179
182
|
|
|
180
183
|
|
|
@@ -480,7 +480,7 @@ def stock_lhb_hyyyb_em(
|
|
|
480
480
|
"卖出总金额",
|
|
481
481
|
"总买卖净额",
|
|
482
482
|
"-",
|
|
483
|
-
"
|
|
483
|
+
"营业部代码",
|
|
484
484
|
"买入股票",
|
|
485
485
|
"-",
|
|
486
486
|
"-",
|
|
@@ -496,6 +496,7 @@ def stock_lhb_hyyyb_em(
|
|
|
496
496
|
"卖出总金额",
|
|
497
497
|
"总买卖净额",
|
|
498
498
|
"买入股票",
|
|
499
|
+
"营业部代码",
|
|
499
500
|
]
|
|
500
501
|
]
|
|
501
502
|
|
|
@@ -796,7 +797,6 @@ def stock_lhb_stock_detail_em(
|
|
|
796
797
|
"sortColumns": flag_map[flag],
|
|
797
798
|
"source": "WEB",
|
|
798
799
|
"client": "WEB",
|
|
799
|
-
"_": "1647338693644",
|
|
800
800
|
}
|
|
801
801
|
r = requests.get(url, params=params)
|
|
802
802
|
data_json = r.json()
|
|
@@ -901,9 +901,122 @@ def stock_lhb_stock_detail_em(
|
|
|
901
901
|
return temp_df
|
|
902
902
|
|
|
903
903
|
|
|
904
|
+
def stock_lhb_yyb_detail_em(symbol: str = "10188715") -> pd.DataFrame:
|
|
905
|
+
"""
|
|
906
|
+
东方财富网-数据中心-龙虎榜单-营业部历史交易明细-营业部交易明细
|
|
907
|
+
https://data.eastmoney.com/stock/lhb/yyb/10188715.html
|
|
908
|
+
:param symbol: 营业部代码, 如 "10188715", 通过 ak.stock_lhb_hyyyb_em() 接口获取
|
|
909
|
+
:type symbol: str
|
|
910
|
+
:return: 营业部交易明细数据
|
|
911
|
+
:rtype: pandas.DataFrame
|
|
912
|
+
"""
|
|
913
|
+
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
|
|
914
|
+
params = {
|
|
915
|
+
"sortColumns": "TRADE_DATE,SECURITY_CODE",
|
|
916
|
+
"sortTypes": "-1,1",
|
|
917
|
+
"pageSize": '100',
|
|
918
|
+
"pageNumber": "1",
|
|
919
|
+
"reportName": "RPT_OPERATEDEPT_TRADE_DETAILSNEW",
|
|
920
|
+
"columns": "ALL",
|
|
921
|
+
"source": "WEB",
|
|
922
|
+
"client": "WEB",
|
|
923
|
+
"filter": f'(OPERATEDEPT_CODE="{symbol}")',
|
|
924
|
+
}
|
|
925
|
+
r = requests.get(url, params=params)
|
|
926
|
+
data_json = r.json()
|
|
927
|
+
total_page = data_json["result"]["pages"]
|
|
928
|
+
big_df = pd.DataFrame()
|
|
929
|
+
tqdm = get_tqdm()
|
|
930
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
931
|
+
params.update({"pageNumber": page})
|
|
932
|
+
r = requests.get(url, params=params)
|
|
933
|
+
data_json = r.json()
|
|
934
|
+
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
935
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
936
|
+
|
|
937
|
+
# 检查DataFrame是否为空
|
|
938
|
+
if big_df.empty:
|
|
939
|
+
return pd.DataFrame()
|
|
940
|
+
|
|
941
|
+
# 确保列名与实际返回的JSON数据结构一致
|
|
942
|
+
column_map = {
|
|
943
|
+
"OPERATEDEPT_CODE": "营业部代码",
|
|
944
|
+
"OPERATEDEPT_NAME": "营业部名称",
|
|
945
|
+
"TRADE_DATE": "交易日期",
|
|
946
|
+
"D1_CLOSE_ADJCHRATE": "1日后涨跌幅",
|
|
947
|
+
"D2_CLOSE_ADJCHRATE": "2日后涨跌幅",
|
|
948
|
+
"D3_CLOSE_ADJCHRATE": "3日后涨跌幅",
|
|
949
|
+
"D5_CLOSE_ADJCHRATE": "5日后涨跌幅",
|
|
950
|
+
"D10_CLOSE_ADJCHRATE": "10日后涨跌幅",
|
|
951
|
+
"SECURITY_CODE": "股票代码",
|
|
952
|
+
"SECURITY_NAME_ABBR": "股票名称",
|
|
953
|
+
"ACT_BUY": "买入金额",
|
|
954
|
+
"ACT_SELL": "卖出金额",
|
|
955
|
+
"NET_AMT": "净额",
|
|
956
|
+
"EXPLANATION": "上榜原因",
|
|
957
|
+
"D20_CLOSE_ADJCHRATE": "20日后涨跌幅",
|
|
958
|
+
"D30_CLOSE_ADJCHRATE": "30日后涨跌幅",
|
|
959
|
+
"SECUCODE": "证券代码",
|
|
960
|
+
"OPERATEDEPT_CODE_OLD": "营业部旧代码",
|
|
961
|
+
"ORG_NAME_ABBR": "营业部简称",
|
|
962
|
+
"CHANGE_RATE": "涨跌幅"
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
# 重命名列
|
|
966
|
+
big_df.rename(columns=column_map, inplace=True)
|
|
967
|
+
|
|
968
|
+
# 添加序号列
|
|
969
|
+
big_df.reset_index(inplace=True)
|
|
970
|
+
big_df["序号"] = big_df.index + 1
|
|
971
|
+
|
|
972
|
+
# 选择需要的列并排序
|
|
973
|
+
result_columns = [
|
|
974
|
+
"序号",
|
|
975
|
+
"营业部代码",
|
|
976
|
+
"营业部名称",
|
|
977
|
+
"营业部简称",
|
|
978
|
+
"交易日期",
|
|
979
|
+
"股票代码",
|
|
980
|
+
"股票名称",
|
|
981
|
+
"涨跌幅",
|
|
982
|
+
"买入金额",
|
|
983
|
+
"卖出金额",
|
|
984
|
+
"净额",
|
|
985
|
+
"上榜原因",
|
|
986
|
+
"1日后涨跌幅",
|
|
987
|
+
"2日后涨跌幅",
|
|
988
|
+
"3日后涨跌幅",
|
|
989
|
+
"5日后涨跌幅",
|
|
990
|
+
"10日后涨跌幅",
|
|
991
|
+
"20日后涨跌幅",
|
|
992
|
+
"30日后涨跌幅",
|
|
993
|
+
]
|
|
994
|
+
|
|
995
|
+
# 确保所有列都存在
|
|
996
|
+
for col in result_columns:
|
|
997
|
+
if col not in big_df.columns and col != "序号":
|
|
998
|
+
big_df[col] = None
|
|
999
|
+
|
|
1000
|
+
big_df = big_df[result_columns]
|
|
1001
|
+
|
|
1002
|
+
# 处理日期格式
|
|
1003
|
+
big_df["交易日期"] = pd.to_datetime(big_df["交易日期"], errors="coerce").dt.date
|
|
1004
|
+
|
|
1005
|
+
# 处理数值列
|
|
1006
|
+
numeric_cols = [
|
|
1007
|
+
"涨跌幅", "买入金额", "卖出金额", "净额",
|
|
1008
|
+
"1日后涨跌幅", "2日后涨跌幅", "3日后涨跌幅",
|
|
1009
|
+
"5日后涨跌幅", "10日后涨跌幅", "20日后涨跌幅", "30日后涨跌幅"
|
|
1010
|
+
]
|
|
1011
|
+
for col in numeric_cols:
|
|
1012
|
+
big_df[col] = pd.to_numeric(big_df[col], errors="coerce")
|
|
1013
|
+
|
|
1014
|
+
return big_df
|
|
1015
|
+
|
|
1016
|
+
|
|
904
1017
|
if __name__ == "__main__":
|
|
905
1018
|
stock_lhb_detail_em_df = stock_lhb_detail_em(
|
|
906
|
-
start_date="
|
|
1019
|
+
start_date="20250201", end_date="20250228"
|
|
907
1020
|
)
|
|
908
1021
|
print(stock_lhb_detail_em_df)
|
|
909
1022
|
|
|
@@ -950,3 +1063,6 @@ if __name__ == "__main__":
|
|
|
950
1063
|
symbol="600077", date="20070416", flag="买入"
|
|
951
1064
|
)
|
|
952
1065
|
print(stock_lhb_stock_detail_em_df)
|
|
1066
|
+
|
|
1067
|
+
stock_lhb_yyb_detail_em_df = stock_lhb_yyb_detail_em(symbol="10188715")
|
|
1068
|
+
print(stock_lhb_yyb_detail_em_df)
|
|
@@ -83,7 +83,6 @@ def stock_margin_sse(
|
|
|
83
83
|
"pageHelp.beginPage": "1",
|
|
84
84
|
"pageHelp.cacheSize": "1",
|
|
85
85
|
"pageHelp.endPage": "5",
|
|
86
|
-
"_": "1612773448860",
|
|
87
86
|
}
|
|
88
87
|
headers = {
|
|
89
88
|
"Referer": "https://www.sse.com.cn/",
|
|
@@ -151,7 +150,6 @@ def stock_margin_detail_sse(date: str = "20230922") -> pd.DataFrame:
|
|
|
151
150
|
"pageHelp.beginPage": "1",
|
|
152
151
|
"pageHelp.cacheSize": "1",
|
|
153
152
|
"pageHelp.endPage": "21",
|
|
154
|
-
"_": "1612773448860",
|
|
155
153
|
}
|
|
156
154
|
headers = {
|
|
157
155
|
"Referer": "https://www.sse.com.cn/",
|
|
@@ -5,6 +5,7 @@ Date: 2022/12/27 21:11
|
|
|
5
5
|
Desc: 东方财富-行情中心-盘口异动
|
|
6
6
|
https://quote.eastmoney.com/changes/
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
11
|
|
|
@@ -13,12 +14,14 @@ def stock_changes_em(symbol: str = "大笔买入") -> pd.DataFrame:
|
|
|
13
14
|
"""
|
|
14
15
|
东方财富-行情中心-盘口异动
|
|
15
16
|
https://quote.eastmoney.com/changes/
|
|
16
|
-
:param symbol: choice of {'火箭发射', '快速反弹', '大笔买入', '封涨停板', '打开跌停板', '有大买盘',
|
|
17
|
+
:param symbol: choice of {'火箭发射', '快速反弹', '大笔买入', '封涨停板', '打开跌停板', '有大买盘',
|
|
18
|
+
'竞价上涨', '高开5日线', '向上缺口', '60日新高', '60日大幅上涨', '加速下跌', '高台跳水',
|
|
19
|
+
'大笔卖出', '封跌停板', '打开涨停板', '有大卖盘', '竞价下跌', '低开5日线', '向下缺口', '60日新低', '60日大幅下跌'}
|
|
17
20
|
:type symbol: str
|
|
18
21
|
:return: 盘口异动
|
|
19
22
|
:rtype: pandas.DataFrame
|
|
20
23
|
"""
|
|
21
|
-
url = "
|
|
24
|
+
url = "https://push2ex.eastmoney.com/getAllStockChanges"
|
|
22
25
|
symbol_map = {
|
|
23
26
|
"火箭发射": "8201",
|
|
24
27
|
"快速反弹": "8202",
|
|
@@ -50,7 +53,6 @@ def stock_changes_em(symbol: str = "大笔买入") -> pd.DataFrame:
|
|
|
50
53
|
"pagesize": "5000",
|
|
51
54
|
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
52
55
|
"dpt": "wzchanges",
|
|
53
|
-
"_": "1624005264245",
|
|
54
56
|
}
|
|
55
57
|
r = requests.get(url, params=params)
|
|
56
58
|
data_json = r.json()
|
|
@@ -85,54 +87,88 @@ def stock_board_change_em() -> pd.DataFrame:
|
|
|
85
87
|
:return: 当日板块异动详情页
|
|
86
88
|
:rtype: pandas.DataFrame
|
|
87
89
|
"""
|
|
88
|
-
url = "
|
|
90
|
+
url = "https://push2ex.eastmoney.com/getAllBKChanges"
|
|
89
91
|
params = {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
'_': '1671978840598',
|
|
92
|
+
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
93
|
+
"dpt": "wzchanges",
|
|
94
|
+
"pageindex": "0",
|
|
95
|
+
"pagesize": "5000",
|
|
95
96
|
}
|
|
96
97
|
r = requests.get(url, params=params)
|
|
97
98
|
data_json = r.json()
|
|
98
|
-
data_df = pd.DataFrame(data_json[
|
|
99
|
+
data_df = pd.DataFrame(data_json["data"]["allbk"])
|
|
99
100
|
data_df.columns = [
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
"-",
|
|
102
|
+
"-",
|
|
103
|
+
"板块名称",
|
|
104
|
+
"涨跌幅",
|
|
105
|
+
"主力净流入",
|
|
106
|
+
"板块异动总次数",
|
|
106
107
|
"ms",
|
|
107
108
|
"板块具体异动类型列表及出现次数",
|
|
108
109
|
]
|
|
109
|
-
data_df[
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
data_df[
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
110
|
+
data_df["板块异动最频繁个股及所属类型-买卖方向"] = [
|
|
111
|
+
item["m"] for item in data_df["ms"]
|
|
112
|
+
]
|
|
113
|
+
data_df["板块异动最频繁个股及所属类型-股票代码"] = [
|
|
114
|
+
item["c"] for item in data_df["ms"]
|
|
115
|
+
]
|
|
116
|
+
data_df["板块异动最频繁个股及所属类型-股票名称"] = [
|
|
117
|
+
item["n"] for item in data_df["ms"]
|
|
118
|
+
]
|
|
119
|
+
data_df["板块异动最频繁个股及所属类型-买卖方向"] = data_df[
|
|
120
|
+
"板块异动最频繁个股及所属类型-买卖方向"
|
|
121
|
+
].map({0: "大笔买入", 1: "大笔卖出"})
|
|
122
|
+
data_df = data_df[
|
|
123
|
+
[
|
|
124
|
+
"板块名称",
|
|
125
|
+
"涨跌幅",
|
|
126
|
+
"主力净流入",
|
|
127
|
+
"板块异动总次数",
|
|
128
|
+
"板块异动最频繁个股及所属类型-股票代码",
|
|
129
|
+
"板块异动最频繁个股及所属类型-股票名称",
|
|
130
|
+
"板块异动最频繁个股及所属类型-买卖方向",
|
|
131
|
+
"板块具体异动类型列表及出现次数",
|
|
132
|
+
]
|
|
133
|
+
]
|
|
134
|
+
data_df["涨跌幅"] = pd.to_numeric(data_df["涨跌幅"], errors="coerce")
|
|
135
|
+
data_df["主力净流入"] = pd.to_numeric(data_df["主力净流入"], errors="coerce")
|
|
136
|
+
data_df["板块异动总次数"] = pd.to_numeric(
|
|
137
|
+
data_df["板块异动总次数"], errors="coerce"
|
|
138
|
+
)
|
|
126
139
|
return data_df
|
|
127
140
|
|
|
128
141
|
|
|
129
142
|
if __name__ == "__main__":
|
|
130
|
-
stock_changes_em_df = stock_changes_em(symbol=
|
|
143
|
+
stock_changes_em_df = stock_changes_em(symbol="大笔买入")
|
|
131
144
|
print(stock_changes_em_df)
|
|
132
145
|
|
|
133
146
|
stock_board_change_em_df = stock_board_change_em()
|
|
134
147
|
print(stock_board_change_em_df)
|
|
135
148
|
|
|
136
|
-
for item in {
|
|
149
|
+
for item in {
|
|
150
|
+
"火箭发射",
|
|
151
|
+
"快速反弹",
|
|
152
|
+
"大笔买入",
|
|
153
|
+
"封涨停板",
|
|
154
|
+
"打开跌停板",
|
|
155
|
+
"有大买盘",
|
|
156
|
+
"竞价上涨",
|
|
157
|
+
"高开5日线",
|
|
158
|
+
"向上缺口",
|
|
159
|
+
"60日新高",
|
|
160
|
+
"60日大幅上涨",
|
|
161
|
+
"加速下跌",
|
|
162
|
+
"高台跳水",
|
|
163
|
+
"大笔卖出",
|
|
164
|
+
"封跌停板",
|
|
165
|
+
"打开涨停板",
|
|
166
|
+
"有大卖盘",
|
|
167
|
+
"竞价下跌",
|
|
168
|
+
"低开5日线",
|
|
169
|
+
"向下缺口",
|
|
170
|
+
"60日新低",
|
|
171
|
+
"60日大幅下跌",
|
|
172
|
+
}:
|
|
137
173
|
stock_changes_em_df = stock_changes_em(symbol=item)
|
|
138
174
|
print(stock_changes_em_df)
|
|
@@ -5,6 +5,7 @@ Date: 2022/9/21 16:49
|
|
|
5
5
|
Desc: 东方财富网-数据中心-特色数据-券商业绩月报
|
|
6
6
|
http://data.eastmoney.com/other/qsjy.html
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
11
|
|
|
@@ -71,13 +72,21 @@ def stock_qsjy_em(date: str = "20200731") -> pd.DataFrame:
|
|
|
71
72
|
temp_df["当月净利润-净利润"] = pd.to_numeric(temp_df["当月净利润-净利润"])
|
|
72
73
|
temp_df["当月净利润-同比增长"] = pd.to_numeric(temp_df["当月净利润-同比增长"])
|
|
73
74
|
temp_df["当月净利润-环比增长"] = pd.to_numeric(temp_df["当月净利润-环比增长"])
|
|
74
|
-
temp_df["当年累计净利润-累计净利润"] = pd.to_numeric(
|
|
75
|
-
|
|
75
|
+
temp_df["当年累计净利润-累计净利润"] = pd.to_numeric(
|
|
76
|
+
temp_df["当年累计净利润-累计净利润"]
|
|
77
|
+
)
|
|
78
|
+
temp_df["当年累计净利润-同比增长"] = pd.to_numeric(
|
|
79
|
+
temp_df["当年累计净利润-同比增长"]
|
|
80
|
+
)
|
|
76
81
|
temp_df["当月营业收入-营业收入"] = pd.to_numeric(temp_df["当月营业收入-营业收入"])
|
|
77
82
|
temp_df["当月营业收入-环比增长"] = pd.to_numeric(temp_df["当月营业收入-环比增长"])
|
|
78
83
|
temp_df["当月营业收入-同比增长"] = pd.to_numeric(temp_df["当月营业收入-同比增长"])
|
|
79
|
-
temp_df["当年累计营业收入-累计营业收入"] = pd.to_numeric(
|
|
80
|
-
|
|
84
|
+
temp_df["当年累计营业收入-累计营业收入"] = pd.to_numeric(
|
|
85
|
+
temp_df["当年累计营业收入-累计营业收入"]
|
|
86
|
+
)
|
|
87
|
+
temp_df["当年累计营业收入-同比增长"] = pd.to_numeric(
|
|
88
|
+
temp_df["当年累计营业收入-同比增长"]
|
|
89
|
+
)
|
|
81
90
|
temp_df["净资产-净资产"] = pd.to_numeric(temp_df["净资产-净资产"])
|
|
82
91
|
temp_df["净资产-同比增长"] = pd.to_numeric(temp_df["净资产-同比增长"])
|
|
83
92
|
return temp_df
|