akshare 1.15.43__tar.gz → 1.15.45__tar.gz

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.

Potentially problematic release.


This version of akshare might be problematic. Click here for more details.

Files changed (396) hide show
  1. {akshare-1.15.43 → akshare-1.15.45}/PKG-INFO +1 -1
  2. {akshare-1.15.43 → akshare-1.15.45}/akshare/__init__.py +3 -26
  3. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_basis.py +27 -7
  4. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_gdfx_em.py +180 -95
  5. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_jgdy_em.py +41 -38
  6. {akshare-1.15.43 → akshare-1.15.45}/akshare.egg-info/PKG-INFO +1 -1
  7. {akshare-1.15.43 → akshare-1.15.45}/akshare.egg-info/SOURCES.txt +0 -3
  8. akshare-1.15.43/akshare/bond/bond_investing.py +0 -139
  9. akshare-1.15.43/akshare/futures/futures_international.py +0 -170
  10. akshare-1.15.43/akshare/index/index_investing.py +0 -232
  11. {akshare-1.15.43 → akshare-1.15.45}/LICENSE +0 -0
  12. {akshare-1.15.43 → akshare-1.15.45}/README.md +0 -0
  13. {akshare-1.15.43 → akshare-1.15.45}/akshare/air/__init__.py +0 -0
  14. {akshare-1.15.43 → akshare-1.15.45}/akshare/air/air_hebei.py +0 -0
  15. {akshare-1.15.43 → akshare-1.15.45}/akshare/air/air_zhenqi.py +0 -0
  16. {akshare-1.15.43 → akshare-1.15.45}/akshare/air/cons.py +0 -0
  17. {akshare-1.15.43 → akshare-1.15.45}/akshare/air/crypto.js +0 -0
  18. {akshare-1.15.43 → akshare-1.15.45}/akshare/air/outcrypto.js +0 -0
  19. {akshare-1.15.43 → akshare-1.15.45}/akshare/air/sunrise_tad.py +0 -0
  20. {akshare-1.15.43 → akshare-1.15.45}/akshare/article/__init__.py +0 -0
  21. {akshare-1.15.43 → akshare-1.15.45}/akshare/article/cons.py +0 -0
  22. {akshare-1.15.43 → akshare-1.15.45}/akshare/article/epu_index.py +0 -0
  23. {akshare-1.15.43 → akshare-1.15.45}/akshare/article/ff_factor.py +0 -0
  24. {akshare-1.15.43 → akshare-1.15.45}/akshare/article/fred_md.py +0 -0
  25. {akshare-1.15.43 → akshare-1.15.45}/akshare/article/risk_rv.py +0 -0
  26. {akshare-1.15.43 → akshare-1.15.45}/akshare/bank/__init__.py +0 -0
  27. {akshare-1.15.43 → akshare-1.15.45}/akshare/bank/bank_cbirc_2020.py +0 -0
  28. {akshare-1.15.43 → akshare-1.15.45}/akshare/bank/cons.py +0 -0
  29. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/__init__.py +0 -0
  30. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_cb_sina.py +0 -0
  31. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_cb_ths.py +0 -0
  32. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_cbond.py +0 -0
  33. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_china.py +0 -0
  34. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_china_money.py +0 -0
  35. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_convert.py +0 -0
  36. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_em.py +0 -0
  37. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_info_cm.py +0 -0
  38. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_issue_cninfo.py +0 -0
  39. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_nafmii.py +0 -0
  40. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_summary.py +0 -0
  41. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_zh_cov.py +0 -0
  42. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/bond_zh_sina.py +0 -0
  43. {akshare-1.15.43 → akshare-1.15.45}/akshare/bond/cons.py +0 -0
  44. {akshare-1.15.43 → akshare-1.15.45}/akshare/cal/__init__.py +0 -0
  45. {akshare-1.15.43 → akshare-1.15.45}/akshare/cal/rv.py +0 -0
  46. {akshare-1.15.43 → akshare-1.15.45}/akshare/cost/__init__.py +0 -0
  47. {akshare-1.15.43 → akshare-1.15.45}/akshare/cost/cost_living.py +0 -0
  48. {akshare-1.15.43 → akshare-1.15.45}/akshare/crypto/__init__.py +0 -0
  49. {akshare-1.15.43 → akshare-1.15.45}/akshare/crypto/crypto_bitcoin_cme.py +0 -0
  50. {akshare-1.15.43 → akshare-1.15.45}/akshare/crypto/crypto_hold.py +0 -0
  51. {akshare-1.15.43 → akshare-1.15.45}/akshare/currency/__init__.py +0 -0
  52. {akshare-1.15.43 → akshare-1.15.45}/akshare/currency/currency.py +0 -0
  53. {akshare-1.15.43 → akshare-1.15.45}/akshare/currency/currency_china_bank_sina.py +0 -0
  54. {akshare-1.15.43 → akshare-1.15.45}/akshare/currency/currency_safe.py +0 -0
  55. {akshare-1.15.43 → akshare-1.15.45}/akshare/data/__init__.py +0 -0
  56. {akshare-1.15.43 → akshare-1.15.45}/akshare/data/cninfo.js +0 -0
  57. {akshare-1.15.43 → akshare-1.15.45}/akshare/data/crypto_info.zip +0 -0
  58. {akshare-1.15.43 → akshare-1.15.45}/akshare/data/ths.js +0 -0
  59. {akshare-1.15.43 → akshare-1.15.45}/akshare/datasets.py +0 -0
  60. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/__init__.py +0 -0
  61. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/cons.py +0 -0
  62. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_australia.py +0 -0
  63. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_bank.py +0 -0
  64. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_canada.py +0 -0
  65. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_china.py +0 -0
  66. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_china_hk.py +0 -0
  67. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_china_nbs.py +0 -0
  68. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_constitute.py +0 -0
  69. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_euro.py +0 -0
  70. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_finance_ths.py +0 -0
  71. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_germany.py +0 -0
  72. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_info_ws.py +0 -0
  73. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_japan.py +0 -0
  74. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_other.py +0 -0
  75. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_swiss.py +0 -0
  76. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_uk.py +0 -0
  77. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/macro_usa.py +0 -0
  78. {akshare-1.15.43 → akshare-1.15.45}/akshare/economic/marco_cnbs.py +0 -0
  79. {akshare-1.15.43 → akshare-1.15.45}/akshare/energy/__init__.py +0 -0
  80. {akshare-1.15.43 → akshare-1.15.45}/akshare/energy/energy_carbon.py +0 -0
  81. {akshare-1.15.43 → akshare-1.15.45}/akshare/energy/energy_oil_em.py +0 -0
  82. {akshare-1.15.43 → akshare-1.15.45}/akshare/event/__init__.py +0 -0
  83. {akshare-1.15.43 → akshare-1.15.45}/akshare/event/cons.py +0 -0
  84. {akshare-1.15.43 → akshare-1.15.45}/akshare/event/migration.py +0 -0
  85. {akshare-1.15.43 → akshare-1.15.45}/akshare/exceptions.py +0 -0
  86. {akshare-1.15.43 → akshare-1.15.45}/akshare/file_fold/__init__.py +0 -0
  87. {akshare-1.15.43 → akshare-1.15.45}/akshare/file_fold/calendar.json +0 -0
  88. {akshare-1.15.43 → akshare-1.15.45}/akshare/fortune/__init__.py +0 -0
  89. {akshare-1.15.43 → akshare-1.15.45}/akshare/fortune/fortune_500.py +0 -0
  90. {akshare-1.15.43 → akshare-1.15.45}/akshare/fortune/fortune_bloomberg.py +0 -0
  91. {akshare-1.15.43 → akshare-1.15.45}/akshare/fortune/fortune_forbes_500.py +0 -0
  92. {akshare-1.15.43 → akshare-1.15.45}/akshare/fortune/fortune_hurun.py +0 -0
  93. {akshare-1.15.43 → akshare-1.15.45}/akshare/fortune/fortune_xincaifu_500.py +0 -0
  94. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/__init__.py +0 -0
  95. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_amac.py +0 -0
  96. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_announcement.py +0 -0
  97. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_aum_em.py +0 -0
  98. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_em.py +0 -0
  99. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_etf_em.py +0 -0
  100. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_etf_sina.py +0 -0
  101. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_etf_ths.py +0 -0
  102. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_fhsp_em.py +0 -0
  103. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_init_em.py +0 -0
  104. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_lof_em.py +0 -0
  105. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_manager.py +0 -0
  106. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_portfolio_em.py +0 -0
  107. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_position_lg.py +0 -0
  108. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_rank_em.py +0 -0
  109. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_rating.py +0 -0
  110. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_report_cninfo.py +0 -0
  111. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_scale_em.py +0 -0
  112. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_scale_sina.py +0 -0
  113. {akshare-1.15.43 → akshare-1.15.45}/akshare/fund/fund_xq.py +0 -0
  114. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/__init__.py +0 -0
  115. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/cons.py +0 -0
  116. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/cot.py +0 -0
  117. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_comex_em.py +0 -0
  118. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_comm_ctp.py +0 -0
  119. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_comm_qihuo.py +0 -0
  120. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_contract_detail.py +0 -0
  121. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_daily_bar.py +0 -0
  122. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_foreign.py +0 -0
  123. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_hf_em.py +0 -0
  124. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_hq_sina.py +0 -0
  125. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_index_ccidx.py +0 -0
  126. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_inventory_99.py +0 -0
  127. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_inventory_em.py +0 -0
  128. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_news_baidu.py +0 -0
  129. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_news_shmet.py +0 -0
  130. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_roll_yield.py +0 -0
  131. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_rule.py +0 -0
  132. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_settlement_price_sgx.py +0 -0
  133. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_spot_stock_em.py +0 -0
  134. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_stock_js.py +0 -0
  135. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_to_spot.py +0 -0
  136. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_warehouse_receipt.py +0 -0
  137. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/futures_zh_sina.py +0 -0
  138. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/inventory_data.py +0 -0
  139. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/receipt.py +0 -0
  140. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/requests_fun.py +0 -0
  141. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures/symbol_var.py +0 -0
  142. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures_derivative/__init__.py +0 -0
  143. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures_derivative/cons.py +0 -0
  144. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures_derivative/futures_contract_info_cffex.py +0 -0
  145. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures_derivative/futures_contract_info_czce.py +0 -0
  146. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures_derivative/futures_contract_info_dce.py +0 -0
  147. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures_derivative/futures_contract_info_gfex.py +0 -0
  148. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures_derivative/futures_contract_info_ine.py +0 -0
  149. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures_derivative/futures_contract_info_shfe.py +0 -0
  150. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures_derivative/futures_cot_sina.py +0 -0
  151. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures_derivative/futures_hog.py +0 -0
  152. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures_derivative/futures_index_sina.py +0 -0
  153. {akshare-1.15.43 → akshare-1.15.45}/akshare/futures_derivative/futures_spot_sys.py +0 -0
  154. {akshare-1.15.43 → akshare-1.15.45}/akshare/fx/__init__.py +0 -0
  155. {akshare-1.15.43 → akshare-1.15.45}/akshare/fx/cons.py +0 -0
  156. {akshare-1.15.43 → akshare-1.15.45}/akshare/fx/currency_investing.py +0 -0
  157. {akshare-1.15.43 → akshare-1.15.45}/akshare/fx/fx_quote.py +0 -0
  158. {akshare-1.15.43 → akshare-1.15.45}/akshare/fx/fx_quote_baidu.py +0 -0
  159. {akshare-1.15.43 → akshare-1.15.45}/akshare/hf/__init__.py +0 -0
  160. {akshare-1.15.43 → akshare-1.15.45}/akshare/hf/hf_sp500.py +0 -0
  161. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/__init__.py +0 -0
  162. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/cons.py +0 -0
  163. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_cflp.py +0 -0
  164. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_cni.py +0 -0
  165. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_cons.py +0 -0
  166. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_cx.py +0 -0
  167. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_drewry.py +0 -0
  168. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_eri.py +0 -0
  169. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_fear_greed_funddb.py +0 -0
  170. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_hog.py +0 -0
  171. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_kq_fz.py +0 -0
  172. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_kq_ss.py +0 -0
  173. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_option_qvix.py +0 -0
  174. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_research_fund_sw.py +0 -0
  175. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_research_sw.py +0 -0
  176. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_spot.py +0 -0
  177. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_stock_hk.py +0 -0
  178. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_stock_us_sina.py +0 -0
  179. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_stock_zh.py +0 -0
  180. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_stock_zh_csindex.py +0 -0
  181. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_sugar.py +0 -0
  182. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_sw.py +0 -0
  183. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_yw.py +0 -0
  184. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_zh_a_scope.py +0 -0
  185. {akshare-1.15.43 → akshare-1.15.45}/akshare/index/index_zh_em.py +0 -0
  186. {akshare-1.15.43 → akshare-1.15.45}/akshare/interest_rate/__init__.py +0 -0
  187. {akshare-1.15.43 → akshare-1.15.45}/akshare/interest_rate/interbank_rate_em.py +0 -0
  188. {akshare-1.15.43 → akshare-1.15.45}/akshare/movie/__init__.py +0 -0
  189. {akshare-1.15.43 → akshare-1.15.45}/akshare/movie/artist_yien.py +0 -0
  190. {akshare-1.15.43 → akshare-1.15.45}/akshare/movie/jm.js +0 -0
  191. {akshare-1.15.43 → akshare-1.15.45}/akshare/movie/movie_yien.py +0 -0
  192. {akshare-1.15.43 → akshare-1.15.45}/akshare/movie/video_yien.py +0 -0
  193. {akshare-1.15.43 → akshare-1.15.45}/akshare/news/__init__.py +0 -0
  194. {akshare-1.15.43 → akshare-1.15.45}/akshare/news/news_baidu.py +0 -0
  195. {akshare-1.15.43 → akshare-1.15.45}/akshare/news/news_cctv.py +0 -0
  196. {akshare-1.15.43 → akshare-1.15.45}/akshare/news/news_stock.py +0 -0
  197. {akshare-1.15.43 → akshare-1.15.45}/akshare/nlp/__init__.py +0 -0
  198. {akshare-1.15.43 → akshare-1.15.45}/akshare/nlp/nlp_interface.py +0 -0
  199. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/__init__.py +0 -0
  200. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/cons.py +0 -0
  201. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_comm_qihuo.py +0 -0
  202. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_commodity.py +0 -0
  203. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_commodity_sina.py +0 -0
  204. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_czce.py +0 -0
  205. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_daily_stats_sse_szse.py +0 -0
  206. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_em.py +0 -0
  207. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_finance.py +0 -0
  208. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_finance_sina.py +0 -0
  209. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_lhb_em.py +0 -0
  210. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_premium_analysis_em.py +0 -0
  211. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_risk_analysis_em.py +0 -0
  212. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_risk_indicator_sse.py +0 -0
  213. {akshare-1.15.43 → akshare-1.15.45}/akshare/option/option_value_analysis_em.py +0 -0
  214. {akshare-1.15.43 → akshare-1.15.45}/akshare/other/__init__.py +0 -0
  215. {akshare-1.15.43 → akshare-1.15.45}/akshare/other/other_car_cpca.py +0 -0
  216. {akshare-1.15.43 → akshare-1.15.45}/akshare/other/other_car_gasgoo.py +0 -0
  217. {akshare-1.15.43 → akshare-1.15.45}/akshare/pro/__init__.py +0 -0
  218. {akshare-1.15.43 → akshare-1.15.45}/akshare/pro/client.py +0 -0
  219. {akshare-1.15.43 → akshare-1.15.45}/akshare/pro/cons.py +0 -0
  220. {akshare-1.15.43 → akshare-1.15.45}/akshare/pro/data_pro.py +0 -0
  221. {akshare-1.15.43 → akshare-1.15.45}/akshare/qdii/__init__.py +0 -0
  222. {akshare-1.15.43 → akshare-1.15.45}/akshare/qdii/qdii_jsl.py +0 -0
  223. {akshare-1.15.43 → akshare-1.15.45}/akshare/qhkc/__init__.py +0 -0
  224. {akshare-1.15.43 → akshare-1.15.45}/akshare/qhkc/qhkc_api.py +0 -0
  225. {akshare-1.15.43 → akshare-1.15.45}/akshare/qhkc_web/__init__.py +0 -0
  226. {akshare-1.15.43 → akshare-1.15.45}/akshare/qhkc_web/qhkc_fund.py +0 -0
  227. {akshare-1.15.43 → akshare-1.15.45}/akshare/qhkc_web/qhkc_index.py +0 -0
  228. {akshare-1.15.43 → akshare-1.15.45}/akshare/qhkc_web/qhkc_tool.py +0 -0
  229. {akshare-1.15.43 → akshare-1.15.45}/akshare/rate/__init__.py +0 -0
  230. {akshare-1.15.43 → akshare-1.15.45}/akshare/rate/repo_rate.py +0 -0
  231. {akshare-1.15.43 → akshare-1.15.45}/akshare/reits/__init__.py +0 -0
  232. {akshare-1.15.43 → akshare-1.15.45}/akshare/reits/reits_basic.py +0 -0
  233. {akshare-1.15.43 → akshare-1.15.45}/akshare/request.py +0 -0
  234. {akshare-1.15.43 → akshare-1.15.45}/akshare/sport/__init__.py +0 -0
  235. {akshare-1.15.43 → akshare-1.15.45}/akshare/sport/sport_olympic.py +0 -0
  236. {akshare-1.15.43 → akshare-1.15.45}/akshare/spot/__init__.py +0 -0
  237. {akshare-1.15.43 → akshare-1.15.45}/akshare/spot/spot_hog_soozhu.py +0 -0
  238. {akshare-1.15.43 → akshare-1.15.45}/akshare/spot/spot_price_qh.py +0 -0
  239. {akshare-1.15.43 → akshare-1.15.45}/akshare/spot/spot_sge.py +0 -0
  240. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/__init__.py +0 -0
  241. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/cons.py +0 -0
  242. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_allotment_cninfo.py +0 -0
  243. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_ask_bid_em.py +0 -0
  244. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_board_concept_em.py +0 -0
  245. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_board_industry_em.py +0 -0
  246. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_cg_equity_mortgage.py +0 -0
  247. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_cg_guarantee.py +0 -0
  248. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_cg_lawsuit.py +0 -0
  249. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_dividend_cninfo.py +0 -0
  250. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_dzjy_em.py +0 -0
  251. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_fund_em.py +0 -0
  252. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_fund_hold.py +0 -0
  253. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_gsrl_em.py +0 -0
  254. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_hk_famous.py +0 -0
  255. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_hk_fhpx_ths.py +0 -0
  256. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_hk_hot_rank_em.py +0 -0
  257. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_hk_sina.py +0 -0
  258. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_hold_control_cninfo.py +0 -0
  259. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_hold_control_em.py +0 -0
  260. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_hold_num_cninfo.py +0 -0
  261. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_hot_rank_em.py +0 -0
  262. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_hot_search_baidu.py +0 -0
  263. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_hot_up_em.py +0 -0
  264. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_industry.py +0 -0
  265. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_industry_cninfo.py +0 -0
  266. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_industry_pe_cninfo.py +0 -0
  267. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_industry_sw.py +0 -0
  268. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_info.py +0 -0
  269. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_info_em.py +0 -0
  270. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_intraday_em.py +0 -0
  271. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_intraday_sina.py +0 -0
  272. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_ipo_summary_cninfo.py +0 -0
  273. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_new_cninfo.py +0 -0
  274. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_news_cx.py +0 -0
  275. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_profile_cninfo.py +0 -0
  276. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_rank_forecast.py +0 -0
  277. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_repurchase_em.py +0 -0
  278. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_share_changes_cninfo.py +0 -0
  279. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_share_hold.py +0 -0
  280. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_stop.py +0 -0
  281. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_summary.py +0 -0
  282. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_us_famous.py +0 -0
  283. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_us_js.py +0 -0
  284. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_us_pink.py +0 -0
  285. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_us_sina.py +0 -0
  286. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_weibo_nlp.py +0 -0
  287. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_xq.py +0 -0
  288. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_zh_a_sina.py +0 -0
  289. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_zh_a_special.py +0 -0
  290. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_zh_a_tick_tx.py +0 -0
  291. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_zh_ah_tx.py +0 -0
  292. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_zh_b_sina.py +0 -0
  293. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_zh_kcb_report.py +0 -0
  294. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock/stock_zh_kcb_sina.py +0 -0
  295. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/__init__.py +0 -0
  296. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/cons.py +0 -0
  297. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_a_below_net_asset_statistics.py +0 -0
  298. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_a_high_low.py +0 -0
  299. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_a_indicator.py +0 -0
  300. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_a_pe_and_pb.py +0 -0
  301. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_account_em.py +0 -0
  302. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_all_pb.py +0 -0
  303. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_analyst_em.py +0 -0
  304. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_board_industry_ths.py +0 -0
  305. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_buffett_index_lg.py +0 -0
  306. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_classify_sina.py +0 -0
  307. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_comment_em.py +0 -0
  308. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_concept_futu.py +0 -0
  309. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_congestion_lg.py +0 -0
  310. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_cyq_em.py +0 -0
  311. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_disclosure_cninfo.py +0 -0
  312. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_dxsyl_em.py +0 -0
  313. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_ebs_lg.py +0 -0
  314. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_esg_sina.py +0 -0
  315. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_fhps_em.py +0 -0
  316. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_fhps_ths.py +0 -0
  317. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_fund_flow.py +0 -0
  318. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_gddh_em.py +0 -0
  319. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_gdhs.py +0 -0
  320. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_gdzjc_em.py +0 -0
  321. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_gpzy_em.py +0 -0
  322. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_gxl_lg.py +0 -0
  323. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_hist_em.py +0 -0
  324. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_hist_tx.py +0 -0
  325. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_hk_valuation_baidu.py +0 -0
  326. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_hot_xq.py +0 -0
  327. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_hsgt_em.py +0 -0
  328. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_hsgt_exchange_rate.py +0 -0
  329. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_hsgt_min_em.py +0 -0
  330. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_info.py +0 -0
  331. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_inner_trade_xq.py +0 -0
  332. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_irm_cninfo.py +0 -0
  333. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_lh_yybpm.py +0 -0
  334. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_lhb_em.py +0 -0
  335. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_lhb_sina.py +0 -0
  336. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_margin_em.py +0 -0
  337. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_margin_sse.py +0 -0
  338. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_margin_szse.py +0 -0
  339. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_market_legu.py +0 -0
  340. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_pankou_em.py +0 -0
  341. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_qsjy_em.py +0 -0
  342. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_report_em.py +0 -0
  343. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_research_report_em.py +0 -0
  344. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_sns_sseinfo.py +0 -0
  345. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_sy_em.py +0 -0
  346. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_technology_ths.py +0 -0
  347. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_tfp_em.py +0 -0
  348. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_three_report_em.py +0 -0
  349. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_ttm_lyr.py +0 -0
  350. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_value_em.py +0 -0
  351. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_wencai.py +0 -0
  352. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_yjbb_em.py +0 -0
  353. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_yjyg_cninfo.py +0 -0
  354. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_yjyg_em.py +0 -0
  355. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_yzxdr_em.py +0 -0
  356. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_zdhtmx_em.py +0 -0
  357. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_zf_pg.py +0 -0
  358. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_zh_valuation_baidu.py +0 -0
  359. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_zh_vote_baidu.py +0 -0
  360. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/stock_ztb_em.py +0 -0
  361. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_feature/ths.js +0 -0
  362. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/__init__.py +0 -0
  363. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_finance.py +0 -0
  364. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_finance_hk.py +0 -0
  365. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_finance_ths.py +0 -0
  366. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_hold.py +0 -0
  367. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_ipo_declare.py +0 -0
  368. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_kcb_detail_sse.py +0 -0
  369. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_kcb_sse.py +0 -0
  370. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_mda_ym.py +0 -0
  371. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_notice.py +0 -0
  372. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_profit_forecast_em.py +0 -0
  373. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +0 -0
  374. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_profit_forecast_ths.py +0 -0
  375. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_recommend.py +0 -0
  376. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_register_em.py +0 -0
  377. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_restricted_em.py +0 -0
  378. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_zygc.py +0 -0
  379. {akshare-1.15.43 → akshare-1.15.45}/akshare/stock_fundamental/stock_zyjs_ths.py +0 -0
  380. {akshare-1.15.43 → akshare-1.15.45}/akshare/tool/__init__.py +0 -0
  381. {akshare-1.15.43 → akshare-1.15.45}/akshare/tool/trade_date_hist.py +0 -0
  382. {akshare-1.15.43 → akshare-1.15.45}/akshare/utils/__init__.py +0 -0
  383. {akshare-1.15.43 → akshare-1.15.45}/akshare/utils/cons.py +0 -0
  384. {akshare-1.15.43 → akshare-1.15.45}/akshare/utils/context.py +0 -0
  385. {akshare-1.15.43 → akshare-1.15.45}/akshare/utils/demjson.py +0 -0
  386. {akshare-1.15.43 → akshare-1.15.45}/akshare/utils/func.py +0 -0
  387. {akshare-1.15.43 → akshare-1.15.45}/akshare/utils/token_process.py +0 -0
  388. {akshare-1.15.43 → akshare-1.15.45}/akshare/utils/tqdm.py +0 -0
  389. {akshare-1.15.43 → akshare-1.15.45}/akshare.egg-info/dependency_links.txt +0 -0
  390. {akshare-1.15.43 → akshare-1.15.45}/akshare.egg-info/requires.txt +0 -0
  391. {akshare-1.15.43 → akshare-1.15.45}/akshare.egg-info/top_level.txt +0 -0
  392. {akshare-1.15.43 → akshare-1.15.45}/pyproject.toml +0 -0
  393. {akshare-1.15.43 → akshare-1.15.45}/setup.cfg +0 -0
  394. {akshare-1.15.43 → akshare-1.15.45}/setup.py +0 -0
  395. {akshare-1.15.43 → akshare-1.15.45}/tests/__init__.py +0 -0
  396. {akshare-1.15.43 → akshare-1.15.45}/tests/test_func.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: akshare
