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

akshare/__init__.py CHANGED
@@ -2938,9 +2938,10 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
2938
2938
  1.15.26 fix: fix option_dce_daily interface
2939
2939
  1.15.27 fix: fix stock_zh_index_spot_em interface
2940
2940
  1.15.28 fix: fix stock_hk_valuation_baidu interface
2941
+ 1.15.29 fix: fix option_dce_daily interface
2941
2942
  """
2942
2943
 
2943
- __version__ = "1.15.28"
2944
+ __version__ = "1.15.29"
2944
2945
  __author__ = "AKFamily"
2945
2946
 
2946
2947
  import sys
@@ -80,7 +80,7 @@ def option_dce_daily(
80
80
  elif symbol == "玉米期权":
81
81
  result_one_df, result_two_df = (
82
82
  table_df[table_df["商品名称"] == "玉米"],
83
- another_df[another_df.iloc[:, 0].str.contains("c")],
83
+ another_df[another_df.iloc[:, 0].str.contains(r"^c\d")],
84
84
  )
85
85
  elif symbol == "铁矿石期权":
86
86
  result_one_df, result_two_df = (
@@ -163,6 +163,43 @@ def option_dce_daily(
163
163
  return result_one_df, result_two_df
164
164
 
165
165
 
166
+ def __option_czce_daily_convert_numeric_columns(df):
167
+ # 定义要处理的列
168
+ columns_to_convert = [
169
+ "昨结算",
170
+ "今开盘",
171
+ "最高价",
172
+ "最低价",
173
+ "今收盘",
174
+ "今结算",
175
+ "涨跌1",
176
+ "涨跌2",
177
+ "成交量(手)",
178
+ "持仓量",
179
+ "增减量",
180
+ "成交额(万元)",
181
+ "DELTA",
182
+ "隐含波动率",
183
+ "行权量",
184
+ ]
185
+
186
+ # 转换函数:去除逗号并转换为float
187
+ def convert_to_float(x):
188
+ try:
189
+ return float(str(x).replace(",", ""))
190
+ except: # noqa: E722
191
+ return x
192
+
193
+ # 创建DataFrame的副本以避免SettingWithCopyWarning
194
+ df_copy = df.copy()
195
+ df_copy.columns = [item.strip() for item in df_copy]
196
+ # 应用转换
197
+ for col in columns_to_convert:
198
+ df_copy[col] = df_copy[col].apply(convert_to_float)
199
+
200
+ return df_copy
201
+
202
+
166
203
  def option_czce_daily(
167
204
  symbol: str = "白糖期权", trade_date: str = "20191017"
168
205
  ) -> pd.DataFrame:
@@ -192,82 +229,118 @@ def option_czce_daily(
192
229
  if symbol == "白糖期权":
193
230
  temp_df = table_df[table_df.iloc[:, 0].str.contains("SR")]
194
231
  temp_df.reset_index(inplace=True, drop=True)
195
- return temp_df.iloc[:-1, :]
232
+ temp_df = temp_df.iloc[:-1, :].copy()
233
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
234
+ return new_df
196
235
  elif symbol == "棉花期权":
197
236
  temp_df = table_df[table_df.iloc[:, 0].str.contains("CF")]
198
237
  temp_df.reset_index(inplace=True, drop=True)
199
- return temp_df.iloc[:-1, :]
238
+ temp_df = temp_df.iloc[:-1, :].copy()
239
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
240
+ return new_df
200
241
  elif symbol == "甲醇期权":
201
242
  temp_df = table_df[table_df.iloc[:, 0].str.contains("MA")]
202
243
  temp_df.reset_index(inplace=True, drop=True)
203
- return temp_df.iloc[:-1, :]
244
+ temp_df = temp_df.iloc[:-1, :].copy()
245
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
246
+ return new_df
204
247
  elif symbol == "PTA期权":
205
248
  temp_df = table_df[table_df.iloc[:, 0].str.contains("TA")]
206
249
  temp_df.reset_index(inplace=True, drop=True)
207
- return temp_df.iloc[:-1, :]
250
+ temp_df = temp_df.iloc[:-1, :].copy()
251
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
252
+ return new_df
208
253
  elif symbol == "菜籽粕期权":
209
254
  temp_df = table_df[table_df.iloc[:, 0].str.contains("RM")]
210
255
  temp_df.reset_index(inplace=True, drop=True)
211
- return temp_df.iloc[:-1, :]
256
+ temp_df = temp_df.iloc[:-1, :].copy()
257
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
258
+ return new_df
212
259
  elif symbol == "动力煤期权":
213
260
  temp_df = table_df[table_df.iloc[:, 0].str.contains("ZC")]
214
261
  temp_df.reset_index(inplace=True, drop=True)
215
- return temp_df.iloc[:-1, :]
262
+ temp_df = temp_df.iloc[:-1, :].copy()
263
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
264
+ return new_df
216
265
  elif symbol == "短纤期权":
217
266
  temp_df = table_df[table_df.iloc[:, 0].str.contains("PF")]
218
267
  temp_df.reset_index(inplace=True, drop=True)
219
- return temp_df.iloc[:-1, :]
268
+ temp_df = temp_df.iloc[:-1, :].copy()
269
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
270
+ return new_df
220
271
  elif symbol == "菜籽油期权":
221
272
  temp_df = table_df[table_df.iloc[:, 0].str.contains("OI")]
222
273
  temp_df.reset_index(inplace=True, drop=True)
223
- return temp_df.iloc[:-1, :]
274
+ temp_df = temp_df.iloc[:-1, :].copy()
275
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
276
+ return new_df
224
277
  elif symbol == "花生期权":
225
278
  temp_df = table_df[table_df.iloc[:, 0].str.contains("PK")]
226
279
  temp_df.reset_index(inplace=True, drop=True)
227
- return temp_df.iloc[:-1, :]
280
+ temp_df = temp_df.iloc[:-1, :].copy()
281
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
282
+ return new_df
228
283
  elif symbol == "纯碱期权":
229
284
  temp_df = table_df[table_df.iloc[:, 0].str.contains("SA")]
230
285
  temp_df.reset_index(inplace=True, drop=True)
231
- return temp_df.iloc[:-1, :]
286
+ temp_df = temp_df.iloc[:-1, :].copy()
287
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
288
+ return new_df
232
289
  elif symbol == "锰硅期权":
233
290
  temp_df = table_df[table_df.iloc[:, 0].str.contains("SM")]
234
291
  temp_df.reset_index(inplace=True, drop=True)
235
- return temp_df.iloc[:-1, :]
292
+ temp_df = temp_df.iloc[:-1, :].copy()
293
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
294
+ return new_df
236
295
  elif symbol == "硅铁期权":
237
296
  temp_df = table_df[table_df.iloc[:, 0].str.contains("SF")]
238
297
  temp_df.reset_index(inplace=True, drop=True)
239
- return temp_df.iloc[:-1, :]
298
+ temp_df = temp_df.iloc[:-1, :].copy()
299
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
300
+ return new_df
240
301
  elif symbol == "尿素期权":
241
302
  temp_df = table_df[table_df.iloc[:, 0].str.contains("UR")]
242
303
  temp_df.reset_index(inplace=True, drop=True)
243
- return temp_df.iloc[:-1, :]
304
+ temp_df = temp_df.iloc[:-1, :].copy()
305
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
306
+ return new_df
244
307
  elif symbol == "苹果期权":
245
308
  temp_df = table_df[table_df.iloc[:, 0].str.contains("AP")]
246
309
  temp_df.reset_index(inplace=True, drop=True)
247
- return temp_df.iloc[:-1, :]
310
+ temp_df = temp_df.iloc[:-1, :].copy()
311
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
312
+ return new_df
248
313
  elif symbol == "红枣期权":
249
314
  temp_df = table_df[table_df.iloc[:, 0].str.contains("CJ")]
250
315
  temp_df.reset_index(inplace=True, drop=True)
251
- return temp_df.iloc[:-1, :]
316
+ temp_df = temp_df.iloc[:-1, :].copy()
317
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
318
+ return new_df
252
319
  elif symbol == "对二甲苯期权":
253
320
  temp_df = table_df[table_df.iloc[:, 0].str.contains("PX")]
254
321
  temp_df.reset_index(inplace=True, drop=True)
255
- return temp_df.iloc[:-1, :]
322
+ temp_df = temp_df.iloc[:-1, :].copy()
323
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
324
+ return new_df
256
325
  elif symbol == "烧碱期权":
257
326
  temp_df = table_df[table_df.iloc[:, 0].str.contains("SH")]
258
327
  temp_df.reset_index(inplace=True, drop=True)
259
- return temp_df.iloc[:-1, :]
328
+ temp_df = temp_df.iloc[:-1, :].copy()
329
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
330
+ return new_df
260
331
  elif symbol == "玻璃期权":
261
332
  temp_df = table_df[table_df.iloc[:, 0].str.contains("FG")]
262
333
  temp_df.reset_index(inplace=True, drop=True)
263
- return temp_df.iloc[:-1, :]
334
+ temp_df = temp_df.iloc[:-1, :].copy()
335
+ new_df = __option_czce_daily_convert_numeric_columns(temp_df)
336
+ return new_df
264
337
  except: # noqa: E722
265
338
  return pd.DataFrame()
266
339
 
267
340
 
268
341
  def option_shfe_daily(
269
342
  symbol: str = "铝期权", trade_date: str = "20200827"
270
- ) -> Optional[pd.DataFrame]:
343
+ ) -> Optional[tuple[pd.DataFrame, pd.DataFrame]]:
271
344
  """
