akshare 1.12.99__py3-none-any.whl → 1.15.72__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.

Potentially problematic release.


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

Files changed (236) hide show
  1. akshare/__init__.py +441 -138
  2. akshare/air/air_hebei.py +79 -53
  3. akshare/air/air_zhenqi.py +29 -43
  4. akshare/air/sunrise_tad.py +32 -17
  5. akshare/bank/bank_cbirc_2020.py +12 -9
  6. akshare/bond/bond_cb_ths.py +17 -9
  7. akshare/bond/bond_china.py +38 -39
  8. akshare/bond/bond_china_money.py +75 -48
  9. akshare/bond/bond_info_cm.py +28 -8
  10. akshare/bond/bond_issue_cninfo.py +73 -30
  11. akshare/bond/bond_zh_cov.py +1 -1
  12. akshare/bond/bond_zh_sina.py +57 -51
  13. akshare/cal/__init__.py +0 -0
  14. akshare/cal/rv.py +170 -0
  15. akshare/cost/cost_living.py +7 -5
  16. akshare/currency/currency_safe.py +7 -6
  17. akshare/data/cninfo.js +15 -0
  18. akshare/datasets.py +10 -21
  19. akshare/economic/macro_bank.py +95 -653
  20. akshare/economic/macro_china.py +772 -1024
  21. akshare/economic/macro_china_hk.py +65 -243
  22. akshare/economic/macro_china_nbs.py +24 -7
  23. akshare/economic/macro_constitute.py +17 -12
  24. akshare/economic/macro_euro.py +13 -6
  25. akshare/economic/macro_finance_ths.py +133 -0
  26. akshare/economic/macro_info_ws.py +100 -0
  27. akshare/economic/macro_japan.py +5 -4
  28. akshare/economic/macro_other.py +12 -9
  29. akshare/economic/macro_usa.py +376 -1940
  30. akshare/economic/marco_cnbs.py +11 -6
  31. akshare/energy/energy_carbon.py +94 -125
  32. akshare/event/migration.py +3 -2
  33. akshare/exceptions.py +43 -0
  34. akshare/file_fold/calendar.json +245 -2
  35. akshare/fortune/fortune_500.py +15 -48
  36. akshare/fund/fund_amac.py +157 -75
  37. akshare/fund/fund_em.py +191 -184
  38. akshare/fund/fund_etf_em.py +16 -15
  39. akshare/fund/fund_etf_sina.py +71 -23
  40. akshare/fund/fund_etf_ths.py +93 -0
  41. akshare/fund/fund_fee_em.py +98 -0
  42. akshare/fund/fund_portfolio_em.py +60 -50
  43. akshare/fund/fund_rank_em.py +91 -82
  44. akshare/fund/fund_report_cninfo.py +63 -48
  45. akshare/fund/fund_scale_sina.py +20 -10
  46. akshare/fund/fund_xq.py +139 -109
  47. akshare/futures/cons.py +8 -31
  48. akshare/futures/cot.py +185 -137
  49. akshare/futures/futures_basis.py +97 -32
  50. akshare/futures/futures_comm_ctp.py +37 -0
  51. akshare/futures/futures_comm_qihuo.py +74 -45
  52. akshare/futures/futures_daily_bar.py +121 -184
  53. akshare/futures/futures_hf_em.py +66 -61
  54. akshare/futures/futures_hq_sina.py +79 -61
  55. akshare/futures/futures_index_ccidx.py +6 -3
  56. akshare/futures/futures_inventory_99.py +61 -272
  57. akshare/futures/futures_news_shmet.py +4 -2
  58. akshare/futures/futures_roll_yield.py +12 -25
  59. akshare/futures/futures_spot_stock_em.py +19 -13
  60. akshare/futures/futures_stock_js.py +14 -12
  61. akshare/futures/futures_to_spot.py +38 -33
  62. akshare/futures/futures_warehouse_receipt.py +75 -71
  63. akshare/futures/futures_zh_sina.py +5 -5
  64. akshare/futures/symbol_var.py +18 -13
  65. akshare/futures_derivative/futures_contract_info_czce.py +60 -52
  66. akshare/futures_derivative/futures_contract_info_ine.py +43 -34
  67. akshare/futures_derivative/futures_contract_info_shfe.py +46 -35
  68. akshare/futures_derivative/futures_cot_sina.py +26 -19
  69. akshare/futures_derivative/futures_spot_sys.py +21 -8
  70. akshare/fx/currency_investing.py +19 -285
  71. akshare/index/index_cflp.py +29 -26
  72. akshare/index/index_cni.py +86 -88
  73. akshare/index/index_cons.py +26 -10
  74. akshare/index/index_cx.py +248 -47
  75. akshare/index/index_drewry.py +17 -16
  76. akshare/index/index_option_qvix.py +329 -0
  77. akshare/index/index_research_fund_sw.py +134 -0
  78. akshare/index/{index_sw_research.py → index_research_sw.py} +122 -58
  79. akshare/index/index_spot.py +9 -5
  80. akshare/index/index_stock_hk.py +35 -16
  81. akshare/index/index_stock_us_sina.py +1 -1
  82. akshare/index/index_stock_zh.py +180 -89
  83. akshare/index/index_stock_zh_csindex.py +15 -369
  84. akshare/index/index_sw.py +62 -34
  85. akshare/index/index_yw.py +46 -23
  86. akshare/index/index_zh_a_scope.py +48 -0
  87. akshare/index/index_zh_em.py +6 -4
  88. akshare/interest_rate/interbank_rate_em.py +14 -9
  89. akshare/movie/artist_yien.py +32 -5
  90. akshare/movie/movie_yien.py +92 -18
  91. akshare/movie/video_yien.py +28 -5
  92. akshare/news/news_baidu.py +78 -44
  93. akshare/news/news_cctv.py +38 -38
  94. akshare/news/news_stock.py +6 -3
  95. akshare/nlp/nlp_interface.py +7 -8
  96. akshare/option/cons.py +11 -11
  97. akshare/option/option_comm_qihuo.py +86 -0
  98. akshare/option/option_commodity.py +178 -51
  99. akshare/option/option_daily_stats_sse_szse.py +146 -0
  100. akshare/option/option_em.py +147 -138
  101. akshare/option/option_finance_sina.py +160 -137
  102. akshare/option/option_lhb_em.py +62 -56
  103. akshare/option/option_risk_indicator_sse.py +17 -14
  104. akshare/other/other_car_cpca.py +934 -0
  105. akshare/other/{other_car.py → other_car_gasgoo.py} +15 -54
  106. akshare/qdii/__init__.py +0 -0
  107. akshare/qdii/qdii_jsl.py +233 -0
  108. akshare/request.py +117 -0
  109. akshare/spot/spot_hog_soozhu.py +232 -0
  110. akshare/spot/spot_price_qh.py +121 -0
  111. akshare/spot/spot_sge.py +63 -10
  112. akshare/stock/stock_allotment_cninfo.py +10 -9
  113. akshare/stock/stock_board_concept_em.py +23 -14
  114. akshare/stock/stock_board_industry_em.py +40 -34
  115. akshare/stock/stock_cg_equity_mortgage.py +15 -11
  116. akshare/stock/stock_cg_guarantee.py +41 -51
  117. akshare/stock/stock_cg_lawsuit.py +36 -35
  118. akshare/stock/stock_dividend_cninfo.py +12 -6
  119. akshare/stock/stock_dzjy_em.py +347 -260
  120. akshare/stock/stock_fund_em.py +332 -84
  121. akshare/stock/stock_hk_famous.py +108 -0
  122. akshare/stock/stock_hk_sina.py +8 -7
  123. akshare/stock/stock_hold_control_cninfo.py +100 -15
  124. akshare/stock/stock_hold_control_em.py +4 -3
  125. akshare/stock/stock_hold_num_cninfo.py +18 -12
  126. akshare/stock/stock_hot_rank_em.py +2 -1
  127. akshare/stock/stock_hot_search_baidu.py +5 -2
  128. akshare/stock/stock_industry_cninfo.py +24 -18
  129. akshare/stock/stock_industry_pe_cninfo.py +45 -31
  130. akshare/stock/stock_industry_sw.py +9 -10
  131. akshare/stock/stock_info.py +25 -15
  132. akshare/stock/stock_info_em.py +5 -2
  133. akshare/stock/stock_intraday_em.py +5 -2
  134. akshare/stock/stock_intraday_sina.py +22 -18
  135. akshare/stock/stock_ipo_summary_cninfo.py +25 -10
  136. akshare/stock/stock_new_cninfo.py +32 -19
  137. akshare/stock/stock_news_cx.py +39 -0
  138. akshare/stock/stock_profile_cninfo.py +9 -8
  139. akshare/stock/stock_rank_forecast.py +8 -6
  140. akshare/stock/stock_share_changes_cninfo.py +18 -14
  141. akshare/stock/stock_share_hold.py +24 -19
  142. akshare/stock/stock_summary.py +54 -26
  143. akshare/stock/stock_us_famous.py +15 -6
  144. akshare/stock/stock_us_pink.py +7 -5
  145. akshare/stock/stock_us_sina.py +15 -12
  146. akshare/stock/stock_xq.py +38 -12
  147. akshare/stock/stock_zh_a_sina.py +53 -78
  148. akshare/stock/stock_zh_b_sina.py +32 -55
  149. akshare/stock/stock_zh_kcb_report.py +11 -9
  150. akshare/stock/stock_zh_kcb_sina.py +67 -64
  151. akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
  152. akshare/stock_feature/stock_a_high_low.py +5 -2
  153. akshare/stock_feature/stock_a_indicator.py +12 -9
  154. akshare/stock_feature/stock_a_pe_and_pb.py +27 -6
  155. akshare/stock_feature/stock_account_em.py +58 -40
  156. akshare/stock_feature/stock_analyst_em.py +36 -27
  157. akshare/stock_feature/stock_board_industry_ths.py +136 -400
  158. akshare/stock_feature/stock_comment_em.py +118 -85
  159. akshare/stock_feature/stock_concept_futu.py +183 -0
  160. akshare/stock_feature/stock_cyq_em.py +58 -54
  161. akshare/stock_feature/stock_disclosure_cninfo.py +147 -102
  162. akshare/stock_feature/stock_esg_sina.py +216 -11
  163. akshare/stock_feature/stock_fhps_em.py +60 -25
  164. akshare/stock_feature/stock_fhps_ths.py +25 -6
  165. akshare/stock_feature/stock_fund_flow.py +38 -25
  166. akshare/stock_feature/stock_gdfx_em.py +180 -95
  167. akshare/stock_feature/stock_gdhs.py +73 -49
  168. akshare/stock_feature/stock_gpzy_em.py +78 -46
  169. akshare/stock_feature/stock_hist_em.py +55 -23
  170. akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
  171. akshare/stock_feature/stock_hsgt_em.py +184 -452
  172. akshare/stock_feature/stock_info.py +52 -29
  173. akshare/stock_feature/stock_inner_trade_xq.py +39 -31
  174. akshare/stock_feature/stock_irm_cninfo.py +32 -9
  175. akshare/stock_feature/stock_jgdy_em.py +41 -38
  176. akshare/stock_feature/stock_lh_yybpm.py +36 -37
  177. akshare/stock_feature/stock_lhb_em.py +135 -71
  178. akshare/stock_feature/stock_lhb_sina.py +93 -46
  179. akshare/stock_feature/stock_margin_em.py +102 -0
  180. akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -15
  181. akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +23 -19
  182. akshare/stock_feature/stock_market_legu.py +13 -8
  183. akshare/stock_feature/stock_pankou_em.py +72 -34
  184. akshare/stock_feature/stock_report_em.py +244 -54
  185. akshare/stock_feature/stock_research_report_em.py +48 -19
  186. akshare/stock_feature/stock_sns_sseinfo.py +15 -12
  187. akshare/stock_feature/stock_sy_em.py +86 -33
  188. akshare/stock_feature/stock_technology_ths.py +152 -120
  189. akshare/stock_feature/stock_tfp_em.py +35 -13
  190. akshare/stock_feature/stock_three_report_em.py +119 -77
  191. akshare/stock_feature/stock_ttm_lyr.py +4 -7
  192. akshare/stock_feature/stock_value_em.py +83 -0
  193. akshare/stock_feature/stock_wencai.py +21 -9
  194. akshare/stock_feature/stock_yjyg_em.py +63 -28
  195. akshare/stock_feature/stock_zf_pg.py +61 -38
  196. akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
  197. akshare/stock_feature/stock_ztb_em.py +62 -40
  198. akshare/stock_fundamental/stock_finance.py +150 -58
  199. akshare/stock_fundamental/stock_finance_ths.py +116 -31
  200. akshare/stock_fundamental/stock_mda_ym.py +5 -3
  201. akshare/stock_fundamental/stock_notice.py +29 -15
  202. akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
  203. akshare/stock_fundamental/stock_profit_forecast_ths.py +19 -10
  204. akshare/stock_fundamental/stock_register_em.py +448 -0
  205. akshare/stock_fundamental/stock_restricted_em.py +79 -32
  206. akshare/stock_fundamental/stock_zygc.py +10 -8
  207. akshare/stock_fundamental/stock_zyjs_ths.py +5 -3
  208. akshare/tool/trade_date_hist.py +4 -3
  209. akshare/utils/cons.py +10 -0
  210. akshare/utils/context.py +43 -0
  211. akshare/utils/demjson.py +2 -2
  212. akshare/utils/func.py +26 -0
  213. akshare/utils/tqdm.py +13 -3
  214. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/METADATA +52 -69
  215. akshare-1.15.72.dist-info/RECORD +385 -0
  216. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/WHEEL +1 -1
  217. tests/test_func.py +3 -5
  218. akshare/bond/bond_futures.py +0 -50
  219. akshare/bond/bond_investing.py +0 -139
  220. akshare/crypto/crypto_hist_investing.py +0 -249
  221. akshare/fortune/fortune_it_juzi.py +0 -123
  222. akshare/futures/futures_international.py +0 -170
  223. akshare/futures/futures_news_baidu.py +0 -54
  224. akshare/futures/inventory_data.py +0 -100
  225. akshare/futures_derivative/futures_index_price_nh.py +0 -61
  226. akshare/futures_derivative/futures_index_return_nh.py +0 -47
  227. akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
  228. akshare/futures_derivative/futures_other_index_nh.py +0 -145
  229. akshare/index/index_fear_greed_funddb.py +0 -71
  230. akshare/index/index_investing.py +0 -232
  231. akshare/sport/sport_olympic_winter.py +0 -39
  232. akshare/stock_feature/stock_board_concept_ths.py +0 -422
  233. akshare/stock_fundamental/stock_register.py +0 -292
  234. akshare-1.12.99.dist-info/RECORD +0 -374
  235. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/LICENSE +0 -0
  236. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/top_level.txt +0 -0