3
- Version: 1.15.43
3
+ Version: 1.15.45
4
4
  Summary: AKShare is an elegant and simple financial data interface library for Python, built for human beings!
5
5
  Home-page: https://github.com/akfamily/akshare
6
6
  Author: AKFamily
@@ -2953,9 +2953,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
2953
2953
  1.15.41 fix: fix macro_china_fdi interface
2954
2954
  1.15.42 fix: fix get_roll_yield_bar interface
2955
2955
  1.15.43 fix: fix macro_china_urban_unemployment interface
2956
+ 1.15.44 fix: fix index_detail_hist_adjust_cni interface
2957
+ 1.15.45 fix: fix stock_jgdy_detail_em interface
2956
2958
  """
2957
2959
 
2958
- __version__ = "1.15.43"
2960
+ __version__ = "1.15.45"
2959
2961
  __author__ = "AKFamily"
2960
2962
 
2961
2963
  import sys
@@ -5274,14 +5276,6 @@ from akshare.economic.macro_china_nbs import (
5274
5276
  macro_china_nbs_region
5275
5277
  )
5276
5278
 
5277
- """
5278
- 全球期货
5279
- """
5280
- from akshare.futures.futures_international import (
5281
- futures_global_commodity_hist,
5282
- futures_global_commodity_name_url_map,
5283
- )
5284
-
5285
5279
  """
