akshare 1.13.46__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 (388) hide show
  1. akshare/__init__.py +757 -161
  2. akshare/air/air_hebei.py +79 -53
  3. akshare/air/air_zhenqi.py +3 -7
  4. akshare/air/cons.py +1 -0
  5. akshare/air/crypto.js +1 -1
  6. akshare/air/outcrypto.js +1 -1
  7. akshare/air/sunrise_tad.py +32 -17
  8. akshare/article/cons.py +1 -0
  9. akshare/article/epu_index.py +4 -3
  10. akshare/article/ff_factor.py +19 -8
  11. akshare/article/fred_md.py +4 -1
  12. akshare/article/risk_rv.py +3 -8
  13. akshare/bank/bank_cbirc_2020.py +11 -11
  14. akshare/bank/cons.py +7 -6
  15. akshare/bond/bond_buy_back_em.py +228 -0
  16. akshare/bond/bond_cb_sina.py +1 -0
  17. akshare/bond/bond_cb_ths.py +17 -9
  18. akshare/bond/bond_cbond.py +19 -14
  19. akshare/bond/bond_china.py +38 -39
  20. akshare/bond/bond_china_money.py +75 -48
  21. akshare/bond/bond_convert.py +10 -9
  22. akshare/bond/bond_em.py +37 -17
  23. akshare/bond/bond_info_cm.py +28 -8
  24. akshare/bond/bond_issue_cninfo.py +73 -30
  25. akshare/bond/bond_summary.py +38 -37
  26. akshare/bond/bond_zh_cov.py +31 -40
  27. akshare/bond/bond_zh_sina.py +61 -51
  28. akshare/bond/cons.py +14 -11
  29. akshare/cal/__init__.py +0 -0
  30. akshare/cal/rv.py +170 -0
  31. akshare/cost/cost_living.py +7 -5
  32. akshare/crypto/__init__.py +1 -1
  33. akshare/crypto/crypto_bitcoin_cme.py +9 -7
  34. akshare/crypto/crypto_hold.py +4 -2
  35. akshare/currency/currency.py +1 -0
  36. akshare/currency/currency_china_bank_sina.py +11 -6
  37. akshare/currency/currency_safe.py +7 -6
  38. akshare/data/__init__.py +1 -1
  39. akshare/data/cninfo.js +1 -1
  40. akshare/datasets.py +10 -21
  41. akshare/economic/cons.py +10 -3
  42. akshare/economic/macro_australia.py +74 -69
  43. akshare/economic/macro_bank.py +95 -653
  44. akshare/economic/macro_canada.py +92 -81
  45. akshare/economic/macro_china.py +163 -117
  46. akshare/economic/macro_china_hk.py +0 -1
  47. akshare/economic/macro_china_nbs.py +24 -7
  48. akshare/economic/macro_euro.py +103 -56
  49. akshare/economic/macro_finance_ths.py +135 -0
  50. akshare/economic/macro_germany.py +1 -1
  51. akshare/economic/macro_info_ws.py +100 -0
  52. akshare/economic/macro_japan.py +0 -1
  53. akshare/economic/macro_other.py +1 -6
  54. akshare/economic/macro_swiss.py +2 -3
  55. akshare/economic/macro_uk.py +1 -1
  56. akshare/economic/macro_usa.py +7 -9
  57. akshare/economic/marco_cnbs.py +11 -6
  58. akshare/energy/energy_carbon.py +94 -126
  59. akshare/energy/energy_oil_em.py +1 -2
  60. akshare/event/cons.py +1 -0
  61. akshare/event/migration.py +3 -2
  62. akshare/exceptions.py +43 -0
  63. akshare/file_fold/calendar.json +245 -2
  64. akshare/forex/__init__.py +0 -0
  65. akshare/forex/cons.py +192 -0
  66. akshare/forex/forex_em.py +149 -0
  67. akshare/fortune/fortune_500.py +15 -48
  68. akshare/fortune/fortune_bloomberg.py +6 -3
  69. akshare/fortune/fortune_forbes_500.py +3 -6
  70. akshare/fortune/fortune_hurun.py +2 -1
  71. akshare/fortune/fortune_xincaifu_500.py +17 -14
  72. akshare/fund/fund_amac.py +38 -15
  73. akshare/fund/fund_announcement_em.py +145 -0
  74. akshare/fund/fund_aum_em.py +49 -35
  75. akshare/fund/fund_em.py +251 -220
  76. akshare/fund/fund_etf_em.py +44 -35
  77. akshare/fund/fund_etf_sina.py +76 -27
  78. akshare/fund/fund_etf_ths.py +95 -0
  79. akshare/fund/fund_fee_em.py +172 -0
  80. akshare/fund/fund_fhsp_em.py +42 -32
  81. akshare/fund/fund_init_em.py +8 -5
  82. akshare/fund/fund_lof_em.py +12 -19
  83. akshare/fund/fund_manager.py +25 -11
  84. akshare/fund/fund_overview_em.py +42 -0
  85. akshare/fund/fund_portfolio_em.py +78 -66
  86. akshare/fund/fund_position_lg.py +19 -8
  87. akshare/fund/fund_rank_em.py +90 -84
  88. akshare/fund/fund_rating.py +33 -12
  89. akshare/fund/fund_report_cninfo.py +63 -48
  90. akshare/fund/fund_scale_em.py +24 -13
  91. akshare/fund/fund_scale_sina.py +20 -10
  92. akshare/fund/fund_xq.py +3 -2
  93. akshare/futures/cons.py +141 -46
  94. akshare/futures/cot.py +89 -88
  95. akshare/futures/futures_basis.py +99 -33
  96. akshare/futures/futures_comex_em.py +1 -0
  97. akshare/futures/futures_comm_ctp.py +13 -2
  98. akshare/futures/futures_contract_detail.py +59 -9
  99. akshare/futures/futures_daily_bar.py +75 -62
  100. akshare/futures/futures_foreign.py +14 -8
  101. akshare/futures/futures_hf_em.py +215 -61
  102. akshare/futures/futures_hist_em.py +191 -0
  103. akshare/futures/futures_hq_sina.py +79 -61
  104. akshare/futures/futures_index_ccidx.py +24 -82
  105. akshare/futures/futures_inventory_99.py +70 -272
  106. akshare/futures/futures_inventory_em.py +14 -11
  107. akshare/futures/futures_news_shmet.py +2 -2
  108. akshare/futures/futures_roll_yield.py +11 -24
  109. akshare/futures/futures_rule.py +7 -3
  110. akshare/futures/futures_rule_em.py +38 -0
  111. akshare/futures/futures_settlement_price_sgx.py +21 -6
  112. akshare/futures/futures_stock_js.py +1 -2
  113. akshare/futures/futures_to_spot.py +43 -39
  114. akshare/futures/futures_warehouse_receipt.py +53 -48
  115. akshare/futures/futures_zh_sina.py +4 -4
  116. akshare/futures/receipt.py +298 -165
  117. akshare/futures/requests_fun.py +16 -3
  118. akshare/futures/symbol_var.py +32 -13
  119. akshare/futures_derivative/cons.py +100 -103
  120. akshare/futures_derivative/futures_contract_info_cffex.py +55 -39
  121. akshare/futures_derivative/futures_contract_info_czce.py +2 -0
  122. akshare/futures_derivative/futures_contract_info_dce.py +43 -17
  123. akshare/futures_derivative/futures_contract_info_gfex.py +43 -31
  124. akshare/futures_derivative/futures_contract_info_ine.py +43 -34
  125. akshare/futures_derivative/futures_contract_info_shfe.py +7 -8
  126. akshare/futures_derivative/futures_cot_sina.py +28 -19
  127. akshare/futures_derivative/futures_index_sina.py +25 -13
  128. akshare/fx/cons.py +12 -7
  129. akshare/fx/currency_investing.py +19 -285
  130. akshare/fx/fx_c_swap_cm.py +62 -0
  131. akshare/fx/fx_quote.py +3 -2
  132. akshare/fx/fx_quote_baidu.py +2 -1
  133. akshare/hf/__init__.py +1 -1
  134. akshare/hf/hf_sp500.py +8 -7
  135. akshare/index/cons.py +132 -28
  136. akshare/index/index_cflp.py +29 -26
  137. akshare/index/index_cni.py +89 -91
  138. akshare/index/index_cons.py +26 -10
  139. akshare/index/index_csindex.py +68 -0
  140. akshare/index/index_cx.py +263 -62
  141. akshare/index/index_drewry.py +17 -16
  142. akshare/index/index_eri.py +1 -0
  143. akshare/index/index_global_em.py +167 -0
  144. akshare/index/index_global_sina.py +82 -0
  145. akshare/index/index_kq_fz.py +17 -14
  146. akshare/index/index_kq_ss.py +1 -0
  147. akshare/index/index_option_qvix.py +351 -16
  148. akshare/index/index_research_sw.py +38 -38
  149. akshare/index/index_spot.py +9 -5
  150. akshare/index/index_stock_hk.py +6 -10
  151. akshare/index/index_stock_us_sina.py +1 -1
  152. akshare/index/index_stock_zh.py +193 -101
  153. akshare/index/index_stock_zh_csindex.py +15 -369
  154. akshare/index/index_sugar.py +18 -4
  155. akshare/index/index_sw.py +62 -34
  156. akshare/index/index_yw.py +53 -75
  157. akshare/index/index_zh_em.py +15 -82
  158. akshare/interest_rate/interbank_rate_em.py +14 -10
  159. akshare/movie/artist_yien.py +32 -5
  160. akshare/movie/jm.js +0 -1
  161. akshare/movie/movie_yien.py +92 -18
  162. akshare/movie/video_yien.py +28 -5
  163. akshare/news/__init__.py +1 -1
  164. akshare/news/news_baidu.py +395 -220
  165. akshare/news/news_cctv.py +38 -38
  166. akshare/news/news_stock.py +49 -13
  167. akshare/nlp/nlp_interface.py +7 -8
  168. akshare/option/cons.py +12 -12
  169. akshare/option/option_comm_qihuo.py +86 -0
  170. akshare/option/option_commodity.py +355 -211
  171. akshare/option/option_commodity_sina.py +22 -26
  172. akshare/option/option_contract_info_ctp.py +63 -0
  173. akshare/option/option_current_sse.py +61 -0
  174. akshare/option/option_current_szse.py +84 -0
  175. akshare/option/option_czce.py +37 -9
  176. akshare/option/option_daily_stats_sse_szse.py +145 -0
  177. akshare/option/option_em.py +4 -8
  178. akshare/option/option_finance.py +60 -12
  179. akshare/option/option_finance_sina.py +28 -26
  180. akshare/option/option_lhb_em.py +62 -57
  181. akshare/option/option_margin.py +62 -0
  182. akshare/option/option_premium_analysis_em.py +58 -53
  183. akshare/option/option_risk_analysis_em.py +11 -8
  184. akshare/option/option_risk_indicator_sse.py +18 -16
  185. akshare/option/option_value_analysis_em.py +62 -55
  186. akshare/other/__init__.py +1 -1
  187. akshare/other/other_car_cpca.py +20 -20
  188. akshare/pro/__init__.py +0 -1
  189. akshare/pro/client.py +6 -4
  190. akshare/pro/cons.py +3 -2
  191. akshare/pro/data_pro.py +6 -5
  192. akshare/qdii/__init__.py +0 -0
  193. akshare/qdii/qdii_jsl.py +233 -0
  194. akshare/qhkc/__init__.py +1 -6
  195. akshare/qhkc/qhkc_api.py +64 -22
  196. akshare/qhkc_web/__init__.py +1 -6
  197. akshare/qhkc_web/qhkc_fund.py +10 -6
  198. akshare/qhkc_web/qhkc_index.py +28 -14
  199. akshare/qhkc_web/qhkc_tool.py +62 -59
  200. akshare/rate/__init__.py +1 -1
  201. akshare/rate/repo_rate.py +36 -32
  202. akshare/reits/__init__.py +1 -1
  203. akshare/reits/reits_basic.py +149 -13
  204. akshare/request.py +117 -0
  205. akshare/spot/__init__.py +1 -1
  206. akshare/spot/spot_hog_soozhu.py +232 -0
  207. akshare/spot/spot_price_qh.py +121 -0
  208. akshare/spot/spot_sge.py +70 -9
  209. akshare/stock/cons.py +60 -23
  210. akshare/stock/stock_allotment_cninfo.py +10 -9
  211. akshare/stock/stock_ask_bid_em.py +3 -78
  212. akshare/stock/stock_board_concept_em.py +160 -35
  213. akshare/stock/stock_board_industry_em.py +163 -70
  214. akshare/stock/stock_cg_equity_mortgage.py +15 -11
  215. akshare/stock/stock_cg_guarantee.py +41 -51
  216. akshare/stock/stock_cg_lawsuit.py +36 -35
  217. akshare/stock/stock_dividend_cninfo.py +36 -16
  218. akshare/stock/stock_dzjy_em.py +347 -260
  219. akshare/stock/stock_fund_em.py +73 -64
  220. akshare/stock/stock_fund_hold.py +1 -2
  221. akshare/stock/stock_gsrl_em.py +1 -0
  222. akshare/stock/stock_hk_comparison_em.py +175 -0
  223. akshare/stock/stock_hk_famous.py +107 -0
  224. akshare/stock/stock_hk_fhpx_ths.py +2 -1
  225. akshare/stock/stock_hk_hot_rank_em.py +1 -0
  226. akshare/stock/stock_hk_sina.py +91 -42
  227. akshare/stock/stock_hold_control_cninfo.py +100 -15
  228. akshare/stock/stock_hold_control_em.py +4 -5
  229. akshare/stock/stock_hold_num_cninfo.py +18 -12
  230. akshare/stock/stock_hot_rank_em.py +4 -1
  231. akshare/stock/stock_hot_search_baidu.py +32 -19
  232. akshare/stock/stock_hot_up_em.py +4 -1
  233. akshare/stock/stock_hsgt_em.py +155 -0
  234. akshare/stock/stock_industry.py +1 -0
  235. akshare/stock/stock_industry_cninfo.py +25 -20
  236. akshare/stock/stock_industry_pe_cninfo.py +45 -31
  237. akshare/stock/stock_industry_sw.py +5 -9
  238. akshare/stock/stock_info.py +31 -19
  239. akshare/stock/stock_info_em.py +17 -11
  240. akshare/stock/stock_intraday_em.py +9 -80
  241. akshare/stock/stock_intraday_sina.py +2 -2
  242. akshare/stock/stock_ipo_summary_cninfo.py +25 -10
  243. akshare/stock/stock_new_cninfo.py +32 -19
  244. akshare/stock/stock_news_cx.py +39 -0
  245. akshare/stock/stock_profile_cninfo.py +9 -8
  246. akshare/stock/stock_profile_em.py +302 -0
  247. akshare/stock/stock_rank_forecast.py +8 -6
  248. akshare/stock/stock_repurchase_em.py +7 -2
  249. akshare/stock/stock_share_changes_cninfo.py +18 -14
  250. akshare/stock/stock_share_hold.py +24 -20
  251. akshare/stock/stock_stop.py +6 -6
  252. akshare/stock/stock_summary.py +153 -417
  253. akshare/stock/stock_us_famous.py +19 -11
  254. akshare/stock/stock_us_js.py +3 -2
  255. akshare/stock/stock_us_pink.py +38 -27
  256. akshare/stock/stock_us_sina.py +15 -12
  257. akshare/stock/stock_weibo_nlp.py +18 -20
  258. akshare/stock/stock_xq.py +36 -9
  259. akshare/stock/stock_zh_a_sina.py +58 -80
  260. akshare/stock/stock_zh_a_special.py +240 -243
  261. akshare/stock/stock_zh_a_tick_tx.py +11 -3
  262. akshare/stock/stock_zh_ah_tx.py +23 -26
  263. akshare/stock/stock_zh_b_sina.py +32 -55
  264. akshare/stock/stock_zh_comparison_em.py +250 -0
  265. akshare/stock/stock_zh_kcb_report.py +11 -9
  266. akshare/stock/stock_zh_kcb_sina.py +67 -64
  267. akshare/stock_a/__init__.py +0 -0
  268. akshare/stock_a/stock_board_concept_name_em.py +170 -0
  269. akshare/stock_a/stock_individual_fund_flow_rank.py +258 -0
  270. akshare/stock_a/stock_zh_a_spot.py +212 -0
  271. akshare/stock_feature/cons.py +1 -0
  272. akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
  273. akshare/stock_feature/stock_a_high_low.py +5 -2
  274. akshare/stock_feature/stock_a_indicator.py +15 -57
  275. akshare/stock_feature/stock_a_pe_and_pb.py +39 -9
  276. akshare/stock_feature/stock_account_em.py +0 -1
  277. akshare/stock_feature/stock_all_pb.py +2 -1
  278. akshare/stock_feature/stock_analyst_em.py +36 -30
  279. akshare/stock_feature/stock_board_concept_ths.py +144 -252
  280. akshare/stock_feature/stock_board_industry_ths.py +137 -401
  281. akshare/stock_feature/stock_buffett_index_lg.py +10 -8
  282. akshare/stock_feature/stock_classify_sina.py +3 -6
  283. akshare/stock_feature/stock_comment_em.py +81 -144
  284. akshare/stock_feature/stock_concept_futu.py +183 -0
  285. akshare/stock_feature/stock_congestion_lg.py +2 -1
  286. akshare/stock_feature/stock_cyq_em.py +5 -11
  287. akshare/stock_feature/stock_disclosure_cninfo.py +20 -10
  288. akshare/stock_feature/stock_dxsyl_em.py +121 -74
  289. akshare/stock_feature/stock_ebs_lg.py +5 -4
  290. akshare/stock_feature/stock_esg_sina.py +33 -15
  291. akshare/stock_feature/stock_fhps_em.py +62 -26
  292. akshare/stock_feature/stock_fhps_ths.py +34 -7
  293. akshare/stock_feature/stock_fund_flow.py +38 -25
  294. akshare/stock_feature/stock_gddh_em.py +19 -11
  295. akshare/stock_feature/stock_gdfx_em.py +226 -113
  296. akshare/stock_feature/stock_gdhs.py +75 -50
  297. akshare/stock_feature/stock_gdzjc_em.py +21 -10
  298. akshare/stock_feature/stock_gpzy_em.py +78 -46
  299. akshare/stock_feature/stock_gxl_lg.py +3 -2
  300. akshare/stock_feature/stock_hist_em.py +158 -237
  301. akshare/stock_feature/stock_hist_tx.py +13 -10
  302. akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
  303. akshare/stock_feature/stock_hot_xq.py +4 -6
  304. akshare/stock_feature/stock_hsgt_em.py +269 -97
  305. akshare/stock_feature/stock_hsgt_exchange_rate.py +115 -87
  306. akshare/stock_feature/stock_hsgt_min_em.py +13 -16
  307. akshare/stock_feature/stock_info.py +8 -81
  308. akshare/stock_feature/stock_inner_trade_xq.py +38 -31
  309. akshare/stock_feature/stock_irm_cninfo.py +32 -9
  310. akshare/stock_feature/stock_jgdy_em.py +43 -40
  311. akshare/stock_feature/stock_lh_yybpm.py +36 -37
  312. akshare/stock_feature/stock_lhb_em.py +165 -35
  313. akshare/stock_feature/stock_lhb_sina.py +93 -46
  314. akshare/stock_feature/stock_margin_em.py +101 -0
  315. akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -17
  316. akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +7 -7
  317. akshare/stock_feature/stock_market_legu.py +4 -2
  318. akshare/stock_feature/stock_pankou_em.py +71 -35
  319. akshare/stock_feature/stock_qsjy_em.py +13 -4
  320. akshare/stock_feature/stock_report_em.py +152 -8
  321. akshare/stock_feature/stock_research_report_em.py +55 -20
  322. akshare/stock_feature/stock_sns_sseinfo.py +15 -12
  323. akshare/stock_feature/stock_sy_em.py +20 -15
  324. akshare/stock_feature/stock_technology_ths.py +152 -120
  325. akshare/stock_feature/stock_tfp_em.py +37 -14
  326. akshare/stock_feature/stock_three_report_em.py +120 -78
  327. akshare/stock_feature/stock_ttm_lyr.py +18 -9
  328. akshare/stock_feature/stock_value_em.py +83 -0
  329. akshare/stock_feature/stock_yjbb_em.py +58 -32
  330. akshare/stock_feature/stock_yjyg_cninfo.py +6 -2
  331. akshare/stock_feature/stock_yjyg_em.py +1 -1
  332. akshare/stock_feature/stock_yzxdr_em.py +24 -22
  333. akshare/stock_feature/stock_zdhtmx_em.py +20 -6
  334. akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
  335. akshare/stock_feature/stock_zh_vote_baidu.py +4 -1
  336. akshare/stock_feature/stock_ztb_em.py +39 -24
  337. akshare/stock_fundamental/__init__.py +1 -1
  338. akshare/stock_fundamental/stock_basic_info_xq.py +119 -0
  339. akshare/stock_fundamental/{stock_finance_hk.py → stock_finance_hk_em.py} +23 -16
  340. akshare/stock_fundamental/{stock_finance.py → stock_finance_sina.py} +203 -59
  341. akshare/stock_fundamental/stock_finance_ths.py +524 -57
  342. akshare/stock_fundamental/stock_finance_us_em.py +268 -0
  343. akshare/stock_fundamental/stock_gbjg_em.py +80 -0
  344. akshare/stock_fundamental/stock_hold.py +26 -17
  345. akshare/stock_fundamental/stock_ipo_declare.py +1 -0
  346. akshare/stock_fundamental/stock_kcb_detail_sse.py +10 -10
  347. akshare/stock_fundamental/stock_kcb_sse.py +26 -25
  348. akshare/stock_fundamental/stock_notice.py +41 -18
  349. akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
  350. akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +64 -41
  351. akshare/stock_fundamental/stock_profit_forecast_ths.py +86 -35
  352. akshare/stock_fundamental/stock_recommend.py +20 -4
  353. akshare/stock_fundamental/stock_register_em.py +448 -0
  354. akshare/stock_fundamental/stock_zygc.py +5 -62
  355. akshare/tool/trade_date_hist.py +1 -1
  356. akshare/utils/context.py +43 -0
  357. akshare/utils/demjson.py +2009 -1338
  358. akshare/utils/func.py +49 -2
  359. akshare/utils/multi_decrypt.py +53 -0
  360. akshare/utils/token_process.py +6 -5
  361. akshare/utils/tqdm.py +13 -3
  362. {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/METADATA +56 -86
  363. akshare-1.17.99.dist-info/RECORD +409 -0
  364. {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/WHEEL +1 -1
  365. {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info/licenses}/LICENSE +1 -1
  366. tests/test_func.py +3 -5
  367. akshare/bond/bond_futures.py +0 -50
  368. akshare/bond/bond_investing.py +0 -139
  369. akshare/crypto/crypto_hist_investing.py +0 -249
  370. akshare/fortune/fortune_it_juzi.py +0 -123
  371. akshare/fund/fund_announcement.py +0 -56
  372. akshare/futures/futures_international.py +0 -170
  373. akshare/futures/futures_news_baidu.py +0 -54
  374. akshare/futures/inventory_data.py +0 -100
  375. akshare/futures_derivative/futures_index_price_nh.py +0 -61
  376. akshare/futures_derivative/futures_index_return_nh.py +0 -47
  377. akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
  378. akshare/futures_derivative/futures_other_index_nh.py +0 -145
  379. akshare/index/index_fear_greed_funddb.py +0 -78
  380. akshare/index/index_investing.py +0 -232
  381. akshare/sport/__init__.py +0 -6
  382. akshare/sport/sport_olympic.py +0 -27
  383. akshare/sport/sport_olympic_winter.py +0 -39
  384. akshare/stock_feature/stock_wencai.py +0 -104
  385. akshare/stock_fundamental/stock_mda_ym.py +0 -40
  386. akshare/stock_fundamental/stock_register.py +0 -292
  387. akshare-1.13.46.dist-info/RECORD +0 -380
  388. {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/top_level.txt +0 -0
@@ -1,17 +1,19 @@
1
1
  # -*- coding:utf-8 -*-
2
2
  # !/usr/bin/env python
3
3
  """
4
- Date: 2023/11/27 18:00
4
+ Date: 2025/3/26 21:15
5
5
  Desc: 东方财富网-数据中心-股东分析
6
6
  https://data.eastmoney.com/gdfx/
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
- from tqdm import tqdm
11
+
12
+ from akshare.utils.tqdm import get_tqdm
11
13
 
12
14
 
13
15
  def stock_gdfx_free_holding_statistics_em(
14
- date: str = "20210630",
16
+ date: str = "20210630",
15
17
  ) -> pd.DataFrame:
16
18
  """
17
19
  东方财富网-数据中心-股东分析-股东持股统计-十大流通股东
@@ -37,12 +39,13 @@ def stock_gdfx_free_holding_statistics_em(
37
39
  data_json = r.json()
38
40
  total_page = data_json["result"]["pages"]
39
41
  big_df = pd.DataFrame()
42
+ tqdm = get_tqdm()
40
43
  for page in tqdm(range(1, total_page + 1), leave=False):
41
44
  params.update({"pageNumber": page})
42
45
  r = requests.get(url, params=params)
43
46
  data_json = r.json()
44
47
  temp_df = pd.DataFrame(data_json["result"]["data"])
45
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
48
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
46
49
  big_df.reset_index(inplace=True)
47
50
  big_df["index"] = big_df.index + 1
48
51
  big_df.columns = [
@@ -83,15 +86,33 @@ def stock_gdfx_free_holding_statistics_em(
83
86
  ]
84
87
  ]
85
88
  big_df["统计次数"] = pd.to_numeric(big_df["统计次数"])
86
- big_df["公告日后涨幅统计-10个交易日-平均涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-10个交易日-平均涨幅"])
87
- big_df["公告日后涨幅统计-10个交易日-最大涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-10个交易日-最大涨幅"])
88
- big_df["公告日后涨幅统计-10个交易日-最小涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-10个交易日-最小涨幅"])
89
- big_df["公告日后涨幅统计-30个交易日-平均涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-30个交易日-平均涨幅"])
90
- big_df["公告日后涨幅统计-30个交易日-最大涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-30个交易日-最大涨幅"])
91
- big_df["公告日后涨幅统计-30个交易日-最小涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-30个交易日-最小涨幅"])
92
- big_df["公告日后涨幅统计-60个交易日-平均涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-60个交易日-平均涨幅"])
93
- big_df["公告日后涨幅统计-60个交易日-最大涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-60个交易日-最大涨幅"])
94
- big_df["公告日后涨幅统计-60个交易日-最小涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-60个交易日-最小涨幅"])
89
+ big_df["公告日后涨幅统计-10个交易日-平均涨幅"] = pd.to_numeric(
90
+ big_df["公告日后涨幅统计-10个交易日-平均涨幅"]
91
+ )
92
+ big_df["公告日后涨幅统计-10个交易日-最大涨幅"] = pd.to_numeric(
93
+ big_df["公告日后涨幅统计-10个交易日-最大涨幅"]
94
+ )
95
+ big_df["公告日后涨幅统计-10个交易日-最小涨幅"] = pd.to_numeric(
96
+ big_df["公告日后涨幅统计-10个交易日-最小涨幅"]
97
+ )
98
+ big_df["公告日后涨幅统计-30个交易日-平均涨幅"] = pd.to_numeric(
99
+ big_df["公告日后涨幅统计-30个交易日-平均涨幅"]
100
+ )
101
+ big_df["公告日后涨幅统计-30个交易日-最大涨幅"] = pd.to_numeric(
102
+ big_df["公告日后涨幅统计-30个交易日-最大涨幅"]
103
+ )
104
+ big_df["公告日后涨幅统计-30个交易日-最小涨幅"] = pd.to_numeric(
105
+ big_df["公告日后涨幅统计-30个交易日-最小涨幅"]
106
+ )
107
+ big_df["公告日后涨幅统计-60个交易日-平均涨幅"] = pd.to_numeric(
108
+ big_df["公告日后涨幅统计-60个交易日-平均涨幅"]
109
+ )
110
+ big_df["公告日后涨幅统计-60个交易日-最大涨幅"] = pd.to_numeric(
111
+ big_df["公告日后涨幅统计-60个交易日-最大涨幅"]
112
+ )
113
+ big_df["公告日后涨幅统计-60个交易日-最小涨幅"] = pd.to_numeric(
114
+ big_df["公告日后涨幅统计-60个交易日-最小涨幅"]
115
+ )
95
116
  return big_df