@@ -1,13 +1,14 @@
1
1
  # -*- coding:utf-8 -*-
2
2
  # !/usr/bin/env python
3
3
  """
4
- Date: 2022/3/15 17:32
4
+ Date: 2024/4/22 14:00
5
5
  Desc: 东方财富网-数据中心-龙虎榜单
6
6
  https://data.eastmoney.com/stock/tradedetail.html
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
- from tqdm import tqdm
11
+ from akshare.utils.tqdm import get_tqdm
11
12
 
12
13
 
13
14
  def stock_lhb_detail_em(
@@ -32,7 +33,10 @@ def stock_lhb_detail_em(
32
33
  "pageSize": "5000",
33
34
  "pageNumber": "1",
34
35
  "reportName": "RPT_DAILYBILLBOARD_DETAILSNEW",
35
- "columns": "SECURITY_CODE,SECUCODE,SECURITY_NAME_ABBR,TRADE_DATE,EXPLAIN,CLOSE_PRICE,CHANGE_RATE,BILLBOARD_NET_AMT,BILLBOARD_BUY_AMT,BILLBOARD_SELL_AMT,BILLBOARD_DEAL_AMT,ACCUM_AMOUNT,DEAL_NET_RATIO,DEAL_AMOUNT_RATIO,TURNOVERRATE,FREE_MARKET_CAP,EXPLANATION,D1_CLOSE_ADJCHRATE,D2_CLOSE_ADJCHRATE,D5_CLOSE_ADJCHRATE,D10_CLOSE_ADJCHRATE,SECURITY_TYPE_CODE",
36
+ "columns": "SECURITY_CODE,SECUCODE,SECURITY_NAME_ABBR,TRADE_DATE,EXPLAIN,CLOSE_PRICE,CHANGE_RATE,"
37
+ "BILLBOARD_NET_AMT,BILLBOARD_BUY_AMT,BILLBOARD_SELL_AMT,BILLBOARD_DEAL_AMT,ACCUM_AMOUNT,"
38
+ "DEAL_NET_RATIO,DEAL_AMOUNT_RATIO,TURNOVERRATE,FREE_MARKET_CAP,EXPLANATION,D1_CLOSE_ADJCHRATE,"
39
+ "D2_CLOSE_ADJCHRATE,D5_CLOSE_ADJCHRATE,D10_CLOSE_ADJCHRATE,SECURITY_TYPE_CODE",
36
40
  "source": "WEB",
37
41
  "client": "WEB",
38
42
  "filter": f"(TRADE_DATE<='{end_date}')(TRADE_DATE>='{start_date}')",
@@ -41,7 +45,8 @@ def stock_lhb_detail_em(
41
45
  data_json = r.json()
42
46
  total_page_num = data_json["result"]["pages"]
43
47
  big_df = pd.DataFrame()
44
- for page in range(1, total_page_num + 1):
48
+ tqdm = get_tqdm()
49
+ for page in tqdm(range(1, total_page_num + 1), leave=False):
45
50
  params.update(
46
51
  {
47
52
  "pageNumber": page,
@@ -106,8 +111,7 @@ def stock_lhb_detail_em(
106
111
  "上榜后10日",
107
112
  ]
108
113
  ]
109
- big_df["上榜日"] = pd.to_datetime(big_df["上榜日"]).dt.date
110
-
114
+ big_df["上榜日"] = pd.to_datetime(big_df["上榜日"], errors="coerce").dt.date
111
115
  big_df["收盘价"] = pd.to_numeric(big_df["收盘价"], errors="coerce")
112
116
  big_df["涨跌幅"] = pd.to_numeric(big_df["涨跌幅"], errors="coerce")
113
117
  big_df["龙虎榜净买额"] = pd.to_numeric(big_df["龙虎榜净买额"], errors="coerce")
@@ -115,8 +119,12 @@ def stock_lhb_detail_em(
115
119
  big_df["龙虎榜卖出额"] = pd.to_numeric(big_df["龙虎榜卖出额"], errors="coerce")
116
120
  big_df["龙虎榜成交额"] = pd.to_numeric(big_df["龙虎榜成交额"], errors="coerce")
117
121
  big_df["市场总成交额"] = pd.to_numeric(big_df["市场总成交额"], errors="coerce")
118
- big_df["净买额占总成交比"] = pd.to_numeric(big_df["净买额占总成交比"], errors="coerce")
119
- big_df["成交额占总成交比"] = pd.to_numeric(big_df["成交额占总成交比"], errors="coerce")
122
+ big_df["净买额占总成交比"] = pd.to_numeric(
123
+ big_df["净买额占总成交比"], errors="coerce"
124
+ )
125
+ big_df["成交额占总成交比"] = pd.to_numeric(
126
+ big_df["成交额占总成交比"], errors="coerce"
127
+ )
120
128
  big_df["换手率"] = pd.to_numeric(big_df["换手率"], errors="coerce")
121
129
  big_df["流通市值"] = pd.to_numeric(big_df["流通市值"], errors="coerce")
122
130
  big_df["上榜后1日"] = pd.to_numeric(big_df["上榜后1日"], errors="coerce")
@@ -145,7 +153,7 @@ def stock_lhb_stock_statistic_em(symbol: str = "近一月") -> pd.DataFrame:
145
153
  params = {
146
154
  "sortColumns": "BILLBOARD_TIMES,LATEST_TDATE,SECURITY_CODE",
147
155
  "sortTypes": "-1,-1,1",
148
- "pageSize": "500",
156
+ "pageSize": "5000",
149
157
  "pageNumber": "1",
150
158
  "reportName": "RPT_BILLBOARD_TRADEALL",
151
159
  "columns": "ALL",
@@ -209,12 +217,14 @@ def stock_lhb_stock_statistic_em(symbol: str = "近一月") -> pd.DataFrame:
209
217
  "近1年涨跌幅",
210
218
  ]
211
219
  ]
212
- temp_df["最近上榜日"] = pd.to_datetime(temp_df["最近上榜日"]).dt.date
220
+ temp_df["最近上榜日"] = pd.to_datetime(
221
+ temp_df["最近上榜日"], errors="coerce"
222
+ ).dt.date
213
223
  return temp_df
214
224
 
215
225
 
216
226
  def stock_lhb_jgmmtj_em(
217
- start_date: str = "20220906", end_date: str = "20220906"
227
+ start_date: str = "20240417", end_date: str = "20240430"
218
228
  ) -> pd.DataFrame:
219
229
  """