5286
5280
  外汇
5287
5281
  """
@@ -5307,23 +5301,6 @@ from akshare.option.option_commodity import (
5307
5301
  option_gfex_daily,
5308
5302
  )
5309
5303
 
5310
- """
5311
- 英为财情-债券
5312
- """
5313
- from akshare.bond.bond_investing import (
5314
- bond_investing_global,
5315
- bond_investing_global_country_name_url,
5316
- )
5317
-
5318
- """
5319
- 英为财情-指数
5320
- """
5321
- from akshare.index.index_investing import (
5322
- index_investing_global,
5323
- index_investing_global_area_index_name_code,
5324
- index_investing_global_area_index_name_url,
5325
- )
5326
-
5327
5304
  """
5328
5305
  99期货-期货库存数据
5329
5306
  """
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/11/28 22:00
4
+ Date: 2024/12/12 17:00
5
5
  Desc: 生意社网站采集大宗商品现货价格及相应基差数据, 数据时间段从 20110104-至今
6
6
  备注:现期差 = 现货价格 - 期货价格(这里的期货价格为结算价)
7
7
  黄金为 元/克, 白银为 元/千克, 玻璃现货为 元/平方米, 鸡蛋现货为 元/公斤, 鸡蛋期货为 元/500千克, 其余为 元/吨.
@@ -124,9 +124,9 @@ def futures_spot_price(
124
124
  return temp_df
125
125
  else:
126
126
  time.sleep(3)
127
- except: # noqa: E722
127
+ except Exception as e: # noqa: E722
128
128
  print(
129
- f"{date.strftime('%Y-%m-%d')}日生意社数据连接失败,第{str(i)}次尝试,最多5次"
129
+ f"{date.strftime('%Y-%m-%d')}日生意社数据连接失败[错误信息:{e}],第{str(i)}次尝试,最多5次"
130
130
  )
131
131
  i += 1
132
132
  if i > 5:
@@ -187,6 +187,8 @@ def _check_information(df_data, date):
187
187
  "郑州商品交易所",
188
188
  "大连商品交易所",
189
189
  "广州期货交易所",
190
+ # 某些天网站没有数据,比如 20180912,此时返回"暂无数据",但并不是网站被墙了
191
+ "暂无数据",
190
192
  ]:
191
193
  symbol = chinese_to_english(news)
192
194
  record = pd.DataFrame(df_data[df_data["symbol"] == string])
@@ -206,6 +208,16 @@ def _check_information(df_data, date):
206
208
  record.loc[:, "spot_price"] = float(record["spot_price"].iloc[0]) * 1000
207
209
  records = pd.concat([records, record])
208
210
 
211
+ # 20241129:如果某日没有数据,直接返回返回空表
212
+ if records.empty:
213
+ records = df_data.iloc[0:0]
214
+ records["near_basis"] = pd.Series(dtype="float")
215
+ records["dom_basis"] = pd.Series(dtype="float")
216
+ records["near_basis_rate"] = pd.Series(dtype="float")
217
+ records["dom_basis_rate"] = pd.Series(dtype="float")
218
+ records["date"] = pd.Series(dtype="object")
219
+ return records
220
+
209
221
  records.loc[:, ["near_contract_price", "dominant_contract_price", "spot_price"]] = (
210
222
  records.loc[
211
223
  :, ["near_contract_price", "dominant_contract_price", "spot_price"]
@@ -259,6 +271,7 @@ def _check_information(df_data, date):
259
271
  records["dom_basis_rate"] = (
260
272
  records["dominant_contract_price"] / records["spot_price"] - 1
261
273
  )
274
+ # records.loc[:, "date"] = date.strftime("%Y%m%d")
262
275
  records.insert(0, "date", date.strftime("%Y%m%d"))
263
276
  return records
264
277
 
@@ -300,8 +313,15 @@ def futures_spot_price_previous(date: str = "20240430") -> pd.DataFrame:
300
313
  values = main[main[4].str.endswith("%")]
301
314
  values.columns = header
302
315
  # Basis
303
- basis = pd.concat(content[2:-1])
316
+ # 对于没有数据的天,xml文件中没有数据,所以content[2:-1]可能为空
317
+ if len(content[2:-1]) > 0:
318
+ basis = pd.concat(content[2:-1])
319
+ else:
320
+ basis = pd.DataFrame(columns=["主力合约基差", "主力合约基差(%)"])
321
+
304
322
  basis.columns = ["主力合约基差", "主力合约基差(%)"]
323
+ # 20241125(jasonudu):因为部分日期,存在多个品种的现货价格,比如20151125的白糖、豆粕、豆油等,如果用商品名来merge,会出现重复列名,所以改用index来merge
324
+ # basis["商品"] = values["商品"].tolist()
305
325
  basis.index = values.index
306
326
  basis = pd.merge(
307
327
  values[["商品", "现货价格", "主力合约代码", "主力合约价格"]],
@@ -338,12 +358,12 @@ def futures_spot_price_previous(date: str = "20240430") -> pd.DataFrame:
338
358
 
339
359
  if __name__ == "__main__":
340
360
  futures_spot_price_daily_df = futures_spot_price_daily(
341
- start_day="20241028", end_day="20241128", vars_list=["CU", "RB"]
361
+ start_day="20240415", end_day="20240418", vars_list=["CU", "RB"]
342
362
  )
343
363
  print(futures_spot_price_daily_df)
344
364
 
345
- futures_spot_price_df = futures_spot_price(date="20241128")
365
+ futures_spot_price_df = futures_spot_price(date="20240430")
346
366
  print(futures_spot_price_df)
347
367
 
348
- futures_spot_price_previous_df = futures_spot_price_previous(date="20241128")
368
+ futures_spot_price_previous_df = futures_spot_price_previous(date="20240430")
349
369
  print(futures_spot_price_previous_df)
@@ -5,13 +5,14 @@ Date: 2023/11/27 18:00
5
5
  Desc: 东方财富网-数据中心-股东分析
6
6
  https://data.eastmoney.com/gdfx/
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
11
  from tqdm import tqdm
11
12
 
12
13
 
13
14
  def stock_gdfx_free_holding_statistics_em(
14
- date: str = "20210630",
15
+ date: str = "20210630",
15
16
  ) -> pd.DataFrame:
16
17
  """