96
117
 
97
118
 
@@ -120,6 +141,7 @@ def stock_gdfx_holding_statistics_em(date: str = "20210930") -> pd.DataFrame:
120
141
  data_json = r.json()
121
142
  total_page = data_json["result"]["pages"]
122
143
  big_df = pd.DataFrame()
144
+ tqdm = get_tqdm()
123
145
  for page in tqdm(range(1, total_page + 1), leave=False):
124
146
  params.update({"pageNumber": page})
125
147
  r = requests.get(url, params=params)
@@ -167,15 +189,33 @@ def stock_gdfx_holding_statistics_em(date: str = "20210930") -> pd.DataFrame:
167
189
  ]
168
190
  ]
169
191
  big_df["统计次数"] = pd.to_numeric(big_df["统计次数"])
170
- big_df["公告日后涨幅统计-10个交易日-平均涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-10个交易日-平均涨幅"])
171
- big_df["公告日后涨幅统计-10个交易日-最大涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-10个交易日-最大涨幅"])
172
- big_df["公告日后涨幅统计-10个交易日-最小涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-10个交易日-最小涨幅"])
173
- big_df["公告日后涨幅统计-30个交易日-平均涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-30个交易日-平均涨幅"])
174
- big_df["公告日后涨幅统计-30个交易日-最大涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-30个交易日-最大涨幅"])
175
- big_df["公告日后涨幅统计-30个交易日-最小涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-30个交易日-最小涨幅"])
176
- big_df["公告日后涨幅统计-60个交易日-平均涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-60个交易日-平均涨幅"])
177
- big_df["公告日后涨幅统计-60个交易日-最大涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-60个交易日-最大涨幅"])
178
- big_df["公告日后涨幅统计-60个交易日-最小涨幅"] = pd.to_numeric(big_df["公告日后涨幅统计-60个交易日-最小涨幅"])
192
+ big_df["公告日后涨幅统计-10个交易日-平均涨幅"] = pd.to_numeric(
193
+ big_df["公告日后涨幅统计-10个交易日-平均涨幅"]
194
+ )
195
+ big_df["公告日后涨幅统计-10个交易日-最大涨幅"] = pd.to_numeric(
196
+ big_df["公告日后涨幅统计-10个交易日-最大涨幅"]
197
+ )
198
+ big_df["公告日后涨幅统计-10个交易日-最小涨幅"] = pd.to_numeric(
199
+ big_df["公告日后涨幅统计-10个交易日-最小涨幅"]
200
+ )
201
+ big_df["公告日后涨幅统计-30个交易日-平均涨幅"] = pd.to_numeric(
202
+ big_df["公告日后涨幅统计-30个交易日-平均涨幅"]
203
+ )
204
+ big_df["公告日后涨幅统计-30个交易日-最大涨幅"] = pd.to_numeric(
205
+ big_df["公告日后涨幅统计-30个交易日-最大涨幅"]
206
+ )
207
+ big_df["公告日后涨幅统计-30个交易日-最小涨幅"] = pd.to_numeric(
208
+ big_df["公告日后涨幅统计-30个交易日-最小涨幅"]
209
+ )
210
+ big_df["公告日后涨幅统计-60个交易日-平均涨幅"] = pd.to_numeric(
211
+ big_df["公告日后涨幅统计-60个交易日-平均涨幅"]
212
+ )
213
+ big_df["公告日后涨幅统计-60个交易日-最大涨幅"] = pd.to_numeric(
214
+ big_df["公告日后涨幅统计-60个交易日-最大涨幅"]
215
+ )
216
+ big_df["公告日后涨幅统计-60个交易日-最小涨幅"] = pd.to_numeric(
217
+ big_df["公告日后涨幅统计-60个交易日-最小涨幅"]
218
+ )
179
219
  return big_df
