akshare 1.16.7__py3-none-any.whl → 1.16.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
akshare/__init__.py CHANGED
@@ -3016,9 +3016,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
3016
3016
  1.16.5 fix: fix stock_sector_fund_flow_rank interface
3017
3017
  1.16.6 fix: fix stock_sgt_reference_exchange_rate_sse interface
3018
3018
  1.16.7 fix: fix fund_lof_hist_em interface
3019
+ 1.16.8 fix: fix option_czce_daily interface
3020
+ 1.16.9 fix: fix stock_sse_deal_daily interface
3019
3021
  """
3020
3022
 
3021
- __version__ = "1.16.7"
3023
+ __version__ = "1.16.9"
3022
3024
  __author__ = "AKFamily"
3023
3025
 
3024
3026
  import sys
@@ -190,7 +190,7 @@ def __option_czce_daily_convert_numeric_columns(df):
190
190
  except: # noqa: E722
191
191
  return x
192
192
 
193
- # 创建DataFrame的副本以避免SettingWithCopyWarning
193
+ # 创建 DataFrame 的副本以避免 SettingWithCopyWarning
194
194
  df_copy = df.copy()
195
195
  df_copy.columns = [item.strip() for item in df_copy]
196
196
  # 应用转换
@@ -208,9 +208,9 @@ def option_czce_daily(
208
208
  http://www.czce.com.cn/cn/sspz/dejbqhqq/H770227index_1.htm#tabs-2
209
209
  :param trade_date: 交易日
210
210
  :type trade_date: str
211
- :param symbol: choice of {"白糖期权", "棉花期权", "甲醇期权", "PTA期权", "菜籽粕期权", "动力煤期权", "短纤期权",
212
- "菜籽油期权", "花生期权", "纯碱期权", "锰硅期权", "硅铁期权", "尿素期权", "对二甲苯期权", "苹果期权", "红枣期权"
213
- "烧碱期权", "玻璃期权", "瓶片期权"}
211
+ :param symbol: choice of {"白糖期权", "棉花期权", "甲醇期权", "PTA期权", "动力煤期权", "菜籽粕期权", "菜籽油期权",
212
+ "花生期权", "对二甲苯期权", "烧碱期权", "纯碱期权", "短纤期权", "锰硅期权", "硅铁期权", "尿素期权", "苹果期权", "红枣期权",
213
+ "玻璃期权", "瓶片期权"}
214
214
  :type symbol: str
215
215
  :return: 日频行情数据
216
216
  :rtype: pandas.DataFrame
@@ -226,6 +226,24 @@ def option_czce_daily(
226
226
  r = requests.get(url)
227
227
  f = StringIO(r.text)
228
228
  table_df = pd.read_table(f, encoding="utf-8", skiprows=1, sep="|")
229
+ table_df.columns = [
230
+ "合约代码",
231
+ "昨结算",
232
+ "今开盘",
233
+ "最高价",
234
+ "最低价",
235
+ "今收盘",
236
+ "今结算",
237
+ "涨跌1",
238
+ "涨跌2",
239
+ "成交量(手)",
240
+ "持仓量",
241
+ "增减量",
242
+ "成交额(万元)",
243
+ "DELTA",
244
+ "隐含波动率",
245
+ "行权量",
246
+ ]
229
247
  if symbol == "白糖期权":
230
248
  temp_df = table_df[table_df.iloc[:, 0].str.contains("SR")]
231
249
  temp_df.reset_index(inplace=True, drop=True)
@@ -250,14 +268,26 @@ def option_czce_daily(
250
268
  temp_df = temp_df.iloc[:-1, :].copy()
251
269
  new_df = __option_czce_daily_convert_numeric_columns(temp_df)
252
270
  return new_df
271
+ elif symbol == "动力煤期权":
272
+ temp_df = table_df[table_df.iloc[:, 0].str.contains("ZC")]
273
+ temp_df.reset_index(inplace=True, drop=True)
274
+ temp_df = temp_df.iloc[:-1, :].copy()
275
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
276
+ return new_df
253
277
  elif symbol == "菜籽粕期权":
254
278
  temp_df = table_df[table_df.iloc[:, 0].str.contains("RM")]
255
279
  temp_df.reset_index(inplace=True, drop=True)
256
280
  temp_df = temp_df.iloc[:-1, :].copy()
257
281
  new_df = __option_czce_daily_convert_numeric_columns(temp_df)
258
282
  return new_df
259
- elif symbol == "动力煤期权":
260
- temp_df = table_df[table_df.iloc[:, 0].str.contains("ZC")]
283
+ elif symbol == "菜籽油期权":
284
+ temp_df = table_df[table_df.iloc[:, 0].str.contains("OI")]
285
+ temp_df.reset_index(inplace=True, drop=True)
286
+ temp_df = temp_df.iloc[:-1, :].copy()
287
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
288
+ return new_df
289
+ elif symbol == "花生期权":
290
+ temp_df = table_df[table_df.iloc[:, 0].str.contains("PK")]
261
291
  temp_df.reset_index(inplace=True, drop=True)
262
292
  temp_df = temp_df.iloc[:-1, :].copy()
263
293
  new_df = __option_czce_daily_convert_numeric_columns(temp_df)
@@ -268,14 +298,14 @@ def option_czce_daily(
268
298
  temp_df = temp_df.iloc[:-1, :].copy()
269
299
  new_df = __option_czce_daily_convert_numeric_columns(temp_df)
270
300
  return new_df
271
- elif symbol == "菜籽油期权":
272
- temp_df = table_df[table_df.iloc[:, 0].str.contains("OI")]
301
+ elif symbol == "对二甲苯期权":
302
+ temp_df = table_df[table_df.iloc[:, 0].str.contains("PX")]
273
303
  temp_df.reset_index(inplace=True, drop=True)
274
304
  temp_df = temp_df.iloc[:-1, :].copy()
275
305
  new_df = __option_czce_daily_convert_numeric_columns(temp_df)
276
306
  return new_df
277
- elif symbol == "花生期权":
278
- temp_df = table_df[table_df.iloc[:, 0].str.contains("PK")]
307
+ elif symbol == "烧碱期权":
308
+ temp_df = table_df[table_df.iloc[:, 0].str.contains("SH")]
279
309
  temp_df.reset_index(inplace=True, drop=True)
280
310
  temp_df = temp_df.iloc[:-1, :].copy()
281
311
  new_df = __option_czce_daily_convert_numeric_columns(temp_df)
@@ -286,6 +316,12 @@ def option_czce_daily(
286
316
  temp_df = temp_df.iloc[:-1, :].copy()
287
317
  new_df = __option_czce_daily_convert_numeric_columns(temp_df)
288
318
  return new_df
319
+ elif symbol == "短纤期权":
320
+ temp_df = table_df[table_df.iloc[:, 0].str.contains("PF")]
321
+ temp_df.reset_index(inplace=True, drop=True)
322
+ temp_df = temp_df.iloc[:-1, :].copy()
323
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
324
+ return new_df
289
325
  elif symbol == "锰硅期权":
290
326
  temp_df = table_df[table_df.iloc[:, 0].str.contains("SM")]
291
327
  temp_df.reset_index(inplace=True, drop=True)
@@ -316,18 +352,6 @@ def option_czce_daily(
316
352
  temp_df = temp_df.iloc[:-1, :].copy()
317
353
  new_df = __option_czce_daily_convert_numeric_columns(temp_df)
318
354
  return new_df
319
- elif symbol == "对二甲苯期权":
320
- temp_df = table_df[table_df.iloc[:, 0].str.contains("PX")]
321
- temp_df.reset_index(inplace=True, drop=True)
322
- temp_df = temp_df.iloc[:-1, :].copy()
323
- new_df = __option_czce_daily_convert_numeric_columns(temp_df)
324
- return new_df
325
- elif symbol == "烧碱期权":
326
- temp_df = table_df[table_df.iloc[:, 0].str.contains("SH")]
327
- temp_df.reset_index(inplace=True, drop=True)
328
- temp_df = temp_df.iloc[:-1, :].copy()
329
- new_df = __option_czce_daily_convert_numeric_columns(temp_df)
330
- return new_df
331
355
  elif symbol == "玻璃期权":
332
356
  temp_df = table_df[table_df.iloc[:, 0].str.contains("FG")]
333
357
  temp_df.reset_index(inplace=True, drop=True)
@@ -340,8 +364,12 @@ def option_czce_daily(
340
364
  temp_df = temp_df.iloc[:-1, :].copy()
341
365
  new_df = __option_czce_daily_convert_numeric_columns(temp_df)
342
366
  return new_df
367
+ else:
368
+ return pd.DataFrame()
343
369
  except: # noqa: E722
344
370
  return pd.DataFrame()
371
+ else:
372
+ return pd.DataFrame()
345
373
 
346
374
 
347
375
  def option_shfe_daily(
@@ -607,7 +635,7 @@ def option_gfex_vol_daily(symbol: str = "碳酸锂", trade_date: str = "20230724
607
635
 
608
636
 
609
637
  if __name__ == "__main__":
610
- option_czce_daily_df = option_czce_daily(symbol="白糖期权", trade_date="20240711")
638
+ option_czce_daily_df = option_czce_daily(symbol="白糖期权", trade_date="20170419")
611
639
  print(option_czce_daily_df)
612
640
 
613
641
  option_dce_daily_one, option_dce_daily_two = option_dce_daily(
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/3/22 17:00
4
+ Date: 2025/2/21 18:00
5
5
  Desc: 新浪财经-日内分时数据
6
6
  https://quote.eastmoney.com/f1.html?newcode=0.000001
7
7
  """