17
18
  东方财富网-数据中心-股东分析-股东持股统计-十大流通股东
@@ -83,15 +84,33 @@ def stock_gdfx_free_holding_statistics_em(
83
84
  ]
84
85
  ]
85
86
  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个交易日-最小涨幅"])
87
+ big_df["公告日后涨幅统计-10个交易日-平均涨幅"] = pd.to_numeric(
88
+ big_df["公告日后涨幅统计-10个交易日-平均涨幅"]
89
+ )
90
+ big_df["公告日后涨幅统计-10个交易日-最大涨幅"] = pd.to_numeric(
91
+ big_df["公告日后涨幅统计-10个交易日-最大涨幅"]
92
+ )
93
+ big_df["公告日后涨幅统计-10个交易日-最小涨幅"] = pd.to_numeric(
94
+ big_df["公告日后涨幅统计-10个交易日-最小涨幅"]
95
+ )
96
+ big_df["公告日后涨幅统计-30个交易日-平均涨幅"] = pd.to_numeric(
97
+ big_df["公告日后涨幅统计-30个交易日-平均涨幅"]
98
+ )
99
+ big_df["公告日后涨幅统计-30个交易日-最大涨幅"] = pd.to_numeric(
100
+ big_df["公告日后涨幅统计-30个交易日-最大涨幅"]
101
+ )
102
+ big_df["公告日后涨幅统计-30个交易日-最小涨幅"] = pd.to_numeric(
103
+ big_df["公告日后涨幅统计-30个交易日-最小涨幅"]
104
+ )
105
+ big_df["公告日后涨幅统计-60个交易日-平均涨幅"] = pd.to_numeric(
106
+ big_df["公告日后涨幅统计-60个交易日-平均涨幅"]
107
+ )
108
+ big_df["公告日后涨幅统计-60个交易日-最大涨幅"] = pd.to_numeric(
109
+ big_df["公告日后涨幅统计-60个交易日-最大涨幅"]
110
+ )
111
+ big_df["公告日后涨幅统计-60个交易日-最小涨幅"] = pd.to_numeric(
112
+ big_df["公告日后涨幅统计-60个交易日-最小涨幅"]
113
+ )
95
114
  return big_df