180
220
 
181
221
 
@@ -204,12 +244,13 @@ def stock_gdfx_free_holding_change_em(date: str = "20210930") -> pd.DataFrame:
204
244
  data_json = r.json()
205
245
  total_page = data_json["result"]["pages"]
206
246
  big_df = pd.DataFrame()
247
+ tqdm = get_tqdm()
207
248
  for page in tqdm(range(1, total_page + 1), leave=False):
208
249
  params.update({"pageNumber": page})
209
250
  r = requests.get(url, params=params)
210
251
  data_json = r.json()
211
252
  temp_df = pd.DataFrame(data_json["result"]["data"])
212
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
253
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
213
254
 
214
255
  big_df.reset_index(inplace=True)
215
256
  big_df["index"] = big_df.index + 1
@@ -232,6 +273,8 @@ def stock_gdfx_free_holding_change_em(date: str = "20210930") -> pd.DataFrame:
232
273
  "流通市值统计",
233
274
  "持有个股",
234
275
  "-",
276
+ "-",
277
+ "-",
235
278
  ]
236
279
  big_df = big_df[
237
280
  [
@@ -247,12 +290,22 @@ def stock_gdfx_free_holding_change_em(date: str = "20210930") -> pd.DataFrame:
247
290
  "持有个股",
248
291
  ]
249
292
  ]