@@ -64,5 +64,5 @@ def stock_intraday_sina(
64
64
 
65
65
 
66
66
  if __name__ == "__main__":
67
- stock_intraday_sina_df = stock_intraday_sina(symbol="sz000001", date="20240321")
67
+ stock_intraday_sina_df = stock_intraday_sina(symbol="sz000001", date="20250221")
68
68
  print(stock_intraday_sina_df)
@@ -225,408 +225,87 @@ def stock_sse_summary() -> pd.DataFrame:
225
225
  return temp_df
226
226
 
227
227
 
228
- def stock_sse_deal_daily(date: str = "20060712") -> pd.DataFrame:
228
+ def stock_sse_deal_daily(date: str = "20241216") -> pd.DataFrame:
229
229
  """
230
230
  上海证券交易所-数据-股票数据-成交概况-股票成交概况-每日股票情况
231
231
  https://www.sse.com.cn/market/stockdata/overview/day/
232
232
  :return: 每日股票情况
233
233
  :rtype: pandas.DataFrame
234
234
  """
235
- if int(date) <= 20181231:
236
- url = "http://query.sse.com.cn/commonQuery.do"
237
- params = {
238
- "searchDate": "-".join([date[:4], date[4:6], date[6:]]),
239
- "sqlId": "COMMON_SSE_SJ_GPSJ_CJGK_DAYCJGK_C",
240
- "stockType": "90",
241
- "_": "1616744620492",
242
- }
243
- headers = {
244
- "Referer": "http://www.sse.com.cn/",
245
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
246
- "Chrome/89.0.4389.90 Safari/537.36",
247
- }
248
- r = requests.get(url, params=params, headers=headers)
249
- data_json = r.json()
250
- temp_df = pd.DataFrame(data_json["result"])
251
- temp_df = temp_df.T
252
- temp_df.reset_index(inplace=True)
253
- temp_df.columns = [
254
- "单日情况",
255
- "主板A",
256
- "-",
257
- "主板B",
258
- ]
259
- temp_df = temp_df[
260
- [
261
- "单日情况",
262
- "主板A",
263
- "主板B",
264
- ]
265
- ]
266
- temp_df["单日情况"] = [
267
- "流通市值",
268
- "流通换手率",
269
- "平均市盈率",
270
- "_",
271
- "市价总值",
272
- "_",
273
- "换手率",
274
- "_",
275
- "挂牌数",
276
- "_",
277
- "_",
278
- "_",
279
- "_",
280
- "_",
281
- "成交笔数",
282
- "成交金额",
283
- "成交量",
284
- "次新股换手率",
285
- "_",
286
- "_",
287
- ]
288
- temp_df = temp_df[temp_df["单日情况"] != "_"]
289
- temp_df["单日情况"] = temp_df["单日情况"].astype("category")
290
- list_custom_new = [
291
- "挂牌数",
292
- "市价总值",
293
- "流通市值",
294
- "成交金额",
295
- "成交量",
296
- "成交笔数",
297
- "平均市盈率",
298
- "换手率",
299
- "次新股换手率",
300
- "流通换手率",
301
- ]
302
- temp_df["单日情况"].cat.set_categories(list_custom_new)
303
- temp_df.sort_values("单日情况", ascending=True, inplace=True)
304
- temp_df.reset_index(drop=True, inplace=True)
305
- # 构建空
306
- temp_df["股票"] = "-"
307
- temp_df["科创板"] = "-"
308
- temp_df["股票回购"] = "-"
309
- temp_df["股票"] = pd.to_numeric(temp_df["股票"], errors="coerce")
310
- temp_df["主板A"] = pd.to_numeric(temp_df["主板A"], errors="coerce")
311
- temp_df["主板B"] = pd.to_numeric(temp_df["主板B"], errors="coerce")
312
- temp_df["科创板"] = pd.to_numeric("-", errors="coerce") # 默认位空
313
- temp_df["股票回购"] = pd.to_numeric(temp_df["股票回购"], errors="coerce")
314
- temp_df = temp_df[
315
- [
316
- "单日情况",
317
- "股票",
318
- "主板A",
319
- "主板B",
320
- "科创板",
321
- "股票回购",
322
- ]
323
- ]
324
- return temp_df
325
- if int(date) <= 20211224:
326
- url = "http://query.sse.com.cn/commonQuery.do"
327
- params = {
328
- "searchDate": "-".join([date[:4], date[4:6], date[6:]]),
329
- "sqlId": "COMMON_SSE_SJ_GPSJ_CJGK_DAYCJGK_C",
330
- "stockType": "90",
331
- "_": "1616744620492",
332
- }
333
- headers = {
334
- "Referer": "http://www.sse.com.cn/",
335
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
336
- "Chrome/89.0.4389.90 Safari/537.36",
337
- }
338
- r = requests.get(url, params=params, headers=headers)
339
- data_json = r.json()
340
- temp_df = pd.DataFrame(data_json["result"])
341
- temp_df = temp_df.T
342
- temp_df.reset_index(inplace=True)
343
- if len(temp_df.columns) == 6:
344
- temp_df.columns = [
345
- "单日情况",
346
- "-",
347
- "股票",
348
- "主板B",
349
- "主板A",
350
- "股票回购",
351
- ]
352
- temp_df = temp_df[
353
- [
354
- "单日情况",
355
- "股票",
356
- "主板A",
357
- "主板B",
358
- "股票回购",
359
- ]
360
- ]
361
- temp_df["单日情况"] = [
362
- "流通市值",
363
- "流通换手率",
364
- "平均市盈率",
365
- "_",
366
- "市价总值",
367
- "_",
368
- "换手率",
369
- "_",
370
- "挂牌数",
371
- "_",
372
- "_",
373
- "_",
374
- "_",
375
- "_",
376
- "成交笔数",
377
- "成交金额",
378
- "成交量",
379
- "次新股换手率",
380
- "_",
381
- "_",
382
- ]
383
- temp_df = temp_df[temp_df["单日情况"] != "_"]
384
- temp_df["单日情况"] = temp_df["单日情况"].astype("category")
385
- list_custom_new = [
386
- "挂牌数",
387
- "市价总值",
388
- "流通市值",
389
- "成交金额",
390
- "成交量",
391
- "成交笔数",
392
- "平均市盈率",
393
- "换手率",
394
- "次新股换手率",
395
- "流通换手率",
396
- ]
397
- temp_df["单日情况"].cat.set_categories(list_custom_new)
398
- temp_df.sort_values("单日情况", ascending=True, inplace=True)
399
- temp_df.reset_index(drop=True, inplace=True)
400
- temp_df["股票"] = pd.to_numeric(temp_df["股票"], errors="coerce")
401
- temp_df["主板A"] = pd.to_numeric(temp_df["主板A"], errors="coerce")
402
- temp_df["主板B"] = pd.to_numeric(temp_df["主板B"], errors="coerce")
403
- temp_df["科创板"] = pd.to_numeric("-", errors="coerce") # 默认位空
404
- temp_df["股票回购"] = pd.to_numeric(temp_df["股票回购"], errors="coerce")
405
- temp_df = temp_df[
406
- [
407
- "单日情况",
408
- "股票",
409
- "主板A",
410
- "主板B",
411
- "科创板",
412
- "股票回购",
413
- ]
414
- ]
415
- return temp_df
416
- else:
417
- temp_df.columns = [
418
- "单日情况",
419
- "主板A",
420
- "股票",
421
- "主板B",
422
- "_",
423
- "股票回购",
424
- "科创板",
425
- ]
426
- temp_df = temp_df[
427
- [
428
- "单日情况",
429
- "股票",
430
- "主板A",
431
- "主板B",
432
- "科创板",
433
- "股票回购",
434
- ]
435
- ]
436
- temp_df["单日情况"] = [
437
- "流通市值",
438
- "流通换手率",
439
- "平均市盈率",
440
- "_",
441
- "市价总值",
442
- "_",
443
- "换手率",
444
- "_",
445
- "挂牌数",
446
- "_",
447
- "_",
448
- "_",
449
- "_",
450
- "_",
451
- "成交笔数",
452
- "成交金额",
453
- "成交量",
454
- "次新股换手率",
455
- "_",
456
- "_",
457
- ]
458
- temp_df = temp_df[temp_df["单日情况"] != "_"]
459
- temp_df["单日情况"] = temp_df["单日情况"].astype("category")
460
- list_custom_new = [
461
- "挂牌数",
462
- "市价总值",
463
- "流通市值",
464
- "成交金额",
465
- "成交量",
466
- "成交笔数",
467
- "平均市盈率",
468
- "换手率",
469
- "次新股换手率",
470
- "流通换手率",
471
- ]
472
- temp_df["单日情况"].cat.set_categories(list_custom_new)
473
- temp_df.sort_values("单日情况", ascending=True, inplace=True)
474
- temp_df.reset_index(drop=True, inplace=True)
475
- temp_df["股票"] = pd.to_numeric(temp_df["股票"], errors="coerce")
476
- temp_df["主板A"] = pd.to_numeric(temp_df["主板A"], errors="coerce")
477
- temp_df["主板B"] = pd.to_numeric(temp_df["主板B"], errors="coerce")
478
- temp_df["科创板"] = pd.to_numeric(temp_df["科创板"], errors="coerce")
479
- temp_df["股票回购"] = pd.to_numeric(temp_df["股票回购"], errors="coerce")
480
- return temp_df
481
- elif int(date) <= 20220224:
482
- url = "http://query.sse.com.cn/commonQuery.do"
483
- params = {
484
- "sqlId": "COMMON_SSE_SJ_GPSJ_CJGK_MRGK_C",
485
- "SEARCH_DATE": "-".join([date[:4], date[4:6], date[6:]]),
486
- "_": "1640836561673",
487
- }
488
- headers = {
489
- "Referer": "http://www.sse.com.cn/",
490
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
491
- "Chrome/89.0.4389.90 Safari/537.36",
492
- }
493
- r = requests.get(url, params=params, headers=headers)
494
- data_json = r.json()
495
- temp_df = pd.DataFrame(data_json["result"])
496
- temp_df = temp_df.T
497
- temp_df.reset_index(inplace=True)
498
- temp_df.columns = [
235
+ url = "https://query.sse.com.cn/commonQuery.do"
236
+ params = {
237
+ "sqlId": "COMMON_SSE_SJ_GPSJ_CJGK_MRGK_C",
238
+ "PRODUCT_CODE": "01,02,03,11,17",
239
+ "type": "inParams",
240
+ "SEARCH_DATE": "-".join([date[:4], date[4:6], date[6:]]),
241
+ "_": "1640836561673",
242
+ }
243
+ headers = {
244
+ "Referer": "https://www.sse.com.cn/",
245
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
246
+ "Chrome/89.0.4389.90 Safari/537.36",
247
+ }
248
+ r = requests.get(url, params=params, headers=headers)
249
+ data_json = r.json()
250
+ temp_df = pd.DataFrame(data_json["result"])
251
+ temp_df = temp_df.T
252
+ temp_df.reset_index(inplace=True)
253
+ temp_df.columns = [
254
+ "单日情况",
255
+ "主板A",
256
+ "主板B",
257
+ "科创板",
258
+ "股票回购",
259
+ "股票",
260
+ ]
261
+ temp_df = temp_df[
262
+ [
499
263
  "单日情况",
264
+ "股票",
500
265
  "主板A",
501
266
  "主板B",
502
267
  "科创板",
503
- "-",
504
- "-",
505
- "-",
506
- "-",
507
- "-",
268
+ "股票回购",
508
269
  ]
509
- temp_df = temp_df[
510
- [
511
- "单日情况",
512
- "主板A",
513
- "主板B",
514
- "科创板",
515
- ]
516
- ]
517
- temp_df["单日情况"] = [
518
- "市价总值",
519
- "成交量",
520
- "平均市盈率",
521
- "换手率",
522
- "成交金额",
523
- "-",
524
- "流通市值",
525
- "流通换手率",
526
- "报告日期",
527
- "挂牌数",
528
- "-",
529
- ]
530
- temp_df = temp_df[temp_df["单日情况"] != "-"]
531
- temp_df["单日情况"] = temp_df["单日情况"].astype("category")
532
- list_custom_new = [
533
- "挂牌数",
534
- "市价总值",
535
- "流通市值",
536
- "成交金额",
537
- "成交量",
538
- "平均市盈率",
539
- "换手率",
540
- "流通换手率",
541
- ]
542
- temp_df["单日情况"].cat.set_categories(list_custom_new)
543
- temp_df.sort_values("单日情况", ascending=True, inplace=True)
544
- temp_df.reset_index(inplace=True, drop=True)
545
- temp_df["主板A"] = pd.to_numeric(temp_df["主板A"], errors="coerce")
546
- temp_df["主板B"] = pd.to_numeric(temp_df["主板B"], errors="coerce")
547
- temp_df["科创板"] = pd.to_numeric(temp_df["科创板"], errors="coerce")
548
- return temp_df
549
- else:
550
- url = "http://query.sse.com.cn/commonQuery.do"
551
- params = {
552
- "sqlId": "COMMON_SSE_SJ_GPSJ_CJGK_MRGK_C",
553
- "PRODUCT_CODE": "01,02,03,11,17",
554
- "type": "inParams",
555
- "SEARCH_DATE": "-".join([date[:4], date[4:6], date[6:]]),
556
- "_": "1640836561673",
557
- }
558
- headers = {
559
- "Referer": "http://www.sse.com.cn/",
560
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
561
- "Chrome/89.0.4389.90 Safari/537.36",
562
- }
563
- r = requests.get(url, params=params, headers=headers)
564
- data_json = r.json()
565
- temp_df = pd.DataFrame(data_json["result"])
566
- temp_df = temp_df.T
567
- temp_df.reset_index(inplace=True)
568
- if len(temp_df.T) == 5:
569
- temp_df.columns = [
570
- "单日情况",
571
- "主板A",
572
- "主板B",
573
- "科创板",
574
- "股票",
575
- ]
576
- temp_df["股票回购"] = "-"
577
- else:
578
- temp_df.columns = [
579
- "单日情况",
580
- "主板A",
581
- "主板B",
582
- "科创板",
583
- "股票回购",
584
- "股票",
585
- ]
586
- temp_df = temp_df[
587
- [
588
- "单日情况",
589
- "股票",
590
- "主板A",
591
- "主板B",
592
- "科创板",
593
- "股票回购",
594
- ]
595
- ]
596
- temp_df["单日情况"] = [
597
- "市价总值",
598
- "成交量",
599
- "平均市盈率",
600
- "换手率",
601
- "成交金额",
602
- "-",
603
- "流通市值",
604
- "流通换手率",
605
- "报告日期",
606
- "挂牌数",
607
- "-",
608
- ]
609
- temp_df = temp_df[temp_df["单日情况"] != "-"]
610
- temp_df["单日情况"] = temp_df["单日情况"].astype("category")
611
- list_custom_new = [
612
- "挂牌数",
613
- "市价总值",
614
- "流通市值",
615
- "成交金额",
616
- "成交量",
617
- "平均市盈率",
618
- "换手率",
619
- "流通换手率",
620
- ]
621
- temp_df["单日情况"].cat.set_categories(list_custom_new)
622
- temp_df.sort_values("单日情况", ascending=True, inplace=True)
623
- temp_df.reset_index(inplace=True, drop=True)
624
- temp_df["主板A"] = pd.to_numeric(temp_df["主板A"], errors="coerce")
625
- temp_df["主板B"] = pd.to_numeric(temp_df["主板B"], errors="coerce")
626
- temp_df["科创板"] = pd.to_numeric(temp_df["科创板"], errors="coerce")
627
- temp_df["股票"] = pd.to_numeric(temp_df["股票"], errors="coerce")
628
- temp_df["股票回购"] = pd.to_numeric(temp_df["股票回购"], errors="coerce")
629
- return temp_df
270
+ ]
271
+ temp_df["单日情况"] = [
272
+ "市价总值",
273
+ "成交量",
274
+ "平均市盈率",
275
+ "换手率",
276
+ "成交金额",
277
+ "-",
278
+ "流通市值",
279
+ "流通换手率",
280
+ "报告日期",
281
+ "挂牌数",
282
+ "-",
283
+ ]
284
+ temp_df = temp_df[temp_df["单日情况"] != "-"]
285
+ temp_df = temp_df[temp_df["单日情况"] != "报告日期"]
286
+ # 定义期望的指标顺序
287
+ desired_order = [
288
+ "挂牌数",
289
+ "市价总值",
290
+ "流通市值",
291
+ "成交金额",
292
+ "成交量",
293
+ "平均市盈率",
294
+ "换手率",
295
+ "流通换手率",
296
+ ]
297
+ # 使用 categorical 类型重新排序
298
+ temp_df["单日情况"] = pd.Categorical(
299
+ temp_df["单日情况"], categories=desired_order, ordered=True
300
+ )
301
+ # 按照指标排序
302
+ temp_df.sort_values("单日情况", ignore_index=True, inplace=True)
303
+ temp_df["股票"] = pd.to_numeric(temp_df["股票"], errors="coerce")
304
+ temp_df["主板A"] = pd.to_numeric(temp_df["主板A"], errors="coerce")
305
+ temp_df["主板B"] = pd.to_numeric(temp_df["主板B"], errors="coerce")
306
+ temp_df["科创板"] = pd.to_numeric(temp_df["科创板"], errors="coerce")
307
+ temp_df["股票回购"] = pd.to_numeric(temp_df["股票回购"], errors="coerce")
308
+ return temp_df
630
309
 
631
310
 
632
311
  if __name__ == "__main__":
@@ -644,14 +323,5 @@ if __name__ == "__main__":
644
323
  stock_sse_summary_df = stock_sse_summary()
645
324
  print(stock_sse_summary_df)
646
325
 
647
- stock_sse_deal_daily_df = stock_sse_deal_daily(date="20211221")
648
- print(stock_sse_deal_daily_df)
649
-
650
- stock_sse_deal_daily_df = stock_sse_deal_daily(date="20211227")
651
- print(stock_sse_deal_daily_df)
652
-
653
- stock_sse_deal_daily_df = stock_sse_deal_daily(date="20190613")
654
- print(stock_sse_deal_daily_df)
655
-
656
- stock_sse_deal_daily_df = stock_sse_deal_daily(date="20080131")
326
+ stock_sse_deal_daily_df = stock_sse_deal_daily(date="20250221")
657
327
  print(stock_sse_deal_daily_df)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: akshare
3
- Version: 1.16.7
3
+ Version: 1.16.9
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
@@ -1,4 +1,4 @@
1
- akshare/__init__.py,sha256=QG3baAikq03vAI74DtNmTXR4UEe4R6ZCgmCRQmM5LGs,187887
1
+ akshare/__init__.py,sha256=Flwht16-YxveFrqhWbTIm7RbwBJcIZurkUUQMmuveeM,187978
2
2
  akshare/datasets.py,sha256=rKuRNZrqi6IMsZ9nyvO3Rx02js0tH3zMLjz8HQNAoPQ,963
3
3
  akshare/exceptions.py,sha256=WEJjIhSmJ_xXNW6grwV4nufE_cfmmyuhmueVGiN1VAg,878
4
4
  akshare/request.py,sha256=HtFFf9MhfEibR-ETWe-1Tts6ELU4VKSqA-ghaXjegQM,4252
@@ -190,7 +190,7 @@ akshare/nlp/nlp_interface.py,sha256=PyZjT3PkuTbloop-JwLwZ2kNi22zdO-r_pRUWQ5SmgM,
190
190
  akshare/option/__init__.py,sha256=RMTf1bT5EOE3ttWpn3hGu1LtUmsVxDoa0W7W0gXHOy8,81
191
191
  akshare/option/cons.py,sha256=zTRZ62RFwOcAKfmso-7nZJtT3a8Dt1nQbNnEjSqgjpI,4811
192
192
  akshare/option/option_comm_qihuo.py,sha256=kjbdp-94KJJJi1ex5U03abtlgviqwP0Aahb6FwddPkk,3128
193
- akshare/option/option_commodity.py,sha256=gJ22bfXMEz9vWXuVjgNU9mvvRlXcNWjW8hUxG7-Mi8U,25793
193
+ akshare/option/option_commodity.py,sha256=KQ690k83wKnjYN5Sf3meLx0pvEYAc5dE2tOkv3AK3dk,26758
194
194
  akshare/option/option_commodity_sina.py,sha256=r6qK_K7w3A6Uqp5ZtBb4pW7vH04oMyeCEZLLGqi0jpA,7776
195
195
  akshare/option/option_czce.py,sha256=L4i7TVKcOns5ZKoqq-mrSykdx3SGwu6OL4eI77-A_lc,1812
196
196
  akshare/option/option_daily_stats_sse_szse.py,sha256=Ip_vE81qbEGt4ocbtWfUT7XGu0HWU0zKkzauZeq9RJA,4962
@@ -258,7 +258,7 @@ akshare/stock/stock_industry_sw.py,sha256=C0FjDg976EA0EksRS3sChbmJOZmOPEOzKCrHVs
258
258
  akshare/stock/stock_info.py,sha256=AqzLzsTlYTSExBtyrZZBjI-D-VROj9e7Sq37WKHJ7XQ,16314
259
259
  akshare/stock/stock_info_em.py,sha256=F-K8ZzWW70KTzShP82semh8RKklUEot2zxuzNDum20I,2615
260
260
  akshare/stock/stock_intraday_em.py,sha256=cm0qKVeCOqmjqd3WxqwjMCoa1uMA2zb98f6HX9_pIPQ,5905
261
- akshare/stock/stock_intraday_sina.py,sha256=HMuAAO2Teu4NUrOcBvyJdxYgWx-51qJCdtcqFmFNQg8,2359
261
+ akshare/stock/stock_intraday_sina.py,sha256=7LzXRwjdPo-BHwvs8244-MFiGriPUCFBJqRW-r9iVB4,2359
262
262
  akshare/stock/stock_ipo_summary_cninfo.py,sha256=Ma-54GsOOhRWxilLH-Qmm0VVbpJQGf2XWKaJ8NBSgAY,3847
263
263
  akshare/stock/stock_new_cninfo.py,sha256=EOuZowDLQSSHyPAwXcuPXbQkqhbz2nRBZsM7o2ZWILE,5725
264
264
  akshare/stock/stock_news_cx.py,sha256=aaAD-HTqAX0tOSD-0-Zus9pftvOdD3Y608GKYB1OMPE,1097
@@ -268,7 +268,7 @@ akshare/stock/stock_repurchase_em.py,sha256=XVAUD_yd48wqxbMbfU0Ne2SNFOSG9NBklUhf
268
268
  akshare/stock/stock_share_changes_cninfo.py,sha256=siy4PiZgYuNQn5jUUg2G7CyZ_yvuXNi3MVUDFhe5npY,4923
269
269
  akshare/stock/stock_share_hold.py,sha256=sKiWH69n8_MQohi0qZ3Br-WQRq9I7S0USrb-tMVinb0,11028
270
270
  akshare/stock/stock_stop.py,sha256=8HyazJAFj-s12ujUtrxO8VPXyA5bF9-3eNEj0qzGwMg,1185
271
- akshare/stock/stock_summary.py,sha256=CkUB2Y4ZcNtNbyKb1hJZDG9KvlvqMDNvcPwLN7iO7AQ,22891
271
+ akshare/stock/stock_summary.py,sha256=rtJImzACxpGRqYGe9-yNTzsSZDlsG1Uns18sDIgunZY,11204
272
272
  akshare/stock/stock_us_famous.py,sha256=enx_-EzEJWAhrMVQZaN83ETY_YEWO2xEStRm6z3upO0,3655
273
273
  akshare/stock/stock_us_js.py,sha256=wwZpRvVHqjxwd0cb2O5vtRW8Zw90Kdl5O4XNwoevN64,2502
274
274
  akshare/stock/stock_us_pink.py,sha256=BX7-tG4Zs0k2vSYGxHH0Yob-moD6AAu2a-ytZpxgIRQ,3065
@@ -380,8 +380,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
380
380
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
381
381
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
382
382
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
383
- akshare-1.16.7.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
384
- akshare-1.16.7.dist-info/METADATA,sha256=K4M0hgeH4JCfh4dddujBhBN20boaw_FAOJcpa4o4XR0,13678
385
- akshare-1.16.7.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
386
- akshare-1.16.7.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
387
- akshare-1.16.7.dist-info/RECORD,,
383
+ akshare-1.16.9.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
384
+ akshare-1.16.9.dist-info/METADATA,sha256=t3Rb5CRORzzNDSzdfrY0quIJUJ2bGHSygddHmYkGpr4,13678
385
+ akshare-1.16.9.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
386
+ akshare-1.16.9.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
387
+ akshare-1.16.9.dist-info/RECORD,,