96
115
 
97
116
 
@@ -167,15 +186,33 @@ def stock_gdfx_holding_statistics_em(date: str = "20210930") -> pd.DataFrame:
167
186
  ]
168
187
  ]
169
188
  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个交易日-最小涨幅"])
189
+ big_df["公告日后涨幅统计-10个交易日-平均涨幅"] = pd.to_numeric(
190
+ big_df["公告日后涨幅统计-10个交易日-平均涨幅"]
191
+ )
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["公告日后涨幅统计-30个交易日-平均涨幅"] = pd.to_numeric(
199
+ big_df["公告日后涨幅统计-30个交易日-平均涨幅"]
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["公告日后涨幅统计-60个交易日-平均涨幅"] = pd.to_numeric(
208
+ big_df["公告日后涨幅统计-60个交易日-平均涨幅"]
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
+ )
179
216
  return big_df
180
217
 
181
218
 
@@ -334,7 +371,7 @@ def stock_gdfx_holding_change_em(date: str = "20210930") -> pd.DataFrame:
334
371
 
335
372
 
336
373
  def stock_gdfx_free_top_10_em(
337
- symbol: str = "sh688686", date: str = "20210630"
374
+ symbol: str = "sh688686", date: str = "20240930"
338
375
  ) -> pd.DataFrame:
339
376
  """
340
377
  东方财富网-个股-十大流通股东
@@ -384,14 +421,16 @@ def stock_gdfx_free_top_10_em(
384
421
  "变动比率",
385
422
  ]
386
423
  ]
387
- temp_df["持股数"] = pd.to_numeric(temp_df["持股数"])
388
- temp_df["占总流通股本持股比例"] = pd.to_numeric(temp_df["占总流通股本持股比例"])
389
- temp_df["变动比率"] = pd.to_numeric(temp_df["变动比率"])
424
+ temp_df["持股数"] = pd.to_numeric(temp_df["持股数"], errors="coerce")
425
+ temp_df["占总流通股本持股比例"] = pd.to_numeric(
426
+ temp_df["占总流通股本持股比例"], errors="coerce"
427
+ )
428
+ temp_df["变动比率"] = pd.to_numeric(temp_df["变动比率"], errors="coerce")
390
429
  return temp_df
391
430
 
392
431
 
393
432
  def stock_gdfx_top_10_em(
394
- symbol: str = "sh688686", date: str = "20210630"
433
+ symbol: str = "sh688686", date: str = "20210630"
395
434
  ) -> pd.DataFrame:
396
435
  """
397
436
  东方财富网-个股-十大股东
@@ -477,24 +516,27 @@ def stock_gdfx_free_holding_detail_em(date: str = "20210930") -> pd.DataFrame:
477
516
 
478
517
  big_df.reset_index(inplace=True)
479
518
  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)