220
230
  东方财富网-数据中心-龙虎榜单-机构买卖每日统计
@@ -232,7 +242,7 @@ def stock_lhb_jgmmtj_em(
232
242
  params = {
233
243
  "sortColumns": "NET_BUY_AMT,TRADE_DATE,SECURITY_CODE",
234
244
  "sortTypes": "-1,-1,1",
235
- "pageSize": "5000",
245
+ "pageSize": "500",
236
246
  "pageNumber": "1",
237
247
  "reportName": "RPT_ORGANIZATION_TRADE_DETAILS",
238
248
  "columns": "ALL",
@@ -242,10 +252,22 @@ def stock_lhb_jgmmtj_em(
242
252
  }
243
253
  r = requests.get(url, params=params)
244
254
  data_json = r.json()
245
- temp_df = pd.DataFrame(data_json["result"]["data"])
246
- temp_df.reset_index(inplace=True)
247
- temp_df["index"] = temp_df.index + 1
248
- temp_df.columns = [
255
+ total_page = data_json["result"]["pages"]
256
+ big_df = pd.DataFrame()
257
+ tqdm = get_tqdm()
258
+ for page in tqdm(range(1, total_page + 1), leave=False):
259
+ params.update(
260
+ {
261
+ "pageNumber": page,
262
+ }
263
+ )
264
+ r = requests.get(url, params=params)
265
+ data_json = r.json()
266
+ temp_df = pd.DataFrame(data_json["result"]["data"])
267
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
268
+ big_df.reset_index(inplace=True)
269
+ big_df["index"] = big_df.index + 1
270
+ big_df.columns = [
249
271
  "序号",
250
272
  "-",
251
273
  "名称",
@@ -273,7 +295,7 @@ def stock_lhb_jgmmtj_em(
273
295
  "-",
274
296
  "-",
275
297
  ]
276
- temp_df = temp_df[
298
+ big_df = big_df[
277
299
  [
278
300
  "序号",
279
301
  "代码",
@@ -293,20 +315,21 @@ def stock_lhb_jgmmtj_em(
293
315
  "上榜日期",
294
316
  ]
295
317
  ]
296
- temp_df["上榜日期"] = pd.to_datetime(temp_df["上榜日期"]).dt.date
297
- temp_df["收盘价"] = pd.to_numeric(temp_df["收盘价"], errors="coerce")
298
- temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
299
- temp_df["买方机构数"] = pd.to_numeric(temp_df["买方机构数"], errors="coerce")
300
- temp_df["卖方机构数"] = pd.to_numeric(temp_df["卖方机构数"], errors="coerce")
301
- temp_df["机构买入总额"] = pd.to_numeric(temp_df["机构买入总额"], errors="coerce")
302
- temp_df["机构卖出总额"] = pd.to_numeric(temp_df["机构卖出总额"], errors="coerce")
303
- temp_df["机构买入净额"] = pd.to_numeric(temp_df["机构买入净额"], errors="coerce")
304
- temp_df["市场总成交额"] = pd.to_numeric(temp_df["市场总成交额"], errors="coerce")
305
- temp_df["机构净买额占总成交额比"] = pd.to_numeric(temp_df["机构净买额占总成交额比"], errors="coerce")
306
- temp_df["换手率"] = pd.to_numeric(temp_df["换手率"], errors="coerce")
307
- temp_df["流通市值"] = pd.to_numeric(temp_df["流通市值"], errors="coerce")
308
-
309
- return temp_df
318
+ big_df["上榜日期"] = pd.to_datetime(big_df["上榜日期"], errors="coerce").dt.date
319
+ big_df["收盘价"] = pd.to_numeric(big_df["收盘价"], errors="coerce")
320
+ big_df["涨跌幅"] = pd.to_numeric(big_df["涨跌幅"], errors="coerce")
321
+ big_df["买方机构数"] = pd.to_numeric(big_df["买方机构数"], errors="coerce")
322
+ big_df["卖方机构数"] = pd.to_numeric(big_df["卖方机构数"], errors="coerce")
323
+ big_df["机构买入总额"] = pd.to_numeric(big_df["机构买入总额"], errors="coerce")
324
+ big_df["机构卖出总额"] = pd.to_numeric(big_df["机构卖出总额"], errors="coerce")
325
+ big_df["机构买入净额"] = pd.to_numeric(big_df["机构买入净额"], errors="coerce")
326
+ big_df["市场总成交额"] = pd.to_numeric(big_df["市场总成交额"], errors="coerce")
327
+ big_df["机构净买额占总成交额比"] = pd.to_numeric(
328
+ big_df["机构净买额占总成交额比"], errors="coerce"
329
+ )
330
+ big_df["换手率"] = pd.to_numeric(big_df["换手率"], errors="coerce")
331
+ big_df["流通市值"] = pd.to_numeric(big_df["流通市值"], errors="coerce")
332
+ return big_df
310
333
 
311
334
 
312
335
  def stock_lhb_jgstatistic_em(symbol: str = "近一月") -> pd.DataFrame:
@@ -340,12 +363,13 @@ def stock_lhb_jgstatistic_em(symbol: str = "近一月") -> pd.DataFrame:
340
363
  data_json = r.json()
341
364
  total_page = data_json["result"]["pages"]
342
365
  big_df = pd.DataFrame()
366
+ tqdm = get_tqdm()
343
367
  for page in tqdm(range(1, total_page + 1), leave=False):
344
368
  params.update({"pageNumber": page})
345
369
  r = requests.get(url, params=params)
346
370
  data_json = r.json()
347
371
  temp_df = pd.DataFrame(data_json["result"]["data"])
348
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
372
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
349
373
  big_df.reset_index(inplace=True)
350
374
  big_df["index"] = big_df.index + 1
351
375
  big_df.rename(
@@ -411,7 +435,7 @@ def stock_lhb_hyyyb_em(
411
435
  ) -> pd.DataFrame:
412
436
  """
413
437
  东方财富网-数据中心-龙虎榜单-每日活跃营业部
414
- https://data.eastmoney.com/stock/jgmmtj.html
438
+ https://data.eastmoney.com/stock/hyyyb.html
415
439
  :param start_date: 开始日期
416
440
  :type start_date: str
417
441
  :param end_date: 结束日期
@@ -436,14 +460,14 @@ def stock_lhb_hyyyb_em(
436
460
  r = requests.get(url, params=params)
437
461
  data_json = r.json()
438
462
  total_page = data_json["result"]["pages"]
439
-
440
463
  big_df = pd.DataFrame()
464
+ tqdm = get_tqdm()
441
465
  for page in tqdm(range(1, total_page + 1), leave=False):
442
466
  params.update({"pageNumber": page})
443
467
  r = requests.get(url, params=params)
444
468
  data_json = r.json()
445
469
  temp_df = pd.DataFrame(data_json["result"]["data"])
446
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
470
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
447
471
  big_df.reset_index(inplace=True)
448
472
  big_df["index"] = big_df.index + 1
449
473
  big_df.columns = [
@@ -475,12 +499,12 @@ def stock_lhb_hyyyb_em(
475
499
  ]
476
500
  ]
477
501
 
478
- big_df["上榜日"] = pd.to_datetime(big_df["上榜日"]).dt.date
479
- big_df["买入个股数"] = pd.to_numeric(big_df["买入个股数"])
480
- big_df["卖出个股数"] = pd.to_numeric(big_df["卖出个股数"])
481
- big_df["买入总金额"] = pd.to_numeric(big_df["买入总金额"])
482
- big_df["卖出总金额"] = pd.to_numeric(big_df["卖出总金额"])
483
- big_df["总买卖净额"] = pd.to_numeric(big_df["总买卖净额"])
502
+ big_df["上榜日"] = pd.to_datetime(big_df["上榜日"], errors="coerce").dt.date
503
+ big_df["买入个股数"] = pd.to_numeric(big_df["买入个股数"], errors="coerce")
504
+ big_df["卖出个股数"] = pd.to_numeric(big_df["卖出个股数"], errors="coerce")
505
+ big_df["买入总金额"] = pd.to_numeric(big_df["买入总金额"], errors="coerce")
506
+ big_df["卖出总金额"] = pd.to_numeric(big_df["卖出总金额"], errors="coerce")
507
+ big_df["总买卖净额"] = pd.to_numeric(big_df["总买卖净额"], errors="coerce")
484
508
  return big_df
485
509
 
486
510
 
@@ -515,12 +539,13 @@ def stock_lhb_yybph_em(symbol: str = "近一月") -> pd.DataFrame:
515
539
  data_json = r.json()
516
540
  total_page = data_json["result"]["pages"]
517
541
  big_df = pd.DataFrame()
542
+ tqdm = get_tqdm()
518
543
  for page in tqdm(range(1, total_page + 1), leave=False):
519
544
  params.update({"pageNumber": page})
520
545
  r = requests.get(url, params=params)
521
546
  data_json = r.json()
522
547
  temp_df = pd.DataFrame(data_json["result"]["data"])
523
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
548
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
524
549
  big_df.reset_index(inplace=True)
525
550
  big_df["index"] = big_df.index + 1
526
551
  big_df.rename(
@@ -567,25 +592,55 @@ def stock_lhb_yybph_em(symbol: str = "近一月") -> pd.DataFrame:
567
592
  ]
568
593
  ]
569
594
 
570
- big_df["上榜后1天-买入次数"] = pd.to_numeric(big_df["上榜后1天-买入次数"], errors="coerce")
571
- big_df["上榜后1天-平均涨幅"] = pd.to_numeric(big_df["上榜后1天-平均涨幅"], errors="coerce")
572
- big_df["上榜后1天-上涨概率"] = pd.to_numeric(big_df["上榜后1天-上涨概率"], errors="coerce")
595
+ big_df["上榜后1天-买入次数"] = pd.to_numeric(
596
+ big_df["上榜后1天-买入次数"], errors="coerce"
597
+ )
598
+ big_df["上榜后1天-平均涨幅"] = pd.to_numeric(
599
+ big_df["上榜后1天-平均涨幅"], errors="coerce"
600
+ )
601
+ big_df["上榜后1天-上涨概率"] = pd.to_numeric(
602
+ big_df["上榜后1天-上涨概率"], errors="coerce"
603
+ )
573
604
 
574
- big_df["上榜后2天-买入次数"] = pd.to_numeric(big_df["上榜后2天-买入次数"], errors="coerce")
575
- big_df["上榜后2天-平均涨幅"] = pd.to_numeric(big_df["上榜后2天-平均涨幅"], errors="coerce")
576
- big_df["上榜后2天-上涨概率"] = pd.to_numeric(big_df["上榜后2天-上涨概率"], errors="coerce")
605
+ big_df["上榜后2天-买入次数"] = pd.to_numeric(
606
+ big_df["上榜后2天-买入次数"], errors="coerce"
607
+ )
608
+ big_df["上榜后2天-平均涨幅"] = pd.to_numeric(
609
+ big_df["上榜后2天-平均涨幅"], errors="coerce"
610
+ )
611
+ big_df["上榜后2天-上涨概率"] = pd.to_numeric(
612
+ big_df["上榜后2天-上涨概率"], errors="coerce"
613
+ )
577
614
 
578
- big_df["上榜后3天-买入次数"] = pd.to_numeric(big_df["上榜后3天-买入次数"], errors="coerce")
579
- big_df["上榜后3天-平均涨幅"] = pd.to_numeric(big_df["上榜后3天-平均涨幅"], errors="coerce")
580
- big_df["上榜后3天-上涨概率"] = pd.to_numeric(big_df["上榜后3天-上涨概率"], errors="coerce")
615
+ big_df["上榜后3天-买入次数"] = pd.to_numeric(
616
+ big_df["上榜后3天-买入次数"], errors="coerce"
617
+ )
618
+ big_df["上榜后3天-平均涨幅"] = pd.to_numeric(
619
+ big_df["上榜后3天-平均涨幅"], errors="coerce"
620
+ )
621
+ big_df["上榜后3天-上涨概率"] = pd.to_numeric(
622
+ big_df["上榜后3天-上涨概率"], errors="coerce"
623
+ )
581
624
 
582
- big_df["上榜后5天-买入次数"] = pd.to_numeric(big_df["上榜后5天-买入次数"], errors="coerce")
583
- big_df["上榜后5天-平均涨幅"] = pd.to_numeric(big_df["上榜后5天-平均涨幅"], errors="coerce")
584
- big_df["上榜后5天-上涨概率"] = pd.to_numeric(big_df["上榜后5天-上涨概率"], errors="coerce")
625
+ big_df["上榜后5天-买入次数"] = pd.to_numeric(
626
+ big_df["上榜后5天-买入次数"], errors="coerce"
627
+ )
628
+ big_df["上榜后5天-平均涨幅"] = pd.to_numeric(
629
+ big_df["上榜后5天-平均涨幅"], errors="coerce"
630
+ )
631
+ big_df["上榜后5天-上涨概率"] = pd.to_numeric(
632
+ big_df["上榜后5天-上涨概率"], errors="coerce"
633
+ )
585
634
 
586
- big_df["上榜后10天-买入次数"] = pd.to_numeric(big_df["上榜后10天-买入次数"], errors="coerce")
587
- big_df["上榜后10天-平均涨幅"] = pd.to_numeric(big_df["上榜后10天-平均涨幅"], errors="coerce")
588
- big_df["上榜后10天-上涨概率"] = pd.to_numeric(big_df["上榜后10天-上涨概率"], errors="coerce")
635
+ big_df["上榜后10天-买入次数"] = pd.to_numeric(
636
+ big_df["上榜后10天-买入次数"], errors="coerce"
637
+ )
638
+ big_df["上榜后10天-平均涨幅"] = pd.to_numeric(
639
+ big_df["上榜后10天-平均涨幅"], errors="coerce"
640
+ )
641
+ big_df["上榜后10天-上涨概率"] = pd.to_numeric(
642
+ big_df["上榜后10天-上涨概率"], errors="coerce"
643
+ )
589
644
  return big_df
590
645
 
591
646
 
@@ -620,12 +675,13 @@ def stock_lhb_traderstatistic_em(symbol: str = "近一月") -> pd.DataFrame:
620
675
  data_json = r.json()
621
676
  total_page = data_json["result"]["pages"]
622
677
  big_df = pd.DataFrame()
678
+ tqdm = get_tqdm()
623
679
  for page in tqdm(range(1, total_page + 1), leave=False):
624
680
  params.update({"pageNumber": page})
625
681
  r = requests.get(url, params=params)
626
682
  data_json = r.json()
627
683
  temp_df = pd.DataFrame(data_json["result"]["data"])
628
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
684
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
629
685
  big_df.reset_index(inplace=True)
630
686
  big_df["index"] = big_df.index + 1
631
687
  big_df.rename(
@@ -784,11 +840,15 @@ def stock_lhb_stock_detail_em(
784
840
  "类型",
785
841
  ]
786
842
  ]
787
- temp_df["买入金额"] = pd.to_numeric(temp_df["买入金额"])
788
- temp_df["买入金额-占总成交比例"] = pd.to_numeric(temp_df["买入金额-占总成交比例"])
789
- temp_df["卖出金额"] = pd.to_numeric(temp_df["卖出金额"])
790
- temp_df["卖出金额-占总成交比例"] = pd.to_numeric(temp_df["卖出金额-占总成交比例"])
791
- temp_df.sort_values("类型", inplace=True)
843
+ temp_df["买入金额"] = pd.to_numeric(temp_df["买入金额"], errors="coerce")
844
+ temp_df["买入金额-占总成交比例"] = pd.to_numeric(
845
+ temp_df["买入金额-占总成交比例"], errors="coerce"
846
+ )
847
+ temp_df["卖出金额"] = pd.to_numeric(temp_df["卖出金额"], errors="coerce")
848
+ temp_df["卖出金额-占总成交比例"] = pd.to_numeric(
849
+ temp_df["卖出金额-占总成交比例"], errors="coerce"
850
+ )
851
+ temp_df.sort_values("类型", inplace=True, ignore_index=True)
792
852
  temp_df.reset_index(inplace=True, drop=True)
793
853
  temp_df["序号"] = range(1, len(temp_df["序号"]) + 1)
794
854
  else:
@@ -827,11 +887,15 @@ def stock_lhb_stock_detail_em(
827
887
  "类型",
828
888
  ]
829
889
  ]
830
- temp_df["买入金额"] = pd.to_numeric(temp_df["买入金额"])
831
- temp_df["买入金额-占总成交比例"] = pd.to_numeric(temp_df["买入金额-占总成交比例"])
832
- temp_df["卖出金额"] = pd.to_numeric(temp_df["卖出金额"])
833
- temp_df["卖出金额-占总成交比例"] = pd.to_numeric(temp_df["卖出金额-占总成交比例"])
834
- temp_df.sort_values("类型", inplace=True)
890
+ temp_df["买入金额"] = pd.to_numeric(temp_df["买入金额"], errors="coerce")
891
+ temp_df["买入金额-占总成交比例"] = pd.to_numeric(
892
+ temp_df["买入金额-占总成交比例"], errors="coerce"
893
+ )
894
+ temp_df["卖出金额"] = pd.to_numeric(temp_df["卖出金额"], errors="coerce")
895
+ temp_df["卖出金额-占总成交比例"] = pd.to_numeric(
896
+ temp_df["卖出金额-占总成交比例"], errors="coerce"
897
+ )
898
+ temp_df.sort_values("类型", inplace=True, ignore_index=True)
835
899
  temp_df.reset_index(inplace=True, drop=True)
836
900
  temp_df["序号"] = range(1, len(temp_df["序号"]) + 1)
837
901
  return temp_df
@@ -856,7 +920,7 @@ if __name__ == "__main__":
856
920
  print(stock_lhb_stock_statistic_em_df)
857
921
 
858
922
  stock_lhb_jgmmtj_em_df = stock_lhb_jgmmtj_em(
859
- start_date="20220904", end_date="20220906"
923
+ start_date="20240417", end_date="20240430"
860
924
  )
861
925
  print(stock_lhb_jgmmtj_em_df)
862
926
 
@@ -864,7 +928,7 @@ if __name__ == "__main__":
864
928
  print(stock_lhb_jgstatistic_em_df)
865
929
 
866
930
  stock_lhb_hyyyb_em_df = stock_lhb_hyyyb_em(
867
- start_date="20220324", end_date="20220324"
931
+ start_date="20240401", end_date="20240430"
868
932
  )
869
933
  print(stock_lhb_hyyyb_em_df)
870
934
 
@@ -883,6 +947,6 @@ if __name__ == "__main__":
883
947
  print(stock_lhb_stock_detail_em_df)
884
948
 
885
949
  stock_lhb_stock_detail_em_df = stock_lhb_stock_detail_em(
886
- symbol="600016", date="20220324", flag="买入"
950
+ symbol="600077", date="20070416", flag="买入"
887
951
  )
888
952
  print(stock_lhb_stock_detail_em_df)