2.15
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "18d1d622-b083-4cc4-a6f8-7c1ed2d0edd2",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
@@ -9,22 +10,24 @@
|
||||
"start_time": "2025-02-11T15:43:53.837662Z"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import tushare as ts\n",
|
||||
"ts.set_token('3a0741c702ee7e5e5f2bf1f0846bafaafe4e320833240b2a7e4a685f')\n",
|
||||
"pro = ts.pro_api()"
|
||||
],
|
||||
"outputs": [],
|
||||
"execution_count": 1
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "14671a7f72de2564",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:53:08.235573Z",
|
||||
"start_time": "2025-02-11T15:53:07.753701Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from datetime import datetime\n",
|
||||
"import pandas as pd\n",
|
||||
@@ -56,19 +59,38 @@
|
||||
" st_data = group[(group['change_reason'] == 'ST') | (group['change_reason'] == '*ST')]\n",
|
||||
" if not st_data.empty:\n",
|
||||
" name_change_dict[ts_code] = st_data"
|
||||
],
|
||||
"id": "14671a7f72de2564",
|
||||
"outputs": [],
|
||||
"execution_count": 31
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "e7f8cce2f80e2f20",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:53:19.812860Z",
|
||||
"start_time": "2025-02-11T15:53:09.614377Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"<class 'pandas.core.frame.DataFrame'>\n",
|
||||
"Index: 8291970 entries, 0 to 8291969\n",
|
||||
"Data columns (total 2 columns):\n",
|
||||
" # Column Dtype \n",
|
||||
"--- ------ ----- \n",
|
||||
" 0 ts_code object\n",
|
||||
" 1 trade_date object\n",
|
||||
"dtypes: object(2)\n",
|
||||
"memory usage: 189.8+ MB\n",
|
||||
"None\n",
|
||||
"20250211\n",
|
||||
"20250212\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import time\n",
|
||||
"from concurrent.futures import ThreadPoolExecutor, as_completed\n",
|
||||
@@ -87,40 +109,34 @@
|
||||
"trade_dates = trade_cal[trade_cal['cal_date'] > max_date]['cal_date'].tolist()\n",
|
||||
"start_date = min(trade_dates)\n",
|
||||
"print(start_date)"
|
||||
],
|
||||
"id": "e7f8cce2f80e2f20",
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "553cfb36-f560-4cc4-b2bc-68323ccc5072",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:53:24.100612Z",
|
||||
"start_time": "2025-02-11T15:53:22.361257Z"
|
||||
},
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"<class 'pandas.core.frame.DataFrame'>\n",
|
||||
"Index: 8295494 entries, 0 to 8295493\n",
|
||||
"Data columns (total 2 columns):\n",
|
||||
" # Column Dtype \n",
|
||||
"--- ------ ----- \n",
|
||||
" 0 ts_code object\n",
|
||||
" 1 trade_date object\n",
|
||||
"dtypes: object(2)\n",
|
||||
"memory usage: 189.9+ MB\n",
|
||||
"None\n",
|
||||
"20250210\n",
|
||||
"20250211\n"
|
||||
"任务 20250220 完成\n",
|
||||
"任务 20250219 完成\n",
|
||||
"任务 20250217 完成\n",
|
||||
"任务 20250218 完成\n",
|
||||
"任务 20250214 完成\n",
|
||||
"任务 20250213 完成\n",
|
||||
"任务 20250212 完成\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 32
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "553cfb36-f560-4cc4-b2bc-68323ccc5072",
|
||||
"metadata": {
|
||||
"scrolled": true,
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:53:24.100612Z",
|
||||
"start_time": "2025-02-11T15:53:22.361257Z"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"\n",
|
||||
"\n",
|
||||
@@ -170,189 +186,169 @@
|
||||
" # 重置批次起始时间\n",
|
||||
" batch_start_time = time.time()\n",
|
||||
"\n"
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"任务 20250220 完成\n",
|
||||
"任务 20250219 完成\n",
|
||||
"任务 20250218 完成\n",
|
||||
"任务 20250217 完成\n",
|
||||
"任务 20250214 完成\n",
|
||||
"任务 20250213 完成\n",
|
||||
"任务 20250212 完成\n",
|
||||
"任务 20250211 完成\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 33
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "919023c693d7a47a",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:53:25.913933Z",
|
||||
"start_time": "2025-02-11T15:53:25.902629Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"all_daily_data_df = pd.concat(all_daily_data, ignore_index=True)\n",
|
||||
"print(all_daily_data_df)"
|
||||
],
|
||||
"id": "919023c693d7a47a",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" ts_code trade_date close turnover_rate turnover_rate_f \\\n",
|
||||
"0 002512.SZ 20250211 5.03 5.9759 7.8713 \n",
|
||||
"1 600966.SH 20250211 4.83 0.6904 1.3494 \n",
|
||||
"2 600358.SH 20250211 3.68 8.5826 11.3780 \n",
|
||||
"3 002893.SZ 20250211 9.73 1.9217 2.6415 \n",
|
||||
"4 300648.SZ 20250211 22.90 1.7775 2.3188 \n",
|
||||
"0 601162.SH 20250212 4.77 7.3760 9.7054 \n",
|
||||
"1 603216.SH 20250212 11.42 8.8711 8.8711 \n",
|
||||
"2 872808.BJ 20250212 74.36 4.1219 15.3296 \n",
|
||||
"3 601881.SH 20250212 14.43 0.5617 1.9533 \n",
|
||||
"4 002837.SZ 20250212 42.25 3.8199 5.7136 \n",
|
||||
"... ... ... ... ... ... \n",
|
||||
"5380 300886.SZ 20250211 21.80 8.9341 13.4176 \n",
|
||||
"5381 600050.SH 20250211 5.48 2.3899 5.6722 \n",
|
||||
"5382 300149.SZ 20250211 6.73 3.5271 5.3077 \n",
|
||||
"5383 002197.SZ 20250211 4.42 4.0058 4.6595 \n",
|
||||
"5384 688270.SH 20250211 37.34 2.9212 2.9212 \n",
|
||||
"5380 603931.SH 20250212 23.83 1.4692 4.6843 \n",
|
||||
"5381 688567.SH 20250212 12.35 1.3091 2.1970 \n",
|
||||
"5382 688530.SH 20250212 19.30 6.6093 6.6093 \n",
|
||||
"5383 301363.SZ 20250212 31.99 2.1990 2.1990 \n",
|
||||
"5384 833533.BJ 20250212 46.02 27.7269 27.7597 \n",
|
||||
"\n",
|
||||
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
|
||||
"0 0.87 NaN NaN 12.8888 2.9340 3.0625 0.0000 \n",
|
||||
"1 1.16 35.5101 15.2315 0.9534 0.3454 0.3402 0.5633 \n",
|
||||
"2 1.38 NaN NaN 15.2661 3.4220 4.2041 0.0000 \n",
|
||||
"3 0.85 48.9883 41.5405 2.2074 2.3641 2.3637 0.8222 \n",
|
||||
"4 0.69 NaN NaN 4.1442 3.7325 3.3186 0.0000 \n",
|
||||
"0 2.00 134.5633 NaN 1.7935 12.0634 19.0461 0.0000 \n",
|
||||
"1 2.09 26.5657 27.5224 1.4454 1.9304 1.9996 2.6270 \n",
|
||||
"2 1.20 142.3485 196.0315 22.9124 22.8711 25.8281 NaN \n",
|
||||
"3 0.84 20.0264 15.5707 1.4245 4.6898 4.4609 2.1067 \n",
|
||||
"4 0.65 91.3544 64.5935 11.2259 8.9056 7.2600 0.3621 \n",
|
||||
"... ... ... ... ... ... ... ... \n",
|
||||
"5380 3.00 NaN 111.0678 2.9043 6.0326 4.9204 0.0000 \n",
|
||||
"5381 1.15 21.3231 19.5079 1.0668 0.4677 0.4574 2.6625 \n",
|
||||
"5382 1.34 NaN NaN 2.5009 2.9440 3.3158 0.0000 \n",
|
||||
"5383 1.41 NaN NaN 1.1195 2.0851 2.5837 0.0000 \n",
|
||||
"5384 0.75 110.2738 170.0477 3.7594 28.4642 27.3030 NaN \n",
|
||||
"5380 1.16 27.1631 29.0662 3.0982 6.8392 6.9124 1.1120 \n",
|
||||
"5381 1.01 NaN NaN 1.4955 0.9183 1.0469 NaN \n",
|
||||
"5382 0.99 62.5995 198.4906 3.6879 6.4857 7.9319 NaN \n",
|
||||
"5383 0.98 41.5226 47.9900 3.8396 9.7258 8.9664 0.4982 \n",
|
||||
"5384 0.84 52.3997 62.1858 13.3582 6.6261 5.9638 NaN \n",
|
||||
"\n",
|
||||
" dv_ttm total_share float_share free_share total_mv \\\n",
|
||||
"0 NaN 1.147095e+05 1.048455e+05 7.959795e+04 5.769885e+05 \n",
|
||||
"1 0.5633 1.336844e+05 1.336844e+05 6.839785e+04 6.456958e+05 \n",
|
||||
"2 NaN 5.049367e+04 5.049367e+04 3.808829e+04 1.858167e+05 \n",
|
||||
"3 0.8222 2.636400e+04 2.027786e+04 1.475173e+04 2.565217e+05 \n",
|
||||
"4 NaN 1.477839e+04 1.061894e+04 8.140048e+03 3.384251e+05 \n",
|
||||
"... ... ... ... ... ... \n",
|
||||
"5380 NaN 7.455500e+03 4.346405e+03 2.894040e+03 1.625299e+05 \n",
|
||||
"5381 2.6625 3.180058e+06 3.128014e+06 1.317969e+06 1.742672e+07 \n",
|
||||
"5382 NaN 4.979640e+04 4.970844e+04 3.303210e+04 3.351298e+05 \n",
|
||||
"5383 NaN 6.143629e+04 5.340007e+04 4.590857e+04 2.715484e+05 \n",
|
||||
"5384 NaN 2.140516e+04 1.442317e+04 1.442317e+04 7.992687e+05 \n",
|
||||
" dv_ttm total_share float_share free_share total_mv \\\n",
|
||||
"0 NaN 8.665757e+05 866575.7464 658594.7570 4.133566e+06 \n",
|
||||
"1 2.6270 2.226900e+04 5669.0000 5669.0000 2.543120e+05 \n",
|
||||
"2 NaN 2.000000e+04 19461.9464 5233.0650 1.487200e+06 \n",
|
||||
"3 2.1067 1.093440e+06 724341.7623 208280.6759 1.577834e+07 \n",
|
||||
"4 0.3621 7.438227e+04 64662.2002 43230.4691 3.142651e+06 \n",
|
||||
"... ... ... ... ... ... \n",
|
||||
"5380 1.1120 1.995584e+04 19955.8380 6258.8392 4.755476e+05 \n",
|
||||
"5381 NaN 1.222104e+05 122210.3885 72818.9706 1.509298e+06 \n",
|
||||
"5382 NaN 1.600448e+04 3200.8966 3200.8966 3.088865e+05 \n",
|
||||
"5383 0.4982 4.066600e+04 11215.9100 11215.9100 1.300905e+06 \n",
|
||||
"5384 NaN 1.005826e+04 3796.0235 3791.5280 4.628809e+05 \n",
|
||||
"\n",
|
||||
" circ_mv is_st \n",
|
||||
"0 5.273728e+05 False \n",
|
||||
"1 6.456958e+05 False \n",
|
||||
"2 1.858167e+05 True \n",
|
||||
"3 1.973036e+05 False \n",
|
||||
"4 2.431738e+05 False \n",
|
||||
"0 4.133566e+06 False \n",
|
||||
"1 6.473998e+04 False \n",
|
||||
"2 1.447190e+06 False \n",
|
||||
"3 1.045225e+07 False \n",
|
||||
"4 2.731978e+06 False \n",
|
||||
"... ... ... \n",
|
||||
"5380 9.475163e+04 False \n",
|
||||
"5381 1.714152e+07 False \n",
|
||||
"5382 3.345378e+05 False \n",
|
||||
"5383 2.360283e+05 True \n",
|
||||
"5384 5.385612e+05 False \n",
|
||||
"5380 4.755476e+05 False \n",
|
||||
"5381 1.509298e+06 False \n",
|
||||
"5382 6.177730e+04 False \n",
|
||||
"5383 3.587970e+05 False \n",
|
||||
"5384 1.746930e+05 False \n",
|
||||
"\n",
|
||||
"[5385 rows x 19 columns]\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 34
|
||||
"source": [
|
||||
"all_daily_data_df = pd.concat(all_daily_data, ignore_index=True)\n",
|
||||
"print(all_daily_data_df)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"id": "28cb78d032671b20",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:53:42.062142Z",
|
||||
"start_time": "2025-02-11T15:53:42.044324Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": "print(all_daily_data_df[all_daily_data_df['is_st']])",
|
||||
"id": "28cb78d032671b20",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
" ts_code trade_date close turnover_rate turnover_rate_f \\\n",
|
||||
"2 600358.SH 20250211 3.68 8.5826 11.3780 \n",
|
||||
"20 000889.SZ 20250211 2.48 2.0846 2.8167 \n",
|
||||
"50 603879.SH 20250211 3.58 1.7126 2.7285 \n",
|
||||
"62 002024.SZ 20250211 1.99 0.2997 0.8575 \n",
|
||||
"65 600078.SH 20250211 5.77 1.0536 1.8102 \n",
|
||||
"10 002366.SZ 20250212 5.10 3.8029 4.1742 \n",
|
||||
"48 002124.SZ 20250212 2.80 1.8388 1.9195 \n",
|
||||
"57 000504.SZ 20250212 9.32 0.9666 1.5370 \n",
|
||||
"63 603007.SH 20250212 10.03 2.0477 2.7581 \n",
|
||||
"91 300201.SZ 20250212 5.33 2.3317 3.1604 \n",
|
||||
"... ... ... ... ... ... \n",
|
||||
"5327 688309.SH 20250211 13.80 0.5594 1.0928 \n",
|
||||
"5328 002800.SZ 20250211 10.57 2.0449 3.9025 \n",
|
||||
"5342 300368.SZ 20250211 4.50 1.5755 2.2505 \n",
|
||||
"5375 600515.SH 20250211 3.64 0.4111 0.6804 \n",
|
||||
"5383 002197.SZ 20250211 4.42 4.0058 4.6595 \n",
|
||||
"5303 002316.SZ 20250212 3.52 3.1023 3.3580 \n",
|
||||
"5335 600568.SH 20250212 1.30 0.3996 0.6514 \n",
|
||||
"5364 002168.SZ 20250212 2.48 0.8869 1.0824 \n",
|
||||
"5367 300600.SZ 20250212 7.19 0.7517 1.4024 \n",
|
||||
"5369 000972.SZ 20250212 3.38 4.6979 7.2993 \n",
|
||||
"\n",
|
||||
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
|
||||
"2 1.38 NaN NaN 15.2661 3.4220 4.2041 0.0000 \n",
|
||||
"20 1.08 NaN NaN 20.6126 1.6250 1.6047 0.0000 \n",
|
||||
"50 1.08 NaN NaN 3.4116 3.8093 3.5391 0.0000 \n",
|
||||
"62 1.01 NaN NaN 1.5246 0.2944 0.3546 0.0000 \n",
|
||||
"65 0.97 NaN NaN 2.1866 1.2329 1.2311 0.5373 \n",
|
||||
"... ... ... ... ... ... ... ... \n",
|
||||
"5327 0.73 60.8452 186.0174 1.5353 6.7361 13.4432 NaN \n",
|
||||
"5328 0.72 NaN NaN 3.0468 1.6938 1.3629 0.0000 \n",
|
||||
"5342 0.99 NaN NaN 7.1301 6.7544 11.8519 0.0000 \n",
|
||||
"5375 0.91 43.6494 110.6536 1.7765 6.1506 7.8214 0.0000 \n",
|
||||
"5383 1.41 NaN NaN 1.1195 2.0851 2.5837 0.0000 \n",
|
||||
" volume_ratio pe pe_ttm pb ps ps_ttm dv_ratio \\\n",
|
||||
"10 0.92 52.0324 56.8856 2.2889 14.2486 11.9214 0.0000 \n",
|
||||
"48 0.97 NaN 260.7218 1.7484 0.6080 0.6154 0.0000 \n",
|
||||
"57 0.83 NaN NaN 12.3702 22.4855 24.7156 0.0000 \n",
|
||||
"63 0.86 NaN NaN 24.6750 55.2244 76.4853 0.0000 \n",
|
||||
"91 0.75 26.1255 26.1088 4.2311 3.9774 4.2028 0.6431 \n",
|
||||
"... ... ... ... ... ... ... ... \n",
|
||||
"5303 0.95 NaN NaN 19.4146 2.2930 2.3153 0.0000 \n",
|
||||
"5335 0.76 NaN NaN 1.1378 4.0571 4.0379 0.0000 \n",
|
||||
"5364 0.88 1024.9794 NaN NaN 7.6515 7.4299 0.0000 \n",
|
||||
"5367 1.18 NaN NaN 2.2914 10.7845 8.9952 0.0000 \n",
|
||||
"5369 0.77 24.0853 120.2360 16.2931 4.5277 4.9137 0.0000 \n",
|
||||
"\n",
|
||||
" dv_ttm total_share float_share free_share total_mv \\\n",
|
||||
"2 NaN 5.049367e+04 50493.6660 38088.2934 1.858167e+05 \n",
|
||||
"20 NaN 9.362911e+04 86984.9676 64375.7658 2.322002e+05 \n",
|
||||
"50 NaN 3.593444e+04 35934.4440 22555.6496 1.286453e+05 \n",
|
||||
"62 NaN 9.264768e+05 919834.5068 321453.1001 1.843689e+06 \n",
|
||||
"65 0.5373 6.625729e+04 66257.2861 38563.8247 3.823045e+05 \n",
|
||||
"... ... ... ... ... ... \n",
|
||||
"5327 NaN 8.001073e+03 8001.0733 4095.6641 1.104148e+05 \n",
|
||||
"5328 NaN 1.522531e+04 14165.4100 7422.5200 1.609315e+05 \n",
|
||||
"5342 NaN 5.289435e+04 52894.3475 37030.2475 2.380246e+05 \n",
|
||||
"5375 NaN 1.142531e+06 917601.2508 554411.0843 4.158813e+06 \n",
|
||||
"5383 NaN 6.143629e+04 53400.0687 45908.5733 2.715484e+05 \n",
|
||||
" dv_ttm total_share float_share free_share total_mv \\\n",
|
||||
"10 NaN 208093.7640 125646.4390 114472.2056 1.061278e+06 \n",
|
||||
"48 NaN 222193.3832 197428.3498 189130.4452 6.221415e+05 \n",
|
||||
"57 NaN 33002.3098 31066.8701 19536.7046 3.075815e+05 \n",
|
||||
"63 NaN 87689.6101 49983.0778 37108.5778 8.795268e+05 \n",
|
||||
"91 0.6431 100904.3607 100450.7422 74110.3317 5.378202e+05 \n",
|
||||
"... ... ... ... ... ... \n",
|
||||
"5303 NaN 39312.0000 31500.7500 29101.6694 1.383782e+05 \n",
|
||||
"5335 NaN 199286.9681 166906.7279 102374.4773 2.590731e+05 \n",
|
||||
"5364 NaN 78416.3368 78416.3368 64258.0991 1.944725e+05 \n",
|
||||
"5367 NaN 29423.4480 24616.3436 13195.4382 2.115546e+05 \n",
|
||||
"5369 NaN 77128.3579 77128.3579 49641.0760 2.606938e+05 \n",
|
||||
"\n",
|
||||
" circ_mv is_st \n",
|
||||
"2 1.858167e+05 True \n",
|
||||
"20 2.157227e+05 True \n",
|
||||
"50 1.286453e+05 True \n",
|
||||
"62 1.830471e+06 True \n",
|
||||
"65 3.823045e+05 True \n",
|
||||
"... ... ... \n",
|
||||
"5327 1.104148e+05 True \n",
|
||||
"5328 1.497284e+05 True \n",
|
||||
"5342 2.380246e+05 True \n",
|
||||
"5375 3.340069e+06 True \n",
|
||||
"5383 2.360283e+05 True \n",
|
||||
" circ_mv is_st \n",
|
||||
"10 640796.8389 True \n",
|
||||
"48 552799.3794 True \n",
|
||||
"57 289543.2293 True \n",
|
||||
"63 501330.2703 True \n",
|
||||
"91 535402.4559 True \n",
|
||||
"... ... ... \n",
|
||||
"5303 110882.6400 True \n",
|
||||
"5335 216978.7463 True \n",
|
||||
"5364 194472.5153 True \n",
|
||||
"5367 176991.5105 True \n",
|
||||
"5369 260693.8497 True \n",
|
||||
"\n",
|
||||
"[318 rows x 19 columns]\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 37
|
||||
"source": [
|
||||
"print(all_daily_data_df[all_daily_data_df['is_st']])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"id": "692b58674b7462c9",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:53:33.693894Z",
|
||||
"start_time": "2025-02-11T15:53:33.609884Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"# 将数据保存为 HDF5 文件(table 格式)\n",
|
||||
"all_daily_data_df.to_hdf(h5_filename, key='daily_basic', mode='a', format='table', append=True, data_columns=True)\n",
|
||||
"\n",
|
||||
"print(\"所有每日基础数据获取并保存完毕!\")\n"
|
||||
],
|
||||
"id": "692b58674b7462c9",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
@@ -362,29 +358,30 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 36
|
||||
"source": [
|
||||
"# 将数据保存为 HDF5 文件(table 格式)\n",
|
||||
"all_daily_data_df.to_hdf(h5_filename, key='daily_basic', mode='a', format='table', append=True, data_columns=True)\n",
|
||||
"\n",
|
||||
"print(\"所有每日基础数据获取并保存完毕!\")\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"id": "d7a773fc20293477",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:54:27.868021Z",
|
||||
"start_time": "2025-02-11T15:54:18.853803Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"with pd.HDFStore(h5_filename, mode='r') as store:\n",
|
||||
" df = store[key][['ts_code', 'trade_date', 'is_st']]\n",
|
||||
" print(df.info())"
|
||||
],
|
||||
"id": "d7a773fc20293477",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"<class 'pandas.core.frame.DataFrame'>\n",
|
||||
"Index: 8300879 entries, 0 to 5384\n",
|
||||
"Index: 8297355 entries, 0 to 5384\n",
|
||||
"Data columns (total 3 columns):\n",
|
||||
" # Column Dtype \n",
|
||||
"--- ------ ----- \n",
|
||||
@@ -392,12 +389,16 @@
|
||||
" 1 trade_date object\n",
|
||||
" 2 is_st bool \n",
|
||||
"dtypes: bool(1), object(2)\n",
|
||||
"memory usage: 197.9+ MB\n",
|
||||
"memory usage: 197.8+ MB\n",
|
||||
"None\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 39
|
||||
"source": [
|
||||
"with pd.HDFStore(h5_filename, mode='r') as store:\n",
|
||||
" df = store[key][['ts_code', 'trade_date', 'is_st']]\n",
|
||||
" print(df.info())"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,7 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "b94bb1f2-5332-485e-ae1b-eea01f938106",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
@@ -9,43 +10,24 @@
|
||||
"start_time": "2025-02-11T15:21:54.050569Z"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import tushare as ts\n",
|
||||
"\n",
|
||||
"ts.set_token('3a0741c702ee7e5e5f2bf1f0846bafaafe4e320833240b2a7e4a685f')\n",
|
||||
"pro = ts.pro_api()"
|
||||
],
|
||||
"outputs": [],
|
||||
"execution_count": 1
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "742c29d453b9bb38",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:22:32.726905Z",
|
||||
"start_time": "2025-02-11T15:22:25.018135Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"import pandas as pd\n",
|
||||
"import time\n",
|
||||
"\n",
|
||||
"h5_filename = '../../../data/money_flow.h5'\n",
|
||||
"key = '/money_flow'\n",
|
||||
"max_date = None\n",
|
||||
"with pd.HDFStore(h5_filename, mode='r') as store:\n",
|
||||
" df = store[key][['ts_code', 'trade_date']]\n",
|
||||
" print(df.info())\n",
|
||||
" max_date = df['trade_date'].max()\n",
|
||||
"\n",
|
||||
"print(max_date)\n",
|
||||
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20250220')\n",
|
||||
"trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n",
|
||||
"trade_dates = trade_cal[trade_cal['cal_date'] > max_date]['cal_date'].tolist()\n",
|
||||
"start_date = min(trade_dates)\n",
|
||||
"print(f'start_date: {start_date}')"
|
||||
],
|
||||
"id": "742c29d453b9bb38",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
@@ -66,18 +48,52 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 6
|
||||
"source": [
|
||||
"import pandas as pd\n",
|
||||
"import time\n",
|
||||
"\n",
|
||||
"h5_filename = '../../../data/money_flow.h5'\n",
|
||||
"key = '/money_flow'\n",
|
||||
"max_date = None\n",
|
||||
"with pd.HDFStore(h5_filename, mode='r') as store:\n",
|
||||
" df = store[key][['ts_code', 'trade_date']]\n",
|
||||
" print(df.info())\n",
|
||||
" max_date = df['trade_date'].max()\n",
|
||||
"\n",
|
||||
"print(max_date)\n",
|
||||
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20250220')\n",
|
||||
"trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n",
|
||||
"trade_dates = trade_cal[trade_cal['cal_date'] > max_date]['cal_date'].tolist()\n",
|
||||
"start_date = min(trade_dates)\n",
|
||||
"print(f'start_date: {start_date}')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "679ce40e-8d62-4887-970c-e1d8cbdeee6b",
|
||||
"metadata": {
|
||||
"scrolled": true,
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:22:14.513527Z",
|
||||
"start_time": "2025-02-11T15:22:12.973331Z"
|
||||
}
|
||||
},
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"任务 20250220 完成\n",
|
||||
"任务 20250219 完成\n",
|
||||
"任务 20250217 完成\n",
|
||||
"任务 20250218 完成\n",
|
||||
"任务 20250213 完成\n",
|
||||
"任务 20250214 完成\n",
|
||||
"任务 20250212 完成\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"from concurrent.futures import ThreadPoolExecutor, as_completed\n",
|
||||
"\n",
|
||||
@@ -107,40 +123,26 @@
|
||||
" except Exception as e:\n",
|
||||
" print(f\"获取 {trade_date} 数据时出错: {e}\")\n",
|
||||
"\n"
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"任务 20250219 完成\n",
|
||||
"任务 20250220 完成\n",
|
||||
"任务 20250218 完成\n",
|
||||
"任务 20250217 完成\n",
|
||||
"任务 20250214 完成\n",
|
||||
"任务 20250213 完成\n",
|
||||
"任务 20250212 完成\n",
|
||||
"任务 20250211 完成\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 3
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "9af80516849d4e80",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:22:16.656650Z",
|
||||
"start_time": "2025-02-11T15:22:16.639271Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": "all_daily_data_df = pd.concat(all_daily_data, ignore_index=True)\n",
|
||||
"id": "9af80516849d4e80",
|
||||
"outputs": [],
|
||||
"execution_count": 4
|
||||
"source": [
|
||||
"all_daily_data_df = pd.concat(all_daily_data, ignore_index=True)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "a2b05187-437f-4053-bc43-bd80d4cf8b0e",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
@@ -148,15 +150,6 @@
|
||||
"start_time": "2025-02-11T15:22:19.145561Z"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"\n",
|
||||
"# 将所有数据合并为一个 DataFrame\n",
|
||||
"\n",
|
||||
"# 将数据保存为 HDF5 文件(table 格式)\n",
|
||||
"all_daily_data_df.to_hdf(h5_filename, key='money_flow', mode='a', format='table', append=True, data_columns=True)\n",
|
||||
"\n",
|
||||
"print(\"所有每日基础数据获取并保存完毕!\")"
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
@@ -166,7 +159,15 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 5
|
||||
"source": [
|
||||
"\n",
|
||||
"# 将所有数据合并为一个 DataFrame\n",
|
||||
"\n",
|
||||
"# 将数据保存为 HDF5 文件(table 格式)\n",
|
||||
"all_daily_data_df.to_hdf(h5_filename, key='money_flow', mode='a', format='table', append=True, data_columns=True)\n",
|
||||
"\n",
|
||||
"print(\"所有每日基础数据获取并保存完毕!\")"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "500802dc-7a20-48b7-a470-a4bae3ec534b",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
@@ -9,17 +10,17 @@
|
||||
"start_time": "2025-02-11T15:18:36.020822Z"
|
||||
}
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import tushare as ts\n",
|
||||
"\n",
|
||||
"ts.set_token('3a0741c702ee7e5e5f2bf1f0846bafaafe4e320833240b2a7e4a685f')\n",
|
||||
"pro = ts.pro_api()"
|
||||
],
|
||||
"outputs": [],
|
||||
"execution_count": 1
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "5a84bc9da6d54868",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
@@ -27,26 +28,6 @@
|
||||
"start_time": "2025-02-11T15:20:00.110127Z"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"import pandas as pd\n",
|
||||
"import time\n",
|
||||
"\n",
|
||||
"h5_filename = '../../../data/stk_limit.h5'\n",
|
||||
"key = '/stk_limit'\n",
|
||||
"max_date = None\n",
|
||||
"with pd.HDFStore(h5_filename, mode='r') as store:\n",
|
||||
" df = store[key][['ts_code', 'trade_date']]\n",
|
||||
" print(df.sort_values(by='trade_date', ascending=True).tail())\n",
|
||||
" print(df.info())\n",
|
||||
" max_date = df['trade_date'].max()\n",
|
||||
"\n",
|
||||
"print(max_date)\n",
|
||||
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20250220')\n",
|
||||
"trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n",
|
||||
"trade_dates = trade_cal[trade_cal['cal_date'] > max_date]['cal_date'].tolist()\n",
|
||||
"start_date = min(trade_dates)\n",
|
||||
"print(start_date)"
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
@@ -73,18 +54,53 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 5
|
||||
"source": [
|
||||
"import pandas as pd\n",
|
||||
"import time\n",
|
||||
"\n",
|
||||
"h5_filename = '../../../data/stk_limit.h5'\n",
|
||||
"key = '/stk_limit'\n",
|
||||
"max_date = None\n",
|
||||
"with pd.HDFStore(h5_filename, mode='r') as store:\n",
|
||||
" df = store[key][['ts_code', 'trade_date']]\n",
|
||||
" print(df.sort_values(by='trade_date', ascending=True).tail())\n",
|
||||
" print(df.info())\n",
|
||||
" max_date = df['trade_date'].max()\n",
|
||||
"\n",
|
||||
"print(max_date)\n",
|
||||
"trade_cal = pro.trade_cal(exchange='', start_date='20170101', end_date='20250220')\n",
|
||||
"trade_cal = trade_cal[trade_cal['is_open'] == 1] # 只保留交易日\n",
|
||||
"trade_dates = trade_cal[trade_cal['cal_date'] > max_date]['cal_date'].tolist()\n",
|
||||
"start_date = min(trade_dates)\n",
|
||||
"print(start_date)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "bb3191de-27a2-4c89-a3b5-32a0d7b9496f",
|
||||
"metadata": {
|
||||
"scrolled": true,
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:21:27.831699Z",
|
||||
"start_time": "2025-02-11T15:21:26.665039Z"
|
||||
}
|
||||
},
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"任务 20250219 完成\n",
|
||||
"任务 20250220 完成\n",
|
||||
"任务 20250217 完成\n",
|
||||
"任务 20250218 完成\n",
|
||||
"任务 20250214 完成\n",
|
||||
"任务 20250213 完成\n",
|
||||
"任务 20250212 完成\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"from concurrent.futures import ThreadPoolExecutor, as_completed\n",
|
||||
"\n",
|
||||
@@ -115,64 +131,62 @@
|
||||
" except Exception as e:\n",
|
||||
" print(f\"获取 {trade_date} 数据时出错: {e}\")\n",
|
||||
"\n"
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"任务 20250220 完成\n",
|
||||
"任务 20250219 完成\n",
|
||||
"任务 20250217 完成\n",
|
||||
"任务 20250218 完成\n",
|
||||
"任务 20250214 完成\n",
|
||||
"任务 20250213 完成\n",
|
||||
"任务 20250212 完成\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 10
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "96a81aa5890ea3c3",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
"end_time": "2025-02-11T15:21:29.294283Z",
|
||||
"start_time": "2025-02-11T15:21:29.247112Z"
|
||||
}
|
||||
},
|
||||
"cell_type": "code",
|
||||
"source": [
|
||||
"print(all_daily_data)\n",
|
||||
"# 将所有数据合并为一个 DataFrame\n",
|
||||
"all_daily_data_df = pd.concat(all_daily_data, ignore_index=True)"
|
||||
],
|
||||
"id": "96a81aa5890ea3c3",
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"[]\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"ename": "ValueError",
|
||||
"evalue": "No objects to concatenate",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
|
||||
"\u001B[1;31mValueError\u001B[0m Traceback (most recent call last)",
|
||||
"Cell \u001B[1;32mIn[11], line 3\u001B[0m\n\u001B[0;32m 1\u001B[0m \u001B[38;5;28mprint\u001B[39m(all_daily_data)\n\u001B[0;32m 2\u001B[0m \u001B[38;5;66;03m# 将所有数据合并为一个 DataFrame\u001B[39;00m\n\u001B[1;32m----> 3\u001B[0m all_daily_data_df \u001B[38;5;241m=\u001B[39m \u001B[43mpd\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mconcat\u001B[49m\u001B[43m(\u001B[49m\u001B[43mall_daily_data\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mignore_index\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;28;43;01mTrue\u001B[39;49;00m\u001B[43m)\u001B[49m\n",
|
||||
"File \u001B[1;32mE:\\Python\\anaconda\\envs\\try_trader\\lib\\site-packages\\pandas\\core\\reshape\\concat.py:372\u001B[0m, in \u001B[0;36mconcat\u001B[1;34m(objs, axis, join, ignore_index, keys, levels, names, verify_integrity, sort, copy)\u001B[0m\n\u001B[0;32m 369\u001B[0m \u001B[38;5;28;01melif\u001B[39;00m copy \u001B[38;5;129;01mand\u001B[39;00m using_copy_on_write():\n\u001B[0;32m 370\u001B[0m copy \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mFalse\u001B[39;00m\n\u001B[1;32m--> 372\u001B[0m op \u001B[38;5;241m=\u001B[39m \u001B[43m_Concatenator\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m 373\u001B[0m \u001B[43m \u001B[49m\u001B[43mobjs\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 374\u001B[0m \u001B[43m \u001B[49m\u001B[43maxis\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43maxis\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 375\u001B[0m \u001B[43m \u001B[49m\u001B[43mignore_index\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mignore_index\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 376\u001B[0m \u001B[43m \u001B[49m\u001B[43mjoin\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mjoin\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 377\u001B[0m \u001B[43m \u001B[49m\u001B[43mkeys\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mkeys\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 378\u001B[0m \u001B[43m \u001B[49m\u001B[43mlevels\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mlevels\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 379\u001B[0m \u001B[43m \u001B[49m\u001B[43mnames\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mnames\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 380\u001B[0m \u001B[43m \u001B[49m\u001B[43mverify_integrity\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mverify_integrity\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 381\u001B[0m \u001B[43m \u001B[49m\u001B[43mcopy\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcopy\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 382\u001B[0m \u001B[43m \u001B[49m\u001B[43msort\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43msort\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 383\u001B[0m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 385\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m op\u001B[38;5;241m.\u001B[39mget_result()\n",
|
||||
"File \u001B[1;32mE:\\Python\\anaconda\\envs\\try_trader\\lib\\site-packages\\pandas\\core\\reshape\\concat.py:429\u001B[0m, in \u001B[0;36m_Concatenator.__init__\u001B[1;34m(self, objs, axis, join, keys, levels, names, ignore_index, verify_integrity, copy, sort)\u001B[0m\n\u001B[0;32m 426\u001B[0m objs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mlist\u001B[39m(objs)\n\u001B[0;32m 428\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mlen\u001B[39m(objs) \u001B[38;5;241m==\u001B[39m \u001B[38;5;241m0\u001B[39m:\n\u001B[1;32m--> 429\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mValueError\u001B[39;00m(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mNo objects to concatenate\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n\u001B[0;32m 431\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m keys \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[0;32m 432\u001B[0m objs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mlist\u001B[39m(com\u001B[38;5;241m.\u001B[39mnot_none(\u001B[38;5;241m*\u001B[39mobjs))\n",
|
||||
"\u001B[1;31mValueError\u001B[0m: No objects to concatenate"
|
||||
"[ trade_date ts_code up_limit down_limit\n",
|
||||
"0 20250213 000001.SZ 12.56 10.28\n",
|
||||
"1 20250213 000002.SZ 8.76 7.16\n",
|
||||
"2 20250213 000004.SZ 15.40 12.60\n",
|
||||
"3 20250213 000006.SZ 7.92 6.48\n",
|
||||
"4 20250213 000007.SZ 7.39 6.05\n",
|
||||
"... ... ... ... ...\n",
|
||||
"7014 20250213 920108.BJ 27.22 14.66\n",
|
||||
"7015 20250213 920111.BJ 35.98 19.38\n",
|
||||
"7016 20250213 920116.BJ 80.44 43.32\n",
|
||||
"7017 20250213 920118.BJ 34.46 18.56\n",
|
||||
"7018 20250213 920128.BJ 39.84 21.46\n",
|
||||
"\n",
|
||||
"[7019 rows x 4 columns], trade_date ts_code up_limit down_limit\n",
|
||||
"0 20250212 000001.SZ 12.56 10.28\n",
|
||||
"1 20250212 000002.SZ 7.96 6.52\n",
|
||||
"2 20250212 000004.SZ 15.07 12.33\n",
|
||||
"3 20250212 000006.SZ 7.74 6.34\n",
|
||||
"4 20250212 000007.SZ 7.40 6.06\n",
|
||||
"... ... ... ... ...\n",
|
||||
"7014 20250212 920108.BJ 27.41 14.77\n",
|
||||
"7015 20250212 920111.BJ 34.51 18.59\n",
|
||||
"7016 20250212 920116.BJ 79.66 42.90\n",
|
||||
"7017 20250212 920118.BJ 34.81 18.75\n",
|
||||
"7018 20250212 920128.BJ 38.98 21.00\n",
|
||||
"\n",
|
||||
"[7019 rows x 4 columns]]\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 11
|
||||
"source": [
|
||||
"print(all_daily_data)\n",
|
||||
"# 将所有数据合并为一个 DataFrame\n",
|
||||
"all_daily_data_df = pd.concat(all_daily_data, ignore_index=True)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "ad9733a1-2f42-43ee-a98c-0bf699304c21",
|
||||
"metadata": {
|
||||
"ExecuteTime": {
|
||||
@@ -180,6 +194,15 @@
|
||||
"start_time": "2025-02-11T15:20:37.375220Z"
|
||||
}
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"所有每日基础数据获取并保存完毕!\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"\n",
|
||||
"\n",
|
||||
@@ -187,23 +210,7 @@
|
||||
"all_daily_data_df.to_hdf(h5_filename, key='stk_limit', mode='a', format='table', append=True, data_columns=True)\n",
|
||||
"\n",
|
||||
"print(\"所有每日基础数据获取并保存完毕!\")"
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "ValueError",
|
||||
"evalue": "All objects passed were None",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
|
||||
"\u001B[1;31mValueError\u001B[0m Traceback (most recent call last)",
|
||||
"Cell \u001B[1;32mIn[7], line 2\u001B[0m\n\u001B[0;32m 1\u001B[0m \u001B[38;5;66;03m# 将所有数据合并为一个 DataFrame\u001B[39;00m\n\u001B[1;32m----> 2\u001B[0m all_daily_data_df \u001B[38;5;241m=\u001B[39m \u001B[43mpd\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mconcat\u001B[49m\u001B[43m(\u001B[49m\u001B[43mall_daily_data\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mignore_index\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;28;43;01mTrue\u001B[39;49;00m\u001B[43m)\u001B[49m\n\u001B[0;32m 4\u001B[0m \u001B[38;5;66;03m# 将数据保存为 HDF5 文件(table 格式)\u001B[39;00m\n\u001B[0;32m 5\u001B[0m all_daily_data_df\u001B[38;5;241m.\u001B[39mto_hdf(h5_filename, key\u001B[38;5;241m=\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mstk_limit\u001B[39m\u001B[38;5;124m'\u001B[39m, mode\u001B[38;5;241m=\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124ma\u001B[39m\u001B[38;5;124m'\u001B[39m, \u001B[38;5;28mformat\u001B[39m\u001B[38;5;241m=\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mtable\u001B[39m\u001B[38;5;124m'\u001B[39m, append\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mTrue\u001B[39;00m, data_columns\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mTrue\u001B[39;00m)\n",
|
||||
"File \u001B[1;32mE:\\Python\\anaconda\\envs\\try_trader\\lib\\site-packages\\pandas\\core\\reshape\\concat.py:372\u001B[0m, in \u001B[0;36mconcat\u001B[1;34m(objs, axis, join, ignore_index, keys, levels, names, verify_integrity, sort, copy)\u001B[0m\n\u001B[0;32m 369\u001B[0m \u001B[38;5;28;01melif\u001B[39;00m copy \u001B[38;5;129;01mand\u001B[39;00m using_copy_on_write():\n\u001B[0;32m 370\u001B[0m copy \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mFalse\u001B[39;00m\n\u001B[1;32m--> 372\u001B[0m op \u001B[38;5;241m=\u001B[39m \u001B[43m_Concatenator\u001B[49m\u001B[43m(\u001B[49m\n\u001B[0;32m 373\u001B[0m \u001B[43m \u001B[49m\u001B[43mobjs\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 374\u001B[0m \u001B[43m \u001B[49m\u001B[43maxis\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43maxis\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 375\u001B[0m \u001B[43m \u001B[49m\u001B[43mignore_index\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mignore_index\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 376\u001B[0m \u001B[43m \u001B[49m\u001B[43mjoin\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mjoin\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 377\u001B[0m \u001B[43m \u001B[49m\u001B[43mkeys\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mkeys\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 378\u001B[0m \u001B[43m \u001B[49m\u001B[43mlevels\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mlevels\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 379\u001B[0m \u001B[43m \u001B[49m\u001B[43mnames\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mnames\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 380\u001B[0m \u001B[43m \u001B[49m\u001B[43mverify_integrity\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mverify_integrity\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 381\u001B[0m \u001B[43m \u001B[49m\u001B[43mcopy\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43mcopy\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 382\u001B[0m \u001B[43m \u001B[49m\u001B[43msort\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[43msort\u001B[49m\u001B[43m,\u001B[49m\n\u001B[0;32m 383\u001B[0m \u001B[43m\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 385\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m op\u001B[38;5;241m.\u001B[39mget_result()\n",
|
||||
"File \u001B[1;32mE:\\Python\\anaconda\\envs\\try_trader\\lib\\site-packages\\pandas\\core\\reshape\\concat.py:452\u001B[0m, in \u001B[0;36m_Concatenator.__init__\u001B[1;34m(self, objs, axis, join, keys, levels, names, ignore_index, verify_integrity, copy, sort)\u001B[0m\n\u001B[0;32m 449\u001B[0m keys \u001B[38;5;241m=\u001B[39m Index(clean_keys, name\u001B[38;5;241m=\u001B[39mname, dtype\u001B[38;5;241m=\u001B[39m\u001B[38;5;28mgetattr\u001B[39m(keys, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mdtype\u001B[39m\u001B[38;5;124m\"\u001B[39m, \u001B[38;5;28;01mNone\u001B[39;00m))\n\u001B[0;32m 451\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mlen\u001B[39m(objs) \u001B[38;5;241m==\u001B[39m \u001B[38;5;241m0\u001B[39m:\n\u001B[1;32m--> 452\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mValueError\u001B[39;00m(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mAll objects passed were None\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n\u001B[0;32m 454\u001B[0m \u001B[38;5;66;03m# figure out what our result ndim is going to be\u001B[39;00m\n\u001B[0;32m 455\u001B[0m ndims \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mset\u001B[39m()\n",
|
||||
"\u001B[1;31mValueError\u001B[0m: All objects passed were None"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution_count": 7
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
|
||||
Reference in New Issue
Block a user