519
+ big_df.rename(
520
+ columns={
521
+ "index": "序号",
522
+ "HOLDER_NAME": "股东名称",
523
+ "HOLDER_TYPE": "股东类型",
524
+ "SHARES_TYPE": "股份类型",
525
+ "HOLDER_RANK": "股东排名",
526
+ "SECURITY_CODE": "股票代码",
527
+ "SECURITY_NAME_ABBR": "股票简称",
528
+ "HOLD_NUM": "期末持股-数量",
529
+ "FREE_HOLDNUM_RATIO": "期末持股-持股占流通股比",
530
+ "XZCHANGE": "期末持股-数量变化",
531
+ "CHANGE_RATIO": "期末持股-数量变化比例",
532
+ "HOLDNUM_CHANGE_NAME": "期末持股-持股变动",
533
+ "HOLDER_MARKET_CAP": "期末持股-流通市值",
534
+ "END_DATE": "报告期",
535
+ "UPDATE_DATE": "公告日",
536
+ "REPORT_DATE_NAME": "报告名称",
537
+ },
538
+ inplace=True,
539
+ )
498
540
 
499
541
  big_df = big_df[
500
542
  [
@@ -515,13 +557,21 @@ def stock_gdfx_free_holding_detail_em(date: str = "20210930") -> pd.DataFrame:
515
557
  big_df["报告期"] = pd.to_datetime(big_df["报告期"], errors="coerce").dt.date
516
558
  big_df["公告日"] = pd.to_datetime(big_df["公告日"], errors="coerce").dt.date
517
559
  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")
560
+ big_df["期末持股-数量变化"] = pd.to_numeric(
561
+ big_df["期末持股-数量变化"], errors="coerce"
562
+ )
563
+ big_df["期末持股-数量变化比例"] = pd.to_numeric(
564
+ big_df["期末持股-数量变化比例"], errors="coerce"
565
+ )
566
+ big_df["期末持股-流通市值"] = pd.to_numeric(
567
+ big_df["期末持股-流通市值"], errors="coerce"
568
+ )
521
569
  return big_df
522
570
 
523
571
 
524
- def stock_gdfx_holding_detail_em(date: str = "20230331", indicator: str = "个人", symbol: str = "新进") -> pd.DataFrame:
572
+ def stock_gdfx_holding_detail_em(
573
+ date: str = "20230331", indicator: str = "个人", symbol: str = "新进"
574
+ ) -> pd.DataFrame:
525
575
  """
526
576
  东方财富网-数据中心-股东分析-股东持股明细-十大股东
527
577
  https://data.eastmoney.com/gdfx/HoldingAnalyse.html
@@ -559,22 +609,24 @@ def stock_gdfx_holding_detail_em(date: str = "20230331", indicator: str = "个
559
609
 
560
610
  big_df.reset_index(inplace=True)
561
611
  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)
612
+ big_df.rename(
613
+ columns={
614
+ "index": "序号",
615
+ "HOLDER_NAME": "股东名称",
616
+ "HOLDER_NEWTYPE": "股东类型",
617
+ "RANK": "股东排名",
618
+ "SECURITY_CODE": "股票代码",
619
+ "SECURITY_NAME_ABBR": "股票简称",
620
+ "END_DATE": "报告期",
621
+ "HOLD_NUM": "期末持股-数量",
622
+ "HOLD_NUM_CHANGE": "期末持股-数量变化",
623
+ "HOLD_RATIO_CHANGE": "期末持股-数量变化比例",
624
+ "HOLDNUM_CHANGE_NAME": "期末持股-持股变动",
625
+ "HOLDER_MARKET_CAP": "期末持股-流通市值",
626
+ "NOTICE_DATE": "公告日",
627
+ },
628
+ inplace=True,
629
+ )
578
630
 
579
631
  big_df = big_df[
580
632
  [
@@ -596,9 +648,15 @@ def stock_gdfx_holding_detail_em(date: str = "20230331", indicator: str = "个
596
648
  big_df["报告期"] = pd.to_datetime(big_df["报告期"], errors="coerce").dt.date
597
649
  big_df["公告日"] = pd.to_datetime(big_df["公告日"], errors="coerce").dt.date
598
650
  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")
651
+ big_df["期末持股-数量变化"] = pd.to_numeric(
652
+ big_df["期末持股-数量变化"], errors="coerce"
653
+ )
654
+ big_df["期末持股-数量变化比例"] = pd.to_numeric(
655
+ big_df["期末持股-数量变化比例"], errors="coerce"
656
+ )
657
+ big_df["期末持股-流通市值"] = pd.to_numeric(
658
+ big_df["期末持股-流通市值"], errors="coerce"
659
+ )
602
660
  big_df["股东排名"] = pd.to_numeric(big_df["股东排名"], errors="coerce")
603
661
  return big_df
604
662
 
@@ -637,23 +695,26 @@ def stock_gdfx_free_holding_analyse_em(date: str = "20230930") -> pd.DataFrame:
637
695
 
638
696
  big_df.reset_index(inplace=True)
639
697
  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)
698
+ big_df.rename(
699
+ columns={
700
+ "index": "序号",
701
+ "HOLDER_NAME": "股东名称",
702
+ "HOLDER_TYPE": "股东类型",
703
+ "SECURITY_CODE": "股票代码",
704
+ "SECURITY_NAME_ABBR": "股票简称",
705
+ "END_DATE": "报告期",
706
+ "HOLD_NUM": "期末持股-数量",
707
+ "XZCHANGE": "期末持股-数量变化",
708
+ "HOLD_RATIO_CHANGE": "期末持股-数量变化比例",
709
+ "HOLDNUM_CHANGE_NAME": "期末持股-持股变动",
710
+ "HOLDER_MARKET_CAP": "期末持股-流通市值",
711
+ "UPDATE_DATE": "公告日",
712
+ "D10_ADJCHRATE": "公告日后涨跌幅-10个交易日",
713
+ "D30_ADJCHRATE": "公告日后涨跌幅-30个交易日",
714
+ "D60_ADJCHRATE": "公告日后涨跌幅-60个交易日",
715
+ },
716
+ inplace=True,
717
+ )
657
718
  big_df = big_df[
658
719
  [
659
720
  "序号",
@@ -676,12 +737,24 @@ def stock_gdfx_free_holding_analyse_em(date: str = "20230930") -> pd.DataFrame:
676
737
  big_df["报告期"] = pd.to_datetime(big_df["报告期"], errors="coerce").dt.date
677
738
  big_df["公告日"] = pd.to_datetime(big_df["公告日"], errors="coerce").dt.date
678
739
  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")
740
+ big_df["期末持股-数量变化"] = pd.to_numeric(
741
+ big_df["期末持股-数量变化"], errors="coerce"
742
+ )
743
+ big_df["期末持股-数量变化比例"] = pd.to_numeric(
744
+ big_df["期末持股-数量变化比例"], errors="coerce"
745
+ )
746
+ big_df["期末持股-流通市值"] = pd.to_numeric(
747
+ big_df["期末持股-流通市值"], errors="coerce"
748
+ )
749
+ big_df["公告日后涨跌幅-10个交易日"] = pd.to_numeric(
750
+ big_df["公告日后涨跌幅-10个交易日"], errors="coerce"
751
+ )
752
+ big_df["公告日后涨跌幅-30个交易日"] = pd.to_numeric(
753
+ big_df["公告日后涨跌幅-30个交易日"], errors="coerce"
754
+ )
755
+ big_df["公告日后涨跌幅-60个交易日"] = pd.to_numeric(
756
+ big_df["公告日后涨跌幅-60个交易日"], errors="coerce"
757
+ )
685
758
  return big_df
686
759
 
687
760
 
@@ -718,7 +791,7 @@ def stock_gdfx_holding_analyse_em(date: str = "20230331") -> pd.DataFrame:
718
791
  big_df = pd.concat([big_df, temp_df], ignore_index=True)
719
792
 
720
793
  big_df.reset_index(inplace=True)
721
- big_df['index'] = big_df['index'] + 1
794
+ big_df["index"] = big_df["index"] + 1
722
795
  big_df.rename(
723
796
  columns={
724
797
  "index": "序号",
@@ -766,12 +839,24 @@ def stock_gdfx_holding_analyse_em(date: str = "20230331") -> pd.DataFrame:
766
839
  big_df["公告日"] = pd.to_datetime(big_df["公告日"]).dt.date
767
840
  big_df["报告期"] = pd.to_datetime(big_df["报告期"]).dt.date
768
841
  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")
842
+ big_df["期末持股-数量变化"] = pd.to_numeric(
843
+ big_df["期末持股-数量变化"], errors="coerce"
844
+ )
845
+ big_df["期末持股-数量变化比例"] = pd.to_numeric(
846
+ big_df["期末持股-数量变化比例"], errors="coerce"
847
+ )
848
+ big_df["期末持股-流通市值"] = pd.to_numeric(
849
+ big_df["期末持股-流通市值"], errors="coerce"
850
+ )
851
+ big_df["公告日后涨跌幅-10个交易日"] = pd.to_numeric(
852
+ big_df["公告日后涨跌幅-10个交易日"], errors="coerce"
853
+ )
854
+ big_df["公告日后涨跌幅-30个交易日"] = pd.to_numeric(
855
+ big_df["公告日后涨跌幅-30个交易日"], errors="coerce"
856
+ )
857
+ big_df["公告日后涨跌幅-60个交易日"] = pd.to_numeric(
858
+ big_df["公告日后涨跌幅-60个交易日"], errors="coerce"
859
+ )
775
860
  return big_df
776
861
 
777
862