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.
Files changed (343) hide show
  1. akshare/__init__.py +595 -129
  2. akshare/air/air_hebei.py +77 -54
  3. akshare/air/air_zhenqi.py +0 -4
  4. akshare/air/cons.py +1 -0
  5. akshare/air/crypto.js +1 -1
  6. akshare/air/outcrypto.js +1 -1
  7. akshare/article/cons.py +1 -0
  8. akshare/article/epu_index.py +4 -3
  9. akshare/article/ff_factor.py +19 -8
  10. akshare/article/fred_md.py +4 -1
  11. akshare/article/risk_rv.py +3 -8
  12. akshare/bank/bank_cbirc_2020.py +11 -11
  13. akshare/bank/cons.py +7 -6
  14. akshare/bond/bond_buy_back_em.py +228 -0
  15. akshare/bond/bond_cb_sina.py +1 -0
  16. akshare/bond/bond_cb_ths.py +17 -9
  17. akshare/bond/bond_cbond.py +19 -14
  18. akshare/bond/bond_china.py +38 -39
  19. akshare/bond/bond_china_money.py +1 -1
  20. akshare/bond/bond_convert.py +10 -9
  21. akshare/bond/bond_em.py +37 -17
  22. akshare/bond/bond_summary.py +38 -37
  23. akshare/bond/bond_zh_cov.py +31 -40
  24. akshare/bond/bond_zh_sina.py +4 -0
  25. akshare/bond/cons.py +14 -11
  26. akshare/cal/__init__.py +0 -0
  27. akshare/cal/rv.py +170 -0
  28. akshare/cost/cost_living.py +7 -5
  29. akshare/crypto/__init__.py +1 -1
  30. akshare/crypto/crypto_bitcoin_cme.py +9 -7
  31. akshare/crypto/crypto_hold.py +4 -2
  32. akshare/currency/currency.py +1 -0
  33. akshare/currency/currency_china_bank_sina.py +11 -6
  34. akshare/data/__init__.py +1 -1
  35. akshare/data/cninfo.js +1 -1
  36. akshare/datasets.py +10 -21
  37. akshare/economic/cons.py +10 -3
  38. akshare/economic/macro_australia.py +74 -69
  39. akshare/economic/macro_bank.py +95 -653
  40. akshare/economic/macro_canada.py +92 -81
  41. akshare/economic/macro_china.py +97 -105
  42. akshare/economic/macro_china_hk.py +0 -1
  43. akshare/economic/macro_euro.py +103 -56
  44. akshare/economic/macro_finance_ths.py +7 -5
  45. akshare/economic/macro_germany.py +1 -1
  46. akshare/economic/macro_japan.py +0 -1
  47. akshare/economic/macro_other.py +1 -6
  48. akshare/economic/macro_swiss.py +2 -3
  49. akshare/economic/macro_uk.py +1 -1
  50. akshare/economic/macro_usa.py +7 -9
  51. akshare/economic/marco_cnbs.py +11 -6
  52. akshare/energy/energy_carbon.py +0 -1
  53. akshare/energy/energy_oil_em.py +1 -2
  54. akshare/event/cons.py +1 -0
  55. akshare/exceptions.py +43 -0
  56. akshare/file_fold/calendar.json +245 -2
  57. akshare/forex/__init__.py +0 -0
  58. akshare/forex/cons.py +192 -0
  59. akshare/forex/forex_em.py +149 -0
  60. akshare/fortune/fortune_500.py +1 -37
  61. akshare/fortune/fortune_bloomberg.py +6 -3
  62. akshare/fortune/fortune_forbes_500.py +3 -6
  63. akshare/fortune/fortune_hurun.py +2 -1
  64. akshare/fortune/fortune_xincaifu_500.py +17 -14
  65. akshare/fund/fund_announcement_em.py +145 -0
  66. akshare/fund/fund_aum_em.py +49 -35
  67. akshare/fund/fund_em.py +251 -220
  68. akshare/fund/fund_etf_em.py +44 -35
  69. akshare/fund/fund_etf_sina.py +75 -27
  70. akshare/fund/fund_etf_ths.py +2 -0
  71. akshare/fund/fund_fee_em.py +172 -0
  72. akshare/fund/fund_fhsp_em.py +42 -32
  73. akshare/fund/fund_init_em.py +8 -5
  74. akshare/fund/fund_lof_em.py +12 -19
  75. akshare/fund/fund_manager.py +25 -11
  76. akshare/fund/fund_overview_em.py +42 -0
  77. akshare/fund/fund_portfolio_em.py +23 -21
  78. akshare/fund/fund_position_lg.py +19 -8
  79. akshare/fund/fund_rank_em.py +2 -5
  80. akshare/fund/fund_rating.py +33 -12
  81. akshare/fund/fund_scale_em.py +24 -13
  82. akshare/fund/fund_scale_sina.py +20 -10
  83. akshare/fund/fund_xq.py +3 -2
  84. akshare/futures/cons.py +135 -39
  85. akshare/futures/cot.py +55 -56
  86. akshare/futures/futures_basis.py +49 -11
  87. akshare/futures/futures_comex_em.py +1 -0
  88. akshare/futures/futures_comm_ctp.py +1 -1
  89. akshare/futures/futures_contract_detail.py +59 -9
  90. akshare/futures/futures_daily_bar.py +66 -59
  91. akshare/futures/futures_foreign.py +14 -8
  92. akshare/futures/futures_hf_em.py +215 -61
  93. akshare/futures/futures_hist_em.py +191 -0
  94. akshare/futures/futures_hq_sina.py +5 -3
  95. akshare/futures/futures_index_ccidx.py +24 -82
  96. akshare/futures/futures_inventory_99.py +70 -272
  97. akshare/futures/futures_inventory_em.py +14 -11
  98. akshare/futures/futures_news_shmet.py +2 -2
  99. akshare/futures/futures_roll_yield.py +11 -24
  100. akshare/futures/futures_rule.py +7 -3
  101. akshare/futures/futures_rule_em.py +38 -0
  102. akshare/futures/futures_settlement_price_sgx.py +21 -6
  103. akshare/futures/futures_stock_js.py +0 -1
  104. akshare/futures/futures_to_spot.py +5 -6
  105. akshare/futures/futures_warehouse_receipt.py +48 -47
  106. akshare/futures/futures_zh_sina.py +3 -3
  107. akshare/futures/receipt.py +298 -165
  108. akshare/futures/requests_fun.py +16 -3
  109. akshare/futures/symbol_var.py +32 -13
  110. akshare/futures_derivative/cons.py +100 -103
  111. akshare/futures_derivative/futures_contract_info_cffex.py +55 -39
  112. akshare/futures_derivative/futures_contract_info_czce.py +2 -0
  113. akshare/futures_derivative/futures_contract_info_dce.py +43 -17
  114. akshare/futures_derivative/futures_contract_info_gfex.py +43 -31
  115. akshare/futures_derivative/futures_contract_info_ine.py +43 -34
  116. akshare/futures_derivative/futures_contract_info_shfe.py +3 -4
  117. akshare/futures_derivative/futures_cot_sina.py +8 -6
  118. akshare/futures_derivative/futures_index_sina.py +25 -13
  119. akshare/fx/cons.py +12 -7
  120. akshare/fx/fx_c_swap_cm.py +62 -0
  121. akshare/fx/fx_quote.py +3 -2
  122. akshare/fx/fx_quote_baidu.py +2 -1
  123. akshare/hf/__init__.py +1 -1
  124. akshare/hf/hf_sp500.py +8 -7
  125. akshare/index/cons.py +132 -28
  126. akshare/index/index_cni.py +7 -7
  127. akshare/index/index_cons.py +2 -2
  128. akshare/index/index_csindex.py +68 -0
  129. akshare/index/index_cx.py +20 -20
  130. akshare/index/index_drewry.py +17 -16
  131. akshare/index/index_eri.py +1 -0
  132. akshare/index/index_global_em.py +167 -0
  133. akshare/index/index_global_sina.py +82 -0
  134. akshare/index/index_kq_fz.py +17 -14
  135. akshare/index/index_kq_ss.py +1 -0
  136. akshare/index/index_option_qvix.py +351 -16
  137. akshare/index/index_research_sw.py +21 -21
  138. akshare/index/index_spot.py +9 -5
  139. akshare/index/index_stock_hk.py +5 -9
  140. akshare/index/index_stock_zh.py +111 -24
  141. akshare/index/index_stock_zh_csindex.py +3 -367
  142. akshare/index/index_sugar.py +18 -4
  143. akshare/index/index_sw.py +10 -2
  144. akshare/index/index_yw.py +53 -75
  145. akshare/index/index_zh_em.py +15 -82
  146. akshare/interest_rate/interbank_rate_em.py +0 -1
  147. akshare/movie/jm.js +0 -1
  148. akshare/news/__init__.py +1 -1
  149. akshare/news/news_baidu.py +395 -222
  150. akshare/news/news_stock.py +49 -16
  151. akshare/option/cons.py +2 -2
  152. akshare/option/option_commodity.py +341 -220
  153. akshare/option/option_commodity_sina.py +22 -26
  154. akshare/option/option_contract_info_ctp.py +63 -0
  155. akshare/option/option_current_sse.py +61 -0
  156. akshare/option/option_current_szse.py +84 -0
  157. akshare/option/option_czce.py +37 -9
  158. akshare/option/option_daily_stats_sse_szse.py +0 -1
  159. akshare/option/option_em.py +4 -8
  160. akshare/option/option_finance.py +60 -12
  161. akshare/option/option_finance_sina.py +7 -7
  162. akshare/option/option_lhb_em.py +0 -1
  163. akshare/option/option_margin.py +62 -0
  164. akshare/option/option_premium_analysis_em.py +58 -53
  165. akshare/option/option_risk_analysis_em.py +11 -8
  166. akshare/option/option_risk_indicator_sse.py +3 -4
  167. akshare/option/option_value_analysis_em.py +62 -55
  168. akshare/other/__init__.py +1 -1
  169. akshare/pro/__init__.py +0 -1
  170. akshare/pro/client.py +6 -4
  171. akshare/pro/cons.py +3 -2
  172. akshare/pro/data_pro.py +6 -5
  173. akshare/qdii/__init__.py +0 -0
  174. akshare/qdii/qdii_jsl.py +233 -0
  175. akshare/qhkc/__init__.py +1 -6
  176. akshare/qhkc/qhkc_api.py +64 -22
  177. akshare/qhkc_web/__init__.py +1 -6
  178. akshare/qhkc_web/qhkc_fund.py +10 -6
  179. akshare/qhkc_web/qhkc_index.py +28 -14
  180. akshare/qhkc_web/qhkc_tool.py +62 -59
  181. akshare/rate/__init__.py +1 -1
  182. akshare/rate/repo_rate.py +36 -32
  183. akshare/reits/__init__.py +1 -1
  184. akshare/reits/reits_basic.py +149 -13
  185. akshare/request.py +117 -0
  186. akshare/spot/__init__.py +1 -1
  187. akshare/spot/spot_hog_soozhu.py +165 -3
  188. akshare/spot/spot_sge.py +70 -9
  189. akshare/stock/cons.py +60 -23
  190. akshare/stock/stock_allotment_cninfo.py +8 -8
  191. akshare/stock/stock_ask_bid_em.py +3 -78
  192. akshare/stock/stock_board_concept_em.py +160 -35
  193. akshare/stock/stock_board_industry_em.py +163 -70
  194. akshare/stock/stock_dividend_cninfo.py +31 -17
  195. akshare/stock/stock_dzjy_em.py +347 -260
  196. akshare/stock/stock_fund_em.py +72 -64
  197. akshare/stock/stock_fund_hold.py +1 -2
  198. akshare/stock/stock_gsrl_em.py +1 -0
  199. akshare/stock/stock_hk_comparison_em.py +175 -0
  200. akshare/stock/stock_hk_famous.py +4 -5
  201. akshare/stock/stock_hk_fhpx_ths.py +2 -1
  202. akshare/stock/stock_hk_hot_rank_em.py +1 -0
  203. akshare/stock/stock_hk_sina.py +84 -36
  204. akshare/stock/stock_hold_control_cninfo.py +82 -0
  205. akshare/stock/stock_hold_control_em.py +0 -2
  206. akshare/stock/stock_hot_rank_em.py +4 -1
  207. akshare/stock/stock_hot_search_baidu.py +32 -19
  208. akshare/stock/stock_hot_up_em.py +4 -1
  209. akshare/stock/stock_hsgt_em.py +155 -0
  210. akshare/stock/stock_industry.py +1 -0
  211. akshare/stock/stock_industry_cninfo.py +1 -2
  212. akshare/stock/stock_info.py +6 -4
  213. akshare/stock/stock_info_em.py +17 -11
  214. akshare/stock/stock_intraday_em.py +4 -78
  215. akshare/stock/stock_intraday_sina.py +2 -2
  216. akshare/stock/stock_news_cx.py +39 -0
  217. akshare/stock/stock_profile_cninfo.py +7 -7
  218. akshare/stock/stock_profile_em.py +302 -0
  219. akshare/stock/stock_rank_forecast.py +6 -5
  220. akshare/stock/stock_repurchase_em.py +7 -2
  221. akshare/stock/stock_share_changes_cninfo.py +7 -5
  222. akshare/stock/stock_share_hold.py +24 -20
  223. akshare/stock/stock_stop.py +6 -6
  224. akshare/stock/stock_summary.py +153 -417
  225. akshare/stock/stock_us_famous.py +5 -6
  226. akshare/stock/stock_us_js.py +3 -2
  227. akshare/stock/stock_us_pink.py +38 -27
  228. akshare/stock/stock_us_sina.py +7 -3
  229. akshare/stock/stock_weibo_nlp.py +18 -20
  230. akshare/stock/stock_xq.py +24 -22
  231. akshare/stock/stock_zh_a_sina.py +8 -5
  232. akshare/stock/stock_zh_a_special.py +240 -243
  233. akshare/stock/stock_zh_a_tick_tx.py +11 -3
  234. akshare/stock/stock_zh_ah_tx.py +23 -26
  235. akshare/stock/stock_zh_b_sina.py +2 -2
  236. akshare/stock/stock_zh_comparison_em.py +250 -0
  237. akshare/stock/stock_zh_kcb_sina.py +67 -64
  238. akshare/stock_a/__init__.py +0 -0
  239. akshare/stock_a/stock_board_concept_name_em.py +170 -0
  240. akshare/stock_a/stock_individual_fund_flow_rank.py +258 -0
  241. akshare/stock_a/stock_zh_a_spot.py +212 -0
  242. akshare/stock_feature/cons.py +1 -0
  243. akshare/stock_feature/stock_a_indicator.py +9 -54
  244. akshare/stock_feature/stock_a_pe_and_pb.py +23 -5
  245. akshare/stock_feature/stock_account_em.py +0 -1
  246. akshare/stock_feature/stock_all_pb.py +2 -1
  247. akshare/stock_feature/stock_analyst_em.py +36 -30
  248. akshare/stock_feature/stock_board_concept_ths.py +328 -0
  249. akshare/stock_feature/stock_board_industry_ths.py +57 -2
  250. akshare/stock_feature/stock_buffett_index_lg.py +10 -8
  251. akshare/stock_feature/stock_classify_sina.py +3 -6
  252. akshare/stock_feature/stock_comment_em.py +81 -144
  253. akshare/stock_feature/stock_congestion_lg.py +2 -1
  254. akshare/stock_feature/stock_cyq_em.py +5 -11
  255. akshare/stock_feature/stock_disclosure_cninfo.py +6 -6
  256. akshare/stock_feature/stock_dxsyl_em.py +121 -74
  257. akshare/stock_feature/stock_ebs_lg.py +5 -4
  258. akshare/stock_feature/stock_esg_sina.py +29 -7
  259. akshare/stock_feature/stock_fhps_em.py +2 -1
  260. akshare/stock_feature/stock_fhps_ths.py +15 -7
  261. akshare/stock_feature/stock_fund_flow.py +30 -22
  262. akshare/stock_feature/stock_gddh_em.py +19 -11
  263. akshare/stock_feature/stock_gdfx_em.py +226 -113
  264. akshare/stock_feature/stock_gdhs.py +75 -50
  265. akshare/stock_feature/stock_gdzjc_em.py +21 -10
  266. akshare/stock_feature/stock_gpzy_em.py +78 -46
  267. akshare/stock_feature/stock_gxl_lg.py +3 -2
  268. akshare/stock_feature/stock_hist_em.py +137 -234
  269. akshare/stock_feature/stock_hist_tx.py +13 -10
  270. akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
  271. akshare/stock_feature/stock_hot_xq.py +4 -6
  272. akshare/stock_feature/stock_hsgt_em.py +269 -97
  273. akshare/stock_feature/stock_hsgt_exchange_rate.py +115 -87
  274. akshare/stock_feature/stock_hsgt_min_em.py +13 -16
  275. akshare/stock_feature/stock_info.py +7 -80
  276. akshare/stock_feature/stock_inner_trade_xq.py +38 -31
  277. akshare/stock_feature/stock_jgdy_em.py +43 -40
  278. akshare/stock_feature/stock_lhb_em.py +119 -3
  279. akshare/stock_feature/stock_margin_em.py +0 -1
  280. akshare/stock_feature/stock_margin_sse.py +0 -2
  281. akshare/stock_feature/stock_pankou_em.py +71 -35
  282. akshare/stock_feature/stock_qsjy_em.py +13 -4
  283. akshare/stock_feature/stock_report_em.py +151 -7
  284. akshare/stock_feature/stock_research_report_em.py +55 -20
  285. akshare/stock_feature/stock_sy_em.py +20 -15
  286. akshare/stock_feature/stock_technology_ths.py +122 -77
  287. akshare/stock_feature/stock_tfp_em.py +2 -1
  288. akshare/stock_feature/stock_three_report_em.py +21 -5
  289. akshare/stock_feature/stock_ttm_lyr.py +18 -9
  290. akshare/stock_feature/stock_value_em.py +83 -0
  291. akshare/stock_feature/stock_yjbb_em.py +58 -32
  292. akshare/stock_feature/stock_yjyg_cninfo.py +6 -2
  293. akshare/stock_feature/stock_yjyg_em.py +1 -1
  294. akshare/stock_feature/stock_yzxdr_em.py +24 -22
  295. akshare/stock_feature/stock_zdhtmx_em.py +20 -6
  296. akshare/stock_feature/stock_zh_vote_baidu.py +4 -1
  297. akshare/stock_feature/stock_ztb_em.py +39 -24
  298. akshare/stock_fundamental/__init__.py +1 -1
  299. akshare/stock_fundamental/stock_basic_info_xq.py +119 -0
  300. akshare/stock_fundamental/{stock_finance_hk.py → stock_finance_hk_em.py} +23 -16
  301. akshare/stock_fundamental/{stock_finance.py → stock_finance_sina.py} +60 -7
  302. akshare/stock_fundamental/stock_finance_ths.py +524 -57
  303. akshare/stock_fundamental/stock_finance_us_em.py +268 -0
  304. akshare/stock_fundamental/stock_gbjg_em.py +80 -0
  305. akshare/stock_fundamental/stock_hold.py +26 -17
  306. akshare/stock_fundamental/stock_ipo_declare.py +1 -0
  307. akshare/stock_fundamental/stock_kcb_detail_sse.py +10 -10
  308. akshare/stock_fundamental/stock_kcb_sse.py +26 -25
  309. akshare/stock_fundamental/stock_notice.py +12 -3
  310. akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
  311. akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +64 -41
  312. akshare/stock_fundamental/stock_profit_forecast_ths.py +86 -35
  313. akshare/stock_fundamental/stock_recommend.py +20 -4
  314. akshare/stock_fundamental/stock_zygc.py +5 -62
  315. akshare/utils/context.py +43 -0
  316. akshare/utils/demjson.py +2009 -1338
  317. akshare/utils/func.py +49 -2
  318. akshare/utils/multi_decrypt.py +53 -0
  319. akshare/utils/token_process.py +6 -5
  320. {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/METADATA +54 -80
  321. akshare-1.17.99.dist-info/RECORD +409 -0
  322. {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/WHEEL +1 -1
  323. {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info/licenses}/LICENSE +1 -1
  324. tests/test_func.py +3 -5
  325. akshare/bond/bond_futures.py +0 -50
  326. akshare/bond/bond_investing.py +0 -139
  327. akshare/crypto/crypto_hist_investing.py +0 -249
  328. akshare/fund/fund_announcement.py +0 -56
  329. akshare/futures/futures_international.py +0 -170
  330. akshare/futures/futures_news_baidu.py +0 -54
  331. akshare/futures/inventory_data.py +0 -100
  332. akshare/futures_derivative/futures_index_price_nh.py +0 -61
  333. akshare/futures_derivative/futures_index_return_nh.py +0 -47
  334. akshare/futures_derivative/futures_index_volatility_nh.py +0 -53
  335. akshare/futures_derivative/futures_other_index_nh.py +0 -145
  336. akshare/index/index_fear_greed_funddb.py +0 -78
  337. akshare/index/index_investing.py +0 -232
  338. akshare/sport/__init__.py +0 -6
  339. akshare/sport/sport_olympic.py +0 -27
  340. akshare/stock_feature/stock_wencai.py +0 -104
  341. akshare/stock_fundamental/stock_mda_ym.py +0 -40
  342. akshare-1.14.49.dist-info/RECORD +0 -387
  343. {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
- http://data.eastmoney.com/jgdy/tj.html
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 = "http://datacenter-web.eastmoney.com/api/data/v1/get"
25
+ url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
25
26
  params = {
26
- 'sortColumns': 'NOTICE_DATE,SUM,RECEIVE_START_DATE,SECURITY_CODE',
27
- 'sortTypes': '-1,-1,-1,1',
28
- 'pageSize': '500',
29
- 'pageNumber': '1',
30
- 'reportName': 'RPT_ORG_SURVEYNEW',
31
- 'columns': 'ALL',
32
- 'quoteColumns': 'f2~01~SECURITY_CODE~CLOSE_PRICE,f3~01~SECURITY_CODE~CHANGE_RATE',
33
- 'source': 'WEB',
34
- 'client': 'WEB',
35
- 'filter': f"""(NUMBERNEW="1")(IS_SOURCE="1")(RECEIVE_START_DATE>'{'-'.join([date[:4], date[4:6], date[6:]])}')"""
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['result']['pages']
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['result']['data'])
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['最新价'] = pd.to_numeric(big_df['最新价'], errors="coerce")
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_datetime(big_df['接待日期']).dt.date
103
- big_df['公告日期'] = pd.to_datetime(big_df['公告日期']).dt.date
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 = "20220101") -> pd.DataFrame:
108
+ def stock_jgdy_detail_em(date: str = "20241211") -> pd.DataFrame:
108
109
  """
109
110
  东方财富网-数据中心-特色数据-机构调研-机构调研详细
110
- http://data.eastmoney.com/jgdy/xx.html
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 = "http://datacenter-web.eastmoney.com/api/data/v1/get"
117
+ url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
117
118
  params = {
118
- 'sortColumns': 'NOTICE_DATE,RECEIVE_START_DATE,SECURITY_CODE,NUMBERNEW',
119
- 'sortTypes': '-1,-1,1,-1',
120
- 'pageSize': '50000',
121
- 'pageNumber': '1',
122
- 'reportName': 'RPT_ORG_SURVEY',
123
- 'columns': 'SECUCODE,SECURITY_CODE,SECURITY_NAME_ABBR,NOTICE_DATE,RECEIVE_START_DATE,RECEIVE_OBJECT,RECEIVE_PLACE,RECEIVE_WAY_EXPLAIN,INVESTIGATORS,RECEPTIONIST,ORG_TYPE',
124
- 'quoteColumns': 'f2~01~SECURITY_CODE~CLOSE_PRICE,f3~01~SECURITY_CODE~CHANGE_RATE',
125
- 'source': 'WEB',
126
- 'client': 'WEB',
127
- 'filter': f"""(IS_SOURCE="1")(RECEIVE_START_DATE>'{'-'.join([date[:4], date[4:6], date[6:]])}')"""
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['result']['pages']
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['result']['data'])
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['最新价'] = pd.to_numeric(big_df['最新价'], errors="coerce")
175
- big_df['涨跌幅'] = pd.to_numeric(big_df['涨跌幅'], errors="coerce")
176
- big_df['调研日期'] = pd.to_datetime(big_df['调研日期']).dt.date
177
- big_df['公告日期'] = pd.to_datetime(big_df['公告日期']).dt.date
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="20230403", end_date="20230417"
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)
@@ -33,7 +33,6 @@ def stock_margin_account_info() -> pd.DataFrame:
33
33
  "p": "1",
34
34
  "pageNo": "1",
35
35
  "pageNum": "1",
36
- "_": "1718357149317",
37
36
  }
38
37
  r = requests.get(url=url, params=params)
39
38
  data_json = r.json()
@@ -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 {'火箭发射', '快速反弹', '大笔买入', '封涨停板', '打开跌停板', '有大买盘', '竞价上涨', '高开5日线', '向上缺口', '60日新高', '60日大幅上涨', '加速下跌', '高台跳水', '大笔卖出', '封跌停板', '打开涨停板', '有大卖盘', '竞价下跌', '低开5日线', '向下缺口', '60日新低', '60日大幅下跌'}
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 = "http://push2ex.eastmoney.com/getAllStockChanges"
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 = "http://push2ex.eastmoney.com/getAllBKChanges"
90
+ url = "https://push2ex.eastmoney.com/getAllBKChanges"
89
91
  params = {
90
- 'ut': '7eea3edcaed734bea9cbfc24409ed989',
91
- 'dpt': 'wzchanges',
92
- 'pageindex': '0',
93
- 'pagesize': '5000',
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['data']['allbk'])
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['板块异动最频繁个股及所属类型-买卖方向'] = [item['m'] for item in data_df['ms']]
110
- data_df['板块异动最频繁个股及所属类型-股票代码'] = [item['c'] for item in data_df['ms']]
111
- data_df['板块异动最频繁个股及所属类型-股票名称'] = [item['n'] for item in data_df['ms']]
112
- data_df['板块异动最频繁个股及所属类型-买卖方向'] = data_df['板块异动最频繁个股及所属类型-买卖方向'].map({0: "大笔买入", 1: "大笔卖出"})
113
- data_df = data_df[[
114
- '板块名称',
115
- '涨跌幅',
116
- '主力净流入',
117
- '板块异动总次数',
118
- '板块异动最频繁个股及所属类型-股票代码',
119
- '板块异动最频繁个股及所属类型-股票名称',
120
- '板块异动最频繁个股及所属类型-买卖方向',
121
- "板块具体异动类型列表及出现次数",
122
- ]]
123
- data_df['涨跌幅'] = pd.to_numeric(data_df['涨跌幅'], errors="coerce")
124
- data_df['主力净流入'] = pd.to_numeric(data_df['主力净流入'], errors="coerce")
125
- data_df['板块异动总次数'] = pd.to_numeric(data_df['板块异动总次数'], errors="coerce")
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 {'火箭发射', '快速反弹', '大笔买入', '封涨停板', '打开跌停板', '有大买盘', '竞价上涨', '高开5日线', '向上缺口', '60日新高', '60日大幅上涨', '加速下跌', '高台跳水', '大笔卖出', '封跌停板', '打开涨停板', '有大卖盘', '竞价下跌', '低开5日线', '向下缺口', '60日新低', '60日大幅下跌'}:
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(temp_df["当年累计净利润-累计净利润"])
75
- temp_df["当年累计净利润-同比增长"] = pd.to_numeric(temp_df["当年累计净利润-同比增长"])
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(temp_df["当年累计营业收入-累计营业收入"])
80
- temp_df["当年累计营业收入-同比增长"] = pd.to_numeric(temp_df["当年累计营业收入-同比增长"])
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