250
- big_df["期末持股只数统计-总持有"] = pd.to_numeric(big_df["期末持股只数统计-总持有"])
251
- big_df["期末持股只数统计-新进"] = pd.to_numeric(big_df["期末持股只数统计-新进"])
252
- big_df["期末持股只数统计-增加"] = pd.to_numeric(big_df["期末持股只数统计-增加"])
253
- big_df["期末持股只数统计-不变"] = pd.to_numeric(big_df["期末持股只数统计-不变"])
254
- big_df["期末持股只数统计-减少"] = pd.to_numeric(big_df["期末持股只数统计-减少"])
255
- big_df["流通市值统计"] = pd.to_numeric(big_df["流通市值统计"])
293
+ big_df["期末持股只数统计-总持有"] = pd.to_numeric(
294
+ big_df["期末持股只数统计-总持有"], errors="coerce"
295
+ )
296
+ big_df["期末持股只数统计-新进"] = pd.to_numeric(
297
+ big_df["期末持股只数统计-新进"], errors="coerce"
298
+ )
299
+ big_df["期末持股只数统计-增加"] = pd.to_numeric(
300
+ big_df["期末持股只数统计-增加"], errors="coerce"
301
+ )
302
+ big_df["期末持股只数统计-不变"] = pd.to_numeric(
303
+ big_df["期末持股只数统计-不变"], errors="coerce"
304
+ )
305
+ big_df["期末持股只数统计-减少"] = pd.to_numeric(
306
+ big_df["期末持股只数统计-减少"], errors="coerce"
307
+ )
308
+ big_df["流通市值统计"] = pd.to_numeric(big_df["流通市值统计"], errors="coerce")
256
309
  return big_df
