akshare 1.15.60__py3-none-any.whl → 1.15.62__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 +17 -1
- akshare/index/index_option_qvix.py +329 -0
- akshare/stock_feature/stock_ztb_em.py +19 -6
- {akshare-1.15.60.dist-info → akshare-1.15.62.dist-info}/METADATA +1 -1
- {akshare-1.15.60.dist-info → akshare-1.15.62.dist-info}/RECORD +8 -8
- {akshare-1.15.60.dist-info → akshare-1.15.62.dist-info}/LICENSE +0 -0
- {akshare-1.15.60.dist-info → akshare-1.15.62.dist-info}/WHEEL +0 -0
- {akshare-1.15.60.dist-info → akshare-1.15.62.dist-info}/top_level.txt +0 -0
akshare/__init__.py
CHANGED
|
@@ -2970,9 +2970,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
|
|
|
2970
2970
|
1.15.58 fix: fix futures_hold_pos_sina interface
|
|
2971
2971
|
1.15.59 fix: fix stock_sy_hy_em interface
|
|
2972
2972
|
1.15.60 fix: fix stock_hot_keyword_em interface
|
|
2973
|
+
1.15.61 fix: fix stock_zt_pool_strong_em interface
|
|
2974
|
+
1.15.62 fix: fix stock_zt_pool_sub_new_em interface
|
|
2973
2975
|
"""
|
|
2974
2976
|
|
|
2975
|
-
__version__ = "1.15.
|
|
2977
|
+
__version__ = "1.15.62"
|
|
2976
2978
|
__author__ = "AKFamily"
|
|
2977
2979
|
|
|
2978
2980
|
import sys
|
|
@@ -3391,6 +3393,20 @@ from akshare.index.index_option_qvix import (
|
|
|
3391
3393
|
index_option_300etf_min_qvix,
|
|
3392
3394
|
index_option_300etf_qvix,
|
|
3393
3395
|
index_option_50etf_min_qvix,
|
|
3396
|
+
index_option_1000index_min_qvix,
|
|
3397
|
+
index_option_1000index_qvix,
|
|
3398
|
+
index_option_100etf_min_qvix,
|
|
3399
|
+
index_option_100etf_qvix,
|
|
3400
|
+
index_option_300index_min_qvix,
|
|
3401
|
+
index_option_300index_qvix,
|
|
3402
|
+
index_option_500etf_min_qvix,
|
|
3403
|
+
index_option_500etf_qvix,
|
|
3404
|
+
index_option_50index_min_qvix,
|
|
3405
|
+
index_option_50index_qvix,
|
|
3406
|
+
index_option_cyb_min_qvix,
|
|
3407
|
+
index_option_cyb_qvix,
|
|
3408
|
+
index_option_kcb_min_qvix,
|
|
3409
|
+
index_option_kcb_qvix,
|
|
3394
3410
|
)
|
|
3395
3411
|
|
|
3396
3412
|
"""
|
|
@@ -92,6 +92,293 @@ def index_option_300etf_min_qvix() -> pd.DataFrame:
|
|
|
92
92
|
return temp_df
|
|
93
93
|
|
|
94
94
|
|
|
95
|
+
def index_option_500etf_qvix() -> pd.DataFrame:
|
|
96
|
+
"""
|
|
97
|
+
500 ETF 期权波动率指数 QVIX
|
|
98
|
+
http://1.optbbs.com/s/vix.shtml?500ETF
|
|
99
|
+
:return: 500 ETF 期权波动率指数 QVIX
|
|
100
|
+
:rtype: pandas.DataFrame
|
|
101
|
+
"""
|
|
102
|
+
url = "http://1.optbbs.com/d/csv/d/k.csv"
|
|
103
|
+
temp_df = pd.read_csv(url).iloc[:, [0, 67, 68, 69, 70]]
|
|
104
|
+
temp_df.columns = [
|
|
105
|
+
"date",
|
|
106
|
+
"open",
|
|
107
|
+
"high",
|
|
108
|
+
"low",
|
|
109
|
+
"close",
|
|
110
|
+
]
|
|
111
|
+
temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
|
|
112
|
+
temp_df["open"] = pd.to_numeric(temp_df["open"], errors="coerce")
|
|
113
|
+
temp_df["high"] = pd.to_numeric(temp_df["high"], errors="coerce")
|
|
114
|
+
temp_df["low"] = pd.to_numeric(temp_df["low"], errors="coerce")
|
|
115
|
+
temp_df["close"] = pd.to_numeric(temp_df["close"], errors="coerce")
|
|
116
|
+
return temp_df
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def index_option_500etf_min_qvix() -> pd.DataFrame:
|
|
120
|
+
"""
|
|
121
|
+
500 ETF 期权波动率指数 QVIX-分时
|
|
122
|
+
http://1.optbbs.com/s/vix.shtml?500ETF
|
|
123
|
+
:return: 500 ETF 期权波动率指数 QVIX-分时
|
|
124
|
+
:rtype: pandas.DataFrame
|
|
125
|
+
"""
|
|
126
|
+
url = "http://1.optbbs.com/d/csv/d/vix500.csv"
|
|
127
|
+
temp_df = pd.read_csv(url).iloc[:, :2]
|
|
128
|
+
temp_df.columns = [
|
|
129
|
+
"time",
|
|
130
|
+
"qvix",
|
|
131
|
+
]
|
|
132
|
+
temp_df["qvix"] = pd.to_numeric(temp_df["qvix"], errors="coerce")
|
|
133
|
+
return temp_df
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def index_option_cyb_qvix() -> pd.DataFrame:
|
|
137
|
+
"""
|
|
138
|
+
创业板 期权波动率指数 QVIX
|
|
139
|
+
http://1.optbbs.com/s/vix.shtml?CYB
|
|
140
|
+
:return: 创业板 期权波动率指数 QVIX
|
|
141
|
+
:rtype: pandas.DataFrame
|
|
142
|
+
"""
|
|
143
|
+
url = "http://1.optbbs.com/d/csv/d/k.csv"
|
|
144
|
+
temp_df = pd.read_csv(url).iloc[:, [0, 71, 72, 73, 74]]
|
|
145
|
+
temp_df.columns = [
|
|
146
|
+
"date",
|
|
147
|
+
"open",
|
|
148
|
+
"high",
|
|
149
|
+
"low",
|
|
150
|
+
"close",
|
|
151
|
+
]
|
|
152
|
+
temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
|
|
153
|
+
temp_df["open"] = pd.to_numeric(temp_df["open"], errors="coerce")
|
|
154
|
+
temp_df["high"] = pd.to_numeric(temp_df["high"], errors="coerce")
|
|
155
|
+
temp_df["low"] = pd.to_numeric(temp_df["low"], errors="coerce")
|
|
156
|
+
temp_df["close"] = pd.to_numeric(temp_df["close"], errors="coerce")
|
|
157
|
+
return temp_df
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def index_option_cyb_min_qvix() -> pd.DataFrame:
|
|
161
|
+
"""
|
|
162
|
+
创业板 期权波动率指数 QVIX-分时
|
|
163
|
+
http://1.optbbs.com/s/vix.shtml?CYB
|
|
164
|
+
:return: 创业板 期权波动率指数 QVIX-分时
|
|
165
|
+
:rtype: pandas.DataFrame
|
|
166
|
+
"""
|
|
167
|
+
url = "http://1.optbbs.com/d/csv/d/vixcyb.csv"
|
|
168
|
+
temp_df = pd.read_csv(url).iloc[:, :2]
|
|
169
|
+
temp_df.columns = [
|
|
170
|
+
"time",
|
|
171
|
+
"qvix",
|
|
172
|
+
]
|
|
173
|
+
temp_df["qvix"] = pd.to_numeric(temp_df["qvix"], errors="coerce")
|
|
174
|
+
return temp_df
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def index_option_kcb_qvix() -> pd.DataFrame:
|
|
178
|
+
"""
|
|
179
|
+
科创板 期权波动率指数 QVIX
|
|
180
|
+
http://1.optbbs.com/s/vix.shtml?KCB
|
|
181
|
+
:return: 科创板 期权波动率指数 QVIX
|
|
182
|
+
:rtype: pandas.DataFrame
|
|
183
|
+
"""
|
|
184
|
+
url = "http://1.optbbs.com/d/csv/d/k.csv"
|
|
185
|
+
temp_df = pd.read_csv(url).iloc[:, [0, 83, 84, 85, 86]]
|
|
186
|
+
temp_df.columns = [
|
|
187
|
+
"date",
|
|
188
|
+
"open",
|
|
189
|
+
"high",
|
|
190
|
+
"low",
|
|
191
|
+
"close",
|
|
192
|
+
]
|
|
193
|
+
temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
|
|
194
|
+
temp_df["open"] = pd.to_numeric(temp_df["open"], errors="coerce")
|
|
195
|
+
temp_df["high"] = pd.to_numeric(temp_df["high"], errors="coerce")
|
|
196
|
+
temp_df["low"] = pd.to_numeric(temp_df["low"], errors="coerce")
|
|
197
|
+
temp_df["close"] = pd.to_numeric(temp_df["close"], errors="coerce")
|
|
198
|
+
return temp_df
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
def index_option_kcb_min_qvix() -> pd.DataFrame:
|
|
202
|
+
"""
|
|
203
|
+
科创板 期权波动率指数 QVIX-分时
|
|
204
|
+
http://1.optbbs.com/s/vix.shtml?KCB
|
|
205
|
+
:return: 科创板 期权波动率指数 QVIX-分时
|
|
206
|
+
:rtype: pandas.DataFrame
|
|
207
|
+
"""
|
|
208
|
+
url = "http://1.optbbs.com/d/csv/d/vixkcb.csv"
|
|
209
|
+
temp_df = pd.read_csv(url).iloc[:, :2]
|
|
210
|
+
temp_df.columns = [
|
|
211
|
+
"time",
|
|
212
|
+
"qvix",
|
|
213
|
+
]
|
|
214
|
+
temp_df["qvix"] = pd.to_numeric(temp_df["qvix"], errors="coerce")
|
|
215
|
+
return temp_df
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
def index_option_100etf_qvix() -> pd.DataFrame:
|
|
219
|
+
"""
|
|
220
|
+
深证100ETF 期权波动率指数 QVIX
|
|
221
|
+
http://1.optbbs.com/s/vix.shtml?100ETF
|
|
222
|
+
:return: 深证100ETF 期权波动率指数 QVIX
|
|
223
|
+
:rtype: pandas.DataFrame
|
|
224
|
+
"""
|
|
225
|
+
url = "http://1.optbbs.com/d/csv/d/k.csv"
|
|
226
|
+
temp_df = pd.read_csv(url).iloc[:, [0, 75, 76, 77, 78]]
|
|
227
|
+
temp_df.columns = [
|
|
228
|
+
"date",
|
|
229
|
+
"open",
|
|
230
|
+
"high",
|
|
231
|
+
"low",
|
|
232
|
+
"close",
|
|
233
|
+
]
|
|
234
|
+
temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
|
|
235
|
+
temp_df["open"] = pd.to_numeric(temp_df["open"], errors="coerce")
|
|
236
|
+
temp_df["high"] = pd.to_numeric(temp_df["high"], errors="coerce")
|
|
237
|
+
temp_df["low"] = pd.to_numeric(temp_df["low"], errors="coerce")
|
|
238
|
+
temp_df["close"] = pd.to_numeric(temp_df["close"], errors="coerce")
|
|
239
|
+
return temp_df
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
def index_option_100etf_min_qvix() -> pd.DataFrame:
|
|
243
|
+
"""
|
|
244
|
+
深证100ETF 期权波动率指数 QVIX-分时
|
|
245
|
+
http://1.optbbs.com/s/vix.shtml?100ETF
|
|
246
|
+
:return: 深证100ETF 期权波动率指数 QVIX-分时
|
|
247
|
+
:rtype: pandas.DataFrame
|
|
248
|
+
"""
|
|
249
|
+
url = "http://1.optbbs.com/d/csv/d/vix100.csv"
|
|
250
|
+
temp_df = pd.read_csv(url).iloc[:, :2]
|
|
251
|
+
temp_df.columns = [
|
|
252
|
+
"time",
|
|
253
|
+
"qvix",
|
|
254
|
+
]
|
|
255
|
+
temp_df["qvix"] = pd.to_numeric(temp_df["qvix"], errors="coerce")
|
|
256
|
+
return temp_df
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
def index_option_300index_qvix() -> pd.DataFrame:
|
|
260
|
+
"""
|
|
261
|
+
中证300股指 期权波动率指数 QVIX
|
|
262
|
+
http://1.optbbs.com/s/vix.shtml?Index
|
|
263
|
+
:return: 中证300股指 期权波动率指数 QVIX
|
|
264
|
+
:rtype: pandas.DataFrame
|
|
265
|
+
"""
|
|
266
|
+
url = "http://1.optbbs.com/d/csv/d/k.csv"
|
|
267
|
+
temp_df = pd.read_csv(url).iloc[:, [0, 17, 18, 19, 20]]
|
|
268
|
+
temp_df.columns = [
|
|
269
|
+
"date",
|
|
270
|
+
"open",
|
|
271
|
+
"high",
|
|
272
|
+
"low",
|
|
273
|
+
"close",
|
|
274
|
+
]
|
|
275
|
+
temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
|
|
276
|
+
temp_df["open"] = pd.to_numeric(temp_df["open"], errors="coerce")
|
|
277
|
+
temp_df["high"] = pd.to_numeric(temp_df["high"], errors="coerce")
|
|
278
|
+
temp_df["low"] = pd.to_numeric(temp_df["low"], errors="coerce")
|
|
279
|
+
temp_df["close"] = pd.to_numeric(temp_df["close"], errors="coerce")
|
|
280
|
+
return temp_df
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
def index_option_300index_min_qvix() -> pd.DataFrame:
|
|
284
|
+
"""
|
|
285
|
+
中证300股指 期权波动率指数 QVIX-分时
|
|
286
|
+
http://1.optbbs.com/s/vix.shtml?Index
|
|
287
|
+
:return: 中证300股指 期权波动率指数 QVIX-分时
|
|
288
|
+
:rtype: pandas.DataFrame
|
|
289
|
+
"""
|
|
290
|
+
url = "http://1.optbbs.com/d/csv/d/vixindex.csv"
|
|
291
|
+
temp_df = pd.read_csv(url).iloc[:, :2]
|
|
292
|
+
temp_df.columns = [
|
|
293
|
+
"time",
|
|
294
|
+
"qvix",
|
|
295
|
+
]
|
|
296
|
+
temp_df["qvix"] = pd.to_numeric(temp_df["qvix"], errors="coerce")
|
|
297
|
+
return temp_df
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
def index_option_1000index_qvix() -> pd.DataFrame:
|
|
301
|
+
"""
|
|
302
|
+
中证1000股指 期权波动率指数 QVIX
|
|
303
|
+
http://1.optbbs.com/s/vix.shtml?Index1000
|
|
304
|
+
:return: 中证1000股指 期权波动率指数 QVIX
|
|
305
|
+
:rtype: pandas.DataFrame
|
|
306
|
+
"""
|
|
307
|
+
url = "http://1.optbbs.com/d/csv/d/k.csv"
|
|
308
|
+
temp_df = pd.read_csv(url).iloc[:, [0, 25, 26, 27, 28]]
|
|
309
|
+
temp_df.columns = [
|
|
310
|
+
"date",
|
|
311
|
+
"open",
|
|
312
|
+
"high",
|
|
313
|
+
"low",
|
|
314
|
+
"close",
|
|
315
|
+
]
|
|
316
|
+
temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
|
|
317
|
+
temp_df["open"] = pd.to_numeric(temp_df["open"], errors="coerce")
|
|
318
|
+
temp_df["high"] = pd.to_numeric(temp_df["high"], errors="coerce")
|
|
319
|
+
temp_df["low"] = pd.to_numeric(temp_df["low"], errors="coerce")
|
|
320
|
+
temp_df["close"] = pd.to_numeric(temp_df["close"], errors="coerce")
|
|
321
|
+
return temp_df
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
def index_option_1000index_min_qvix() -> pd.DataFrame:
|
|
325
|
+
"""
|
|
326
|
+
中证1000股指 期权波动率指数 QVIX-分时
|
|
327
|
+
http://1.optbbs.com/s/vix.shtml?Index1000
|
|
328
|
+
:return: 中证1000股指 期权波动率指数 QVIX-分时
|
|
329
|
+
:rtype: pandas.DataFrame
|
|
330
|
+
"""
|
|
331
|
+
url = "http://1.optbbs.com/d/csv/d/vixindex1000.csv"
|
|
332
|
+
temp_df = pd.read_csv(url).iloc[:, :2]
|
|
333
|
+
temp_df.columns = [
|
|
334
|
+
"time",
|
|
335
|
+
"qvix",
|
|
336
|
+
]
|
|
337
|
+
temp_df["qvix"] = pd.to_numeric(temp_df["qvix"], errors="coerce")
|
|
338
|
+
return temp_df
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
def index_option_50index_qvix() -> pd.DataFrame:
|
|
342
|
+
"""
|
|
343
|
+
上证50股指 期权波动率指数 QVIX
|
|
344
|
+
http://1.optbbs.com/s/vix.shtml?50index
|
|
345
|
+
:return: 上证50股指 期权波动率指数 QVIX
|
|
346
|
+
:rtype: pandas.DataFrame
|
|
347
|
+
"""
|
|
348
|
+
url = "http://1.optbbs.com/d/csv/d/k.csv"
|
|
349
|
+
temp_df = pd.read_csv(url).iloc[:, [0, 79, 80, 81, 82]]
|
|
350
|
+
temp_df.columns = [
|
|
351
|
+
"date",
|
|
352
|
+
"open",
|
|
353
|
+
"high",
|
|
354
|
+
"low",
|
|
355
|
+
"close",
|
|
356
|
+
]
|
|
357
|
+
temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
|
|
358
|
+
temp_df["open"] = pd.to_numeric(temp_df["open"], errors="coerce")
|
|
359
|
+
temp_df["high"] = pd.to_numeric(temp_df["high"], errors="coerce")
|
|
360
|
+
temp_df["low"] = pd.to_numeric(temp_df["low"], errors="coerce")
|
|
361
|
+
temp_df["close"] = pd.to_numeric(temp_df["close"], errors="coerce")
|
|
362
|
+
return temp_df
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
def index_option_50index_min_qvix() -> pd.DataFrame:
|
|
366
|
+
"""
|
|
367
|
+
上证50股指 期权波动率指数 QVIX-分时
|
|
368
|
+
http://1.optbbs.com/s/vix.shtml?50index
|
|
369
|
+
:return: 上证50股指 期权波动率指数 QVIX-分时
|
|
370
|
+
:rtype: pandas.DataFrame
|
|
371
|
+
"""
|
|
372
|
+
url = "http://1.optbbs.com/d/csv/d/vix50index.csv"
|
|
373
|
+
temp_df = pd.read_csv(url).iloc[:, :2]
|
|
374
|
+
temp_df.columns = [
|
|
375
|
+
"time",
|
|
376
|
+
"qvix",
|
|
377
|
+
]
|
|
378
|
+
temp_df["qvix"] = pd.to_numeric(temp_df["qvix"], errors="coerce")
|
|
379
|
+
return temp_df
|
|
380
|
+
|
|
381
|
+
|
|
95
382
|
if __name__ == "__main__":
|
|
96
383
|
index_option_50etf_qvix_df = index_option_50etf_qvix()
|
|
97
384
|
print(index_option_50etf_qvix_df)
|
|
@@ -104,3 +391,45 @@ if __name__ == "__main__":
|
|
|
104
391
|
|
|
105
392
|
index_option_300etf_min_qvix_df = index_option_300etf_min_qvix()
|
|
106
393
|
print(index_option_300etf_min_qvix_df)
|
|
394
|
+
|
|
395
|
+
index_option_500etf_qvix_df = index_option_500etf_qvix()
|
|
396
|
+
print(index_option_500etf_qvix_df)
|
|
397
|
+
|
|
398
|
+
index_option_500etf_min_qvix_df = index_option_500etf_min_qvix()
|
|
399
|
+
print(index_option_500etf_min_qvix_df)
|
|
400
|
+
|
|
401
|
+
index_option_cyb_qvix_df = index_option_cyb_qvix()
|
|
402
|
+
print(index_option_cyb_qvix_df)
|
|
403
|
+
|
|
404
|
+
index_option_cyb_min_qvix_df = index_option_cyb_min_qvix()
|
|
405
|
+
print(index_option_cyb_min_qvix_df)
|
|
406
|
+
|
|
407
|
+
index_option_kcb_qvix_df = index_option_kcb_qvix()
|
|
408
|
+
print(index_option_kcb_qvix_df)
|
|
409
|
+
|
|
410
|
+
index_option_kcb_min_qvix_df = index_option_kcb_min_qvix()
|
|
411
|
+
print(index_option_kcb_min_qvix_df)
|
|
412
|
+
|
|
413
|
+
index_option_100etf_qvix_df = index_option_100etf_qvix()
|
|
414
|
+
print(index_option_100etf_qvix_df)
|
|
415
|
+
|
|
416
|
+
index_option_100etf_min_qvix_df = index_option_100etf_min_qvix()
|
|
417
|
+
print(index_option_100etf_min_qvix_df)
|
|
418
|
+
|
|
419
|
+
index_option_300index_qvix_df = index_option_300index_qvix()
|
|
420
|
+
print(index_option_300index_qvix_df)
|
|
421
|
+
|
|
422
|
+
index_option_300index_min_qvix_df = index_option_300index_min_qvix()
|
|
423
|
+
print(index_option_300index_min_qvix_df)
|
|
424
|
+
|
|
425
|
+
index_option_1000index_qvix_df = index_option_1000index_qvix()
|
|
426
|
+
print(index_option_1000index_qvix_df)
|
|
427
|
+
|
|
428
|
+
index_option_1000index_min_qvix_df = index_option_1000index_min_qvix()
|
|
429
|
+
print(index_option_1000index_min_qvix_df)
|
|
430
|
+
|
|
431
|
+
index_option_50index_qvix_df = index_option_50index_qvix()
|
|
432
|
+
print(index_option_50index_qvix_df)
|
|
433
|
+
|
|
434
|
+
index_option_50index_min_qvix_df = index_option_50index_min_qvix()
|
|
435
|
+
print(index_option_50index_min_qvix_df)
|
|
@@ -186,7 +186,7 @@ def stock_zt_pool_previous_em(date: str = "20240415") -> pd.DataFrame:
|
|
|
186
186
|
return temp_df
|
|
187
187
|
|
|
188
188
|
|
|
189
|
-
def stock_zt_pool_strong_em(date: str = "
|
|
189
|
+
def stock_zt_pool_strong_em(date: str = "20241231") -> pd.DataFrame:
|
|
190
190
|
"""
|
|
191
191
|
东方财富网-行情中心-涨停板行情-强势股池
|
|
192
192
|
https://quote.eastmoney.com/ztb/detail#type=qsgc
|
|
@@ -261,10 +261,22 @@ def stock_zt_pool_strong_em(date: str = "20241009") -> pd.DataFrame:
|
|
|
261
261
|
]
|
|
262
262
|
temp_df["最新价"] = temp_df["最新价"] / 1000
|
|
263
263
|
temp_df["涨停价"] = temp_df["涨停价"] / 1000
|
|
264
|
+
explained_map = {1: "60日新高", 2: "近期多次涨停", 3: "60日新高且近期多次涨停"}
|
|
265
|
+
temp_df["入选理由"] = temp_df["入选理由"].apply(lambda x: explained_map[x])
|
|
266
|
+
temp_df["是否新高"] = temp_df["是否新高"].apply(lambda x: "是" if x == 1 else "否")
|
|
267
|
+
temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
|
|
268
|
+
temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
|
|
269
|
+
temp_df["涨停价"] = pd.to_numeric(temp_df["涨停价"], errors="coerce")
|
|
270
|
+
temp_df["成交额"] = pd.to_numeric(temp_df["成交额"], errors="coerce")
|
|
271
|
+
temp_df["流通市值"] = pd.to_numeric(temp_df["流通市值"], errors="coerce")
|
|
272
|
+
temp_df["总市值"] = pd.to_numeric(temp_df["总市值"], errors="coerce")
|
|
273
|
+
temp_df["换手率"] = pd.to_numeric(temp_df["换手率"], errors="coerce")
|
|
274
|
+
temp_df["涨速"] = pd.to_numeric(temp_df["涨速"], errors="coerce")
|
|
275
|
+
temp_df["量比"] = pd.to_numeric(temp_df["量比"], errors="coerce")
|
|
264
276
|
return temp_df
|
|
265
277
|
|
|
266
278
|
|
|
267
|
-
def stock_zt_pool_sub_new_em(date: str = "
|
|
279
|
+
def stock_zt_pool_sub_new_em(date: str = "20241231") -> pd.DataFrame:
|
|
268
280
|
"""
|
|
269
281
|
东方财富网-行情中心-涨停板行情-次新股池
|
|
270
282
|
https://quote.eastmoney.com/ztb/detail#type=cxgc
|
|
@@ -339,9 +351,10 @@ def stock_zt_pool_sub_new_em(date: str = "20241011") -> pd.DataFrame:
|
|
|
339
351
|
temp_df["最新价"] = temp_df["最新价"] / 1000
|
|
340
352
|
temp_df["涨停价"] = temp_df["涨停价"] / 1000
|
|
341
353
|
temp_df.loc[temp_df["涨停价"] > 100000, "涨停价"] = pd.NA
|
|
342
|
-
temp_df["开板日期"] = pd.to_datetime(temp_df["开板日期"], format="%Y%m%d")
|
|
343
|
-
temp_df["上市日期"] = pd.to_datetime(temp_df["上市日期"], format="%Y%m%d")
|
|
354
|
+
temp_df["开板日期"] = pd.to_datetime(temp_df["开板日期"], format="%Y%m%d").dt.date
|
|
355
|
+
temp_df["上市日期"] = pd.to_datetime(temp_df["上市日期"], format="%Y%m%d").dt.date
|
|
344
356
|
temp_df.loc[temp_df["上市日期"] == 0, "上市日期"] = pd.NaT
|
|
357
|
+
temp_df["是否新高"] = temp_df["是否新高"].apply(lambda x: "是" if x == 1 else "否")
|
|
345
358
|
return temp_df
|
|
346
359
|
|
|
347
360
|
|
|
@@ -522,10 +535,10 @@ if __name__ == "__main__":
|
|
|
522
535
|
stock_zt_pool_previous_em_df = stock_zt_pool_previous_em(date="20240415")
|
|
523
536
|
print(stock_zt_pool_previous_em_df)
|
|
524
537
|
|
|
525
|
-
stock_zt_pool_strong_em_df = stock_zt_pool_strong_em(date="
|
|
538
|
+
stock_zt_pool_strong_em_df = stock_zt_pool_strong_em(date="20241231")
|
|
526
539
|
print(stock_zt_pool_strong_em_df)
|
|
527
540
|
|
|
528
|
-
stock_zt_pool_sub_new_em_df = stock_zt_pool_sub_new_em(date="
|
|
541
|
+
stock_zt_pool_sub_new_em_df = stock_zt_pool_sub_new_em(date="20241231")
|
|
529
542
|
print(stock_zt_pool_sub_new_em_df)
|
|
530
543
|
|
|
531
544
|
stock_zt_pool_zbgc_em_df = stock_zt_pool_zbgc_em(date="20241011")
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
akshare/__init__.py,sha256=
|
|
1
|
+
akshare/__init__.py,sha256=sH2zmA2ob9nPQsy1iv8F8ZqsHQdat4x6C-UGfJJ7pCI,185335
|
|
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
|
|
@@ -158,7 +158,7 @@ akshare/index/index_eri.py,sha256=7X0KNDBntEkE_qSb2jb6IBv-S8PsevLFdxGT8nKT3W0,21
|
|
|
158
158
|
akshare/index/index_hog.py,sha256=kb867BVagt70_ycZMn22ks5Z9jlVbMiuTsvq5ygjeig,1657
|
|
159
159
|
akshare/index/index_kq_fz.py,sha256=Y-cbxWLpRyGcFcMSDxZZQXdAuD85IuQH5xC2rhtGbRc,3395
|
|
160
160
|
akshare/index/index_kq_ss.py,sha256=m4hAMNnzHk8JNAnKjkYYVeyG4zUC5zR5i0-u-OxmaGU,3333
|
|
161
|
-
akshare/index/index_option_qvix.py,sha256=
|
|
161
|
+
akshare/index/index_option_qvix.py,sha256=11GRd47p81_7nfeexbHUiy0Vfj3FfdQMErr6OwqbyU8,14055
|
|
162
162
|
akshare/index/index_research_fund_sw.py,sha256=kVYjBl3vZg6CyYBCrxZiSv8taHMnqmG7PQ-LVmMNd3I,4603
|
|
163
163
|
akshare/index/index_research_sw.py,sha256=Mm1YtiP-PXhDysJwmFidX3RZSZZ92AyXpjl_tVrjdwA,21758
|
|
164
164
|
akshare/index/index_spot.py,sha256=meTBTCp2DPVTX_N3qpCLtkI-0q3XhrJ3gndNugRBGKg,1767
|
|
@@ -346,7 +346,7 @@ akshare/stock_feature/stock_zdhtmx_em.py,sha256=2BpJQntGgUlEIOmDlepOiOkw-e-tKLRa
|
|
|
346
346
|
akshare/stock_feature/stock_zf_pg.py,sha256=nYJ1uLOBdzM_PDyq4MNeWoCTripFMAPoAiaPfhDqkcg,6343
|
|
347
347
|
akshare/stock_feature/stock_zh_valuation_baidu.py,sha256=oxYIHP68pFvAYyqjCvZp3a9tpczTFiWhSxZ0w4eyo7I,1904
|
|
348
348
|
akshare/stock_feature/stock_zh_vote_baidu.py,sha256=SsSNnCq7PDFMzWFcPFcC_MSc9rua412P14vHc923gmo,1761
|
|
349
|
-
akshare/stock_feature/stock_ztb_em.py,sha256=
|
|
349
|
+
akshare/stock_feature/stock_ztb_em.py,sha256=hMi0NSlBs-qEid3oXKOAempZSItNApPDQKvcsdtF8j8,18141
|
|
350
350
|
akshare/stock_feature/ths.js,sha256=AWPkHf3L2Il1UUL0F5qDqNn1dfU0OlZBNUbMf8AmI3Y,39664
|
|
351
351
|
akshare/stock_fundamental/__init__.py,sha256=jiXoO9OXiMxB0wHaPQkuxNckYuoFKtzuhZL1ytnE2nQ,82
|
|
352
352
|
akshare/stock_fundamental/stock_finance.py,sha256=WuYvLo8xZxH-VS-6P-S31yzsKA1ojrwegcLXP2byle4,30676
|
|
@@ -377,8 +377,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
|
|
|
377
377
|
akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
|
|
378
378
|
tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
|
|
379
379
|
tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
|
|
380
|
-
akshare-1.15.
|
|
381
|
-
akshare-1.15.
|
|
382
|
-
akshare-1.15.
|
|
383
|
-
akshare-1.15.
|
|
384
|
-
akshare-1.15.
|
|
380
|
+
akshare-1.15.62.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
|
|
381
|
+
akshare-1.15.62.dist-info/METADATA,sha256=g72cKXiAlirVmSb1jphbkGuOtOiGcMhKQin9rPZyFLE,13423
|
|
382
|
+
akshare-1.15.62.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
|
383
|
+
akshare-1.15.62.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
|
|
384
|
+
akshare-1.15.62.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|