272
345
  上海期货交易所-期权-日频行情数据
273
346
  https://tsite.shfe.com.cn/statements/dataview.html?paramid=kxQ
@@ -527,11 +600,11 @@ def option_gfex_vol_daily(symbol: str = "碳酸锂", trade_date: str = "20230724
527
600
 
528
601
 
529
602
  if __name__ == "__main__":
530
- option_czce_daily_df = option_czce_daily(symbol="短纤期权", trade_date="20240718")
603
+ option_czce_daily_df = option_czce_daily(symbol="白糖期权", trade_date="20240711")
531
604
  print(option_czce_daily_df)
532
605
 
533
606
  option_dce_daily_one, option_dce_daily_two = option_dce_daily(
534
- symbol="鸡蛋期权", trade_date="20241118"
607
+ symbol="玉米期权", trade_date="20241121"
535
608
  )
536
609
  print(option_dce_daily_one)
537
610
  print(option_dce_daily_two)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: akshare
3
- Version: 1.15.28
3
+ Version: 1.15.29
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=8i1-bF44iMG9EqOv0Dfa2TsKHf8wo-1DQzOm1pqlphE,184088
1
+ akshare/__init__.py,sha256=e5PdNsfetmWVaoDmM_98FfYWblj0IR_Pre91MGiF98o,184132
2
2
  akshare/datasets.py,sha256=-qdwaQjgBlftX84uM74KJqCYJYkQ50PV416_neA4uls,995
3
3
  akshare/exceptions.py,sha256=WEJjIhSmJ_xXNW6grwV4nufE_cfmmyuhmueVGiN1VAg,878
4
4
  akshare/request.py,sha256=HtFFf9MhfEibR-ETWe-1Tts6ELU4VKSqA-ghaXjegQM,4252
@@ -194,7 +194,7 @@ akshare/nlp/nlp_interface.py,sha256=PyZjT3PkuTbloop-JwLwZ2kNi22zdO-r_pRUWQ5SmgM,
194
194
  akshare/option/__init__.py,sha256=RMTf1bT5EOE3ttWpn3hGu1LtUmsVxDoa0W7W0gXHOy8,81
195
195
  akshare/option/cons.py,sha256=zTRZ62RFwOcAKfmso-7nZJtT3a8Dt1nQbNnEjSqgjpI,4811
196
196
  akshare/option/option_comm_qihuo.py,sha256=kjbdp-94KJJJi1ex5U03abtlgviqwP0Aahb6FwddPkk,3128
197
- akshare/option/option_commodity.py,sha256=M1R5dGQcW1iZzQ6d3DztZ2yq7V0jzrkCuoW1GKJTwjU,22274
197
+ akshare/option/option_commodity.py,sha256=DMn-PM82xUr_HcHQqF1VLVmJaD35RiXDH4RwpFVMX7k,25338
198
198
  akshare/option/option_commodity_sina.py,sha256=r6qK_K7w3A6Uqp5ZtBb4pW7vH04oMyeCEZLLGqi0jpA,7776
199
199
  akshare/option/option_czce.py,sha256=L4i7TVKcOns5ZKoqq-mrSykdx3SGwu6OL4eI77-A_lc,1812
200
200
  akshare/option/option_daily_stats_sse_szse.py,sha256=Ip_vE81qbEGt4ocbtWfUT7XGu0HWU0zKkzauZeq9RJA,4962
@@ -383,8 +383,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
383
383
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
384
384
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
385
385
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
386
- akshare-1.15.28.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
387
- akshare-1.15.28.dist-info/METADATA,sha256=rxPymXOcNH6roYEJGJCKgBlt59BTmPoEkqhOzgA5zP0,14232
388
- akshare-1.15.28.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
389
- akshare-1.15.28.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
390
- akshare-1.15.28.dist-info/RECORD,,
386
+ akshare-1.15.29.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
387
+ akshare-1.15.29.dist-info/METADATA,sha256=Kv3aeIVBLwaYj8zh5qAjV4QQUji9m9NmoB2x5guSVik,14232
388
+ akshare-1.15.29.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
389
+ akshare-1.15.29.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
390
+ akshare-1.15.29.dist-info/RECORD,,