257
310
 
258
311
 
@@ -281,12 +334,13 @@ def stock_gdfx_holding_change_em(date: str = "20210930") -> pd.DataFrame:
281
334
  data_json = r.json()
282
335
  total_page = data_json["result"]["pages"]
283
336
  big_df = pd.DataFrame()
337
+ tqdm = get_tqdm()
284
338
  for page in tqdm(range(1, total_page + 1), leave=False):
285
339
  params.update({"pageNumber": page})
286
340
  r = requests.get(url, params=params)
287
341
  data_json = r.json()
288
342
  temp_df = pd.DataFrame(data_json["result"]["data"])
289
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
343
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
290
344
 
291
345
  big_df.reset_index(inplace=True)
292
346
  big_df["index"] = big_df.index + 1
@@ -309,6 +363,8 @@ def stock_gdfx_holding_change_em(date: str = "20210930") -> pd.DataFrame:
309
363
  "-",
310
364
  "持有个股",
311
365
  "流通市值统计",
366
+ "-",
367
+ "-",
312
368
  ]
313
369
  big_df = big_df[
314
370
  [
@@ -334,7 +390,7 @@ def stock_gdfx_holding_change_em(date: str = "20210930") -> pd.DataFrame:
334
390
 
335
391
 
336
392
  def stock_gdfx_free_top_10_em(
337
- symbol: str = "sh688686", date: str = "20210630"
393
+ symbol: str = "sh688686", date: str = "20240930"
338
394
  ) -> pd.DataFrame:
339
395
  """
340
396
  东方财富网-个股-十大流通股东
@@ -384,14 +440,16 @@ def stock_gdfx_free_top_10_em(
384
440
  "变动比率",
385
441
  ]
386
442
  ]
387
- temp_df["持股数"] = pd.to_numeric(temp_df["持股数"])
388
- temp_df["占总流通股本持股比例"] = pd.to_numeric(temp_df["占总流通股本持股比例"])
389
- temp_df["变动比率"] = pd.to_numeric(temp_df["变动比率"])
443
+ temp_df["持股数"] = pd.to_numeric(temp_df["持股数"], errors="coerce")
444
+ temp_df["占总流通股本持股比例"] = pd.to_numeric(
445
+ temp_df["占总流通股本持股比例"], errors="coerce"
446
+ )
447
+ temp_df["变动比率"] = pd.to_numeric(temp_df["变动比率"], errors="coerce")
390
448
  return temp_df
391
449
 
392
450
 
393
451
  def stock_gdfx_top_10_em(
394
- symbol: str = "sh688686", date: str = "20210630"
452
+ symbol: str = "sh688686", date: str = "20210630"
395
453
  ) -> pd.DataFrame:
396
454
  """
397
455
  东方财富网-个股-十大股东
@@ -468,6 +526,7 @@ def stock_gdfx_free_holding_detail_em(date: str = "20210930") -> pd.DataFrame:
468
526
  data_json = r.json()
469
527
  total_page = data_json["result"]["pages"]
470
528
  big_df = pd.DataFrame()
529
+ tqdm = get_tqdm()
471
530
  for page in tqdm(range(1, total_page + 1), leave=False):
472
531
  params.update({"pageNumber": page})
473
532
  r = requests.get(url, params=params)
@@ -477,24 +536,27 @@ def stock_gdfx_free_holding_detail_em(date: str = "20210930") -> pd.DataFrame:
477
536
 
478
537
  big_df.reset_index(inplace=True)
479
538
  big_df["index"] = big_df.index + 1
480
- big_df.rename(columns={
481
- "index": "序号",
482
- "HOLDER_NAME": "股东名称",
483
- "HOLDER_TYPE": "股东类型",
484
- "SHARES_TYPE": "股份类型",
485
- "HOLDER_RANK": "股东排名",
486
- "SECURITY_CODE": "股票代码",
487
- "SECURITY_NAME_ABBR": "股票简称",
488
- "HOLD_NUM": "期末持股-数量",
489
- "FREE_HOLDNUM_RATIO": "期末持股-持股占流通股比",
490
- "XZCHANGE": "期末持股-数量变化",
491
- "CHANGE_RATIO": "期末持股-数量变化比例",
492
- "HOLDNUM_CHANGE_NAME": "期末持股-持股变动",
493
- "HOLDER_MARKET_CAP": "期末持股-流通市值",
494
- "END_DATE": "报告期",
495
- "UPDATE_DATE": "公告日",
496
- "REPORT_DATE_NAME": "报告名称",
497
- }, inplace=True)
539
+ big_df.rename(
540
+ columns={
541
+ "index": "序号",
542
+ "HOLDER_NAME": "股东名称",
543
+ "HOLDER_TYPE": "股东类型",
544
+ "SHARES_TYPE": "股份类型",
545
+ "HOLDER_RANK": "股东排名",
546
+ "SECURITY_CODE": "股票代码",
547
+ "SECURITY_NAME_ABBR": "股票简称",
548
+ "HOLD_NUM": "期末持股-数量",
549
+ "FREE_HOLDNUM_RATIO": "期末持股-持股占流通股比",
550
+ "XZCHANGE": "期末持股-数量变化",
551
+ "CHANGE_RATIO": "期末持股-数量变化比例",
552
+ "HOLDNUM_CHANGE_NAME": "期末持股-持股变动",
553
+ "HOLDER_MARKET_CAP": "期末持股-流通市值",
554
+ "END_DATE": "报告期",
555
+ "UPDATE_DATE": "公告日",
556
+ "REPORT_DATE_NAME": "报告名称",
557
+ },
558
+ inplace=True,
559
+ )
498
560
 
499
561
  big_df = big_df[
500
562
  [
@@ -515,13 +577,21 @@ def stock_gdfx_free_holding_detail_em(date: str = "20210930") -> pd.DataFrame:
515
577
  big_df["报告期"] = pd.to_datetime(big_df["报告期"], errors="coerce").dt.date
516
578
  big_df["公告日"] = pd.to_datetime(big_df["公告日"], errors="coerce").dt.date
517
579
  big_df["期末持股-数量"] = pd.to_numeric(big_df["期末持股-数量"], errors="coerce")
518
- big_df["期末持股-数量变化"] = pd.to_numeric(big_df["期末持股-数量变化"], errors="coerce")
519
- big_df["期末持股-数量变化比例"] = pd.to_numeric(big_df["期末持股-数量变化比例"], errors="coerce")
520
- big_df["期末持股-流通市值"] = pd.to_numeric(big_df["期末持股-流通市值"], errors="coerce")
580
+ big_df["期末持股-数量变化"] = pd.to_numeric(
581
+ big_df["期末持股-数量变化"], errors="coerce"
582
+ )
583
+ big_df["期末持股-数量变化比例"] = pd.to_numeric(
584
+ big_df["期末持股-数量变化比例"], errors="coerce"
585
+ )
586
+ big_df["期末持股-流通市值"] = pd.to_numeric(
587
+ big_df["期末持股-流通市值"], errors="coerce"
588
+ )
521
589
  return big_df
522
590
 
523
591
 
524
- def stock_gdfx_holding_detail_em(date: str = "20230331", indicator: str = "个人", symbol: str = "新进") -> pd.DataFrame:
592
+ def stock_gdfx_holding_detail_em(
593
+ date: str = "20230331", indicator: str = "个人", symbol: str = "新进"
594
+ ) -> pd.DataFrame:
525
595
  """
526
596
  东方财富网-数据中心-股东分析-股东持股明细-十大股东
527
597
  https://data.eastmoney.com/gdfx/HoldingAnalyse.html
@@ -534,11 +604,14 @@ def stock_gdfx_holding_detail_em(date: str = "20230331", indicator: str = "个
534
604
  :return: 十大股东
535
605
  :rtype: pandas.DataFrame
536
606
  """
607
+ import warnings
608
+
609
+ warnings.filterwarnings(action="ignore", category=FutureWarning)
537
610
  url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
538
611
  params = {
539
612
  "sortColumns": "NOTICE_DATE,SECURITY_CODE,RANK",
540
613
  "sortTypes": "-1,1,1",
541
- "pageSize": "500",
614
+ "pageSize": "50",
542
615
  "pageNumber": "1",
543
616
  "reportName": "RPT_DMSK_HOLDERS",
544
617
  "columns": "ALL",
@@ -550,31 +623,34 @@ def stock_gdfx_holding_detail_em(date: str = "20230331", indicator: str = "个
550
623
  data_json = r.json()
551
624
  total_page = data_json["result"]["pages"]
552
625
  big_df = pd.DataFrame()
626
+ tqdm = get_tqdm()
553
627
  for page in tqdm(range(1, total_page + 1), leave=False):
554
628
  params.update({"pageNumber": page})
555
629
  r = requests.get(url, params=params)
556
630
  data_json = r.json()
557
631
  temp_df = pd.DataFrame(data_json["result"]["data"])
558
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
632
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
559
633
 
560
634
  big_df.reset_index(inplace=True)
561
635
  big_df["index"] = big_df.index + 1
562
- big_df.rename(columns={
563
- "index": "序号",
564
- "HOLDER_NAME": "股东名称",
565
- "HOLDER_NEWTYPE": "股东类型",
566
- "RANK": "股东排名",
567
- "SECURITY_CODE": "股票代码",
568
- "SECURITY_NAME_ABBR": "股票简称",
569
- "END_DATE": "报告期",
570
- "HOLD_NUM": "期末持股-数量",
571
- "HOLD_NUM_CHANGE": "期末持股-数量变化",
572
- "HOLD_RATIO_CHANGE": "期末持股-数量变化比例",
573
- "HOLDNUM_CHANGE_NAME": "期末持股-持股变动",
574
- "HOLDER_MARKET_CAP": "期末持股-流通市值",
575
- "NOTICE_DATE": "公告日",
576
-
577
- }, inplace=True)
636
+ big_df.rename(
637
+ columns={
638
+ "index": "序号",
639
+ "HOLDER_NAME": "股东名称",
640
+ "HOLDER_NEWTYPE": "股东类型",
641
+ "RANK": "股东排名",
642
+ "SECURITY_CODE": "股票代码",
643
+ "SECURITY_NAME_ABBR": "股票简称",
644
+ "END_DATE": "报告期",
645
+ "HOLD_NUM": "期末持股-数量",
646
+ "HOLD_NUM_CHANGE": "期末持股-数量变化",
647
+ "HOLD_RATIO_CHANGE": "期末持股-数量变化比例",
648
+ "HOLDNUM_CHANGE_NAME": "期末持股-持股变动",
649
+ "HOLDER_MARKET_CAP": "期末持股-流通市值",
650
+ "NOTICE_DATE": "公告日",
651
+ },
652
+ inplace=True,
653
+ )
578
654
 
579
655
  big_df = big_df[
580
656
  [
@@ -596,9 +672,15 @@ def stock_gdfx_holding_detail_em(date: str = "20230331", indicator: str = "个
596
672
  big_df["报告期"] = pd.to_datetime(big_df["报告期"], errors="coerce").dt.date
597
673
  big_df["公告日"] = pd.to_datetime(big_df["公告日"], errors="coerce").dt.date
598
674
  big_df["期末持股-数量"] = pd.to_numeric(big_df["期末持股-数量"], errors="coerce")
599
- big_df["期末持股-数量变化"] = pd.to_numeric(big_df["期末持股-数量变化"], errors="coerce")
600
- big_df["期末持股-数量变化比例"] = pd.to_numeric(big_df["期末持股-数量变化比例"], errors="coerce")
601
- big_df["期末持股-流通市值"] = pd.to_numeric(big_df["期末持股-流通市值"], errors="coerce")
675
+ big_df["期末持股-数量变化"] = pd.to_numeric(
676
+ big_df["期末持股-数量变化"], errors="coerce"
677
+ )
678
+ big_df["期末持股-数量变化比例"] = pd.to_numeric(
679
+ big_df["期末持股-数量变化比例"], errors="coerce"
680
+ )
681
+ big_df["期末持股-流通市值"] = pd.to_numeric(
682
+ big_df["期末持股-流通市值"], errors="coerce"
683
+ )
602
684
  big_df["股东排名"] = pd.to_numeric(big_df["股东排名"], errors="coerce")
603
685
  return big_df
604
686
 
@@ -628,32 +710,36 @@ def stock_gdfx_free_holding_analyse_em(date: str = "20230930") -> pd.DataFrame:
628
710
  data_json = r.json()
629
711
  total_page = data_json["result"]["pages"]
630
712
  big_df = pd.DataFrame()
713
+ tqdm = get_tqdm()
631
714
  for page in tqdm(range(1, total_page + 1), leave=False):
632
715
  params.update({"pageNumber": page})
633
716
  r = requests.get(url, params=params)
634
717
  data_json = r.json()
635
718
  temp_df = pd.DataFrame(data_json["result"]["data"])
636
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
719
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
637
720
 
638
721
  big_df.reset_index(inplace=True)
639
722
  big_df["index"] = big_df.index + 1
640
- big_df.rename(columns={
641
- "index": "序号",
642
- "HOLDER_NAME": "股东名称",
643
- "HOLDER_TYPE": "股东类型",
644
- "SECURITY_CODE": "股票代码",
645
- "SECURITY_NAME_ABBR": "股票简称",
646
- "END_DATE": "报告期",
647
- "HOLD_NUM": "期末持股-数量",
648
- "XZCHANGE": "期末持股-数量变化",
649
- "HOLD_RATIO_CHANGE": "期末持股-数量变化比例",
650
- "HOLDNUM_CHANGE_NAME": "期末持股-持股变动",
651
- "HOLDER_MARKET_CAP": "期末持股-流通市值",
652
- "UPDATE_DATE": "公告日",
653
- "D10_ADJCHRATE": "公告日后涨跌幅-10个交易日",
654
- "D30_ADJCHRATE": "公告日后涨跌幅-30个交易日",
655
- "D60_ADJCHRATE": "公告日后涨跌幅-60个交易日",
656
- }, inplace=True)
723
+ big_df.rename(
724
+ columns={
725
+ "index": "序号",
726
+ "HOLDER_NAME": "股东名称",
727
+ "HOLDER_TYPE": "股东类型",
728
+ "SECURITY_CODE": "股票代码",
729
+ "SECURITY_NAME_ABBR": "股票简称",
730
+ "END_DATE": "报告期",
731
+ "HOLD_NUM": "期末持股-数量",
732
+ "XZCHANGE": "期末持股-数量变化",
733
+ "HOLD_RATIO_CHANGE": "期末持股-数量变化比例",
734
+ "HOLDNUM_CHANGE_NAME": "期末持股-持股变动",
735
+ "HOLDER_MARKET_CAP": "期末持股-流通市值",
736
+ "UPDATE_DATE": "公告日",
737
+ "D10_ADJCHRATE": "公告日后涨跌幅-10个交易日",
738
+ "D30_ADJCHRATE": "公告日后涨跌幅-30个交易日",
739
+ "D60_ADJCHRATE": "公告日后涨跌幅-60个交易日",
740
+ },
741
+ inplace=True,
742
+ )
657
743
  big_df = big_df[
658
744
  [
659
745
  "序号",
@@ -676,12 +762,24 @@ def stock_gdfx_free_holding_analyse_em(date: str = "20230930") -> pd.DataFrame:
676
762
  big_df["报告期"] = pd.to_datetime(big_df["报告期"], errors="coerce").dt.date
677
763
  big_df["公告日"] = pd.to_datetime(big_df["公告日"], errors="coerce").dt.date
678
764
  big_df["期末持股-数量"] = pd.to_numeric(big_df["期末持股-数量"], errors="coerce")
679
- big_df["期末持股-数量变化"] = pd.to_numeric(big_df["期末持股-数量变化"], errors="coerce")
680
- big_df["期末持股-数量变化比例"] = pd.to_numeric(big_df["期末持股-数量变化比例"], errors="coerce")
681
- big_df["期末持股-流通市值"] = pd.to_numeric(big_df["期末持股-流通市值"], errors="coerce")
682
- big_df["公告日后涨跌幅-10个交易日"] = pd.to_numeric(big_df["公告日后涨跌幅-10个交易日"], errors="coerce")
683
- big_df["公告日后涨跌幅-30个交易日"] = pd.to_numeric(big_df["公告日后涨跌幅-30个交易日"], errors="coerce")
684
- big_df["公告日后涨跌幅-60个交易日"] = pd.to_numeric(big_df["公告日后涨跌幅-60个交易日"], errors="coerce")
765
+ big_df["期末持股-数量变化"] = pd.to_numeric(
766
+ big_df["期末持股-数量变化"], errors="coerce"
767
+ )
768
+ big_df["期末持股-数量变化比例"] = pd.to_numeric(
769
+ big_df["期末持股-数量变化比例"], errors="coerce"
770
+ )
771
+ big_df["期末持股-流通市值"] = pd.to_numeric(
772
+ big_df["期末持股-流通市值"], errors="coerce"
773
+ )
774
+ big_df["公告日后涨跌幅-10个交易日"] = pd.to_numeric(
775
+ big_df["公告日后涨跌幅-10个交易日"], errors="coerce"
776
+ )
777
+ big_df["公告日后涨跌幅-30个交易日"] = pd.to_numeric(
778
+ big_df["公告日后涨跌幅-30个交易日"], errors="coerce"
779
+ )
780
+ big_df["公告日后涨跌幅-60个交易日"] = pd.to_numeric(
781
+ big_df["公告日后涨跌幅-60个交易日"], errors="coerce"
782
+ )
685
783
  return big_df
686
784
 
687
785
 
@@ -710,15 +808,16 @@ def stock_gdfx_holding_analyse_em(date: str = "20230331") -> pd.DataFrame:
710
808
  data_json = r.json()
711
809
  total_page = data_json["result"]["pages"]
712
810
  big_df = pd.DataFrame()
811
+ tqdm = get_tqdm()
713
812
  for page in tqdm(range(1, total_page + 1), leave=False):
714
813
  params.update({"pageNumber": page})
715
814
  r = requests.get(url, params=params)
716
815
  data_json = r.json()
717
816
  temp_df = pd.DataFrame(data_json["result"]["data"])
718
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
817
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
719
818
 
720
819
  big_df.reset_index(inplace=True)
721
- big_df['index'] = big_df['index'] + 1
820
+ big_df["index"] = big_df["index"] + 1
722
821
  big_df.rename(
723
822
  columns={
724
823
  "index": "序号",
@@ -766,12 +865,24 @@ def stock_gdfx_holding_analyse_em(date: str = "20230331") -> pd.DataFrame:
766
865
  big_df["公告日"] = pd.to_datetime(big_df["公告日"]).dt.date
767
866
  big_df["报告期"] = pd.to_datetime(big_df["报告期"]).dt.date
768
867
  big_df["期末持股-数量"] = pd.to_numeric(big_df["期末持股-数量"], errors="coerce")
769
- big_df["期末持股-数量变化"] = pd.to_numeric(big_df["期末持股-数量变化"], errors="coerce")
770
- big_df["期末持股-数量变化比例"] = pd.to_numeric(big_df["期末持股-数量变化比例"], errors="coerce")
771
- big_df["期末持股-流通市值"] = pd.to_numeric(big_df["期末持股-流通市值"], errors="coerce")
772
- big_df["公告日后涨跌幅-10个交易日"] = pd.to_numeric(big_df["公告日后涨跌幅-10个交易日"], errors="coerce")
773
- big_df["公告日后涨跌幅-30个交易日"] = pd.to_numeric(big_df["公告日后涨跌幅-30个交易日"], errors="coerce")
774
- big_df["公告日后涨跌幅-60个交易日"] = pd.to_numeric(big_df["公告日后涨跌幅-60个交易日"], errors="coerce")
868
+ big_df["期末持股-数量变化"] = pd.to_numeric(
869
+ big_df["期末持股-数量变化"], errors="coerce"
870
+ )
871
+ big_df["期末持股-数量变化比例"] = pd.to_numeric(
872
+ big_df["期末持股-数量变化比例"], errors="coerce"
873
+ )
874
+ big_df["期末持股-流通市值"] = pd.to_numeric(
875
+ big_df["期末持股-流通市值"], errors="coerce"
876
+ )
877
+ big_df["公告日后涨跌幅-10个交易日"] = pd.to_numeric(
878
+ big_df["公告日后涨跌幅-10个交易日"], errors="coerce"
879
+ )
880
+ big_df["公告日后涨跌幅-30个交易日"] = pd.to_numeric(
881
+ big_df["公告日后涨跌幅-30个交易日"], errors="coerce"
882
+ )
883
+ big_df["公告日后涨跌幅-60个交易日"] = pd.to_numeric(
884
+ big_df["公告日后涨跌幅-60个交易日"], errors="coerce"
885
+ )
775
886
  return big_df
776
887
 
777
888
 
@@ -801,12 +912,13 @@ def stock_gdfx_free_holding_teamwork_em(symbol: str = "社保") -> pd.DataFrame:
801
912
  data_json = r.json()
802
913
  total_page = data_json["result"]["pages"]
803
914
  big_df = pd.DataFrame()
915
+ tqdm = get_tqdm()
804
916
  for page in tqdm(range(1, total_page + 1), leave=False):
805
917
  params.update({"pageNumber": page})
806
918
  r = requests.get(url, params=params)
807
919
  data_json = r.json()
808
920
  temp_df = pd.DataFrame(data_json["result"]["data"])
809
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
921
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
810
922
 
811
923
  big_df.reset_index(inplace=True)
812
924
  big_df["index"] = big_df.index + 1
@@ -863,12 +975,13 @@ def stock_gdfx_holding_teamwork_em(symbol: str = "社保") -> pd.DataFrame:
863
975
  data_json = r.json()
864
976
  total_page = data_json["result"]["pages"]
865
977
  big_df = pd.DataFrame()
978
+ tqdm = get_tqdm()
866
979
  for page in tqdm(range(1, total_page + 1), leave=False):
867
980
  params.update({"pageNumber": page})
868
981
  r = requests.get(url, params=params)
869
982
  data_json = r.json()
870
983
  temp_df = pd.DataFrame(data_json["result"]["data"])
871
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
984
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
872
985
 
873
986
  big_df.reset_index(inplace=True)
874
987
  big_df["index"] = big_df.index + 1
@@ -931,7 +1044,7 @@ if __name__ == "__main__":
931
1044
  )
932
1045
  print(stock_gdfx_free_holding_detail_em_df)
933
1046
 
934
- stock_gdfx_holding_detail_em_df = stock_gdfx_holding_detail_em(date="20210930")
1047
+ stock_gdfx_holding_detail_em_df = stock_gdfx_holding_detail_em(date="20230331")
935
1048
  print(stock_gdfx_holding_detail_em_df)
936
1049
 
937
1050
  stock_gdfx_free_holding_analyse_em_df = stock_gdfx_free_holding_analyse_em(