├── .gitignore
├── README.md
├── all
├── all_2022.csv
├── all_2022.txt
├── all_2023.csv
├── all_2023.txt
├── all_2024.csv
├── all_2024.txt
└── all_with_problem_2022.txt
├── analysis.ipynb
├── analysis_2024.ipynb
├── config.py
├── download.py
├── exception.txt
├── gitpush.bat
├── pdf2text.py
├── requirements.txt
├── txt_joint.py
└── 统计结果.png
/.gitignore:
--------------------------------------------------------------------------------
1 | paper/*.pdf
2 | paper_2022/*.pdf
3 | paper_2023/*.pdf
4 | .ipynb_checkpoints
5 | __pycache__
6 | gitpush.bat
7 | .idea
8 | tmp*.txt
9 | all/tmp*.txt
10 | /all/tmp*.txt
11 | your_university/*.txt
12 | /your_university/*.txt
13 | your_university
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # comap_crawler
2 |
3 | 2024更新:修改config.py中的23为24即可爬取2024美赛证书并进行分析
4 |
5 | 2023美赛爬虫,2024美赛获奖证书爬虫
6 |
7 | 美国大学生数学建模竞赛证书爬取及信息OCR识别分析
8 |
9 | ## 运行步骤
10 |
11 | 1. 安装tesseractOCR,参考版本:v5.0.1.20220118,其他版本不保证可用,
12 |
13 | v5.0.1.20220118下载地址
14 |
15 | https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.0.1.20220118.exe
16 |
17 | 其他版本下载:https://digi.bib.uni-mannheim.de/tesseract/
18 |
19 | 2. `pip install -r requirements.txt`
20 |
21 | 3. config.py中设置年份、进程数、你的学校、TesseractOCR安装路径等,进程数根据CPU和内存情况设置
22 |
23 | 4. download.py下载证书,由于有些证书只运行一次部分下载会失败,需要运行多次,确保全部下载
24 |
25 | 5. pdf2text.py识别学校、姓名、获奖等级、队伍ID等
26 |
27 | 6. txt_joint.py合并OCR识别的txt结果
28 |
29 | 7. analysis.ipynb分析数据
30 |
31 | ## 识别结果:
32 |
33 | 更多分析结果请自行下载代码,运行analysis.ipynb进行分析
34 |
35 | ### 2024美赛
36 |
37 | 2024美赛结果,证书数量28905张,最终识别28796条信息
38 | https://raw.githubusercontent.com/personqianduixue/comap_crawler_2023/master/all/all_2024.txt
39 |
40 | cdn加速镜像:https://fastly.jsdelivr.net/gh/personqianduixue/comap_crawler_2023@master/all/all_2024.txt
41 |
42 |
43 |
44 | ### 2023美赛
45 |
46 | 2023美赛结果,证书数量20858张,最终识别20818条信息
47 |
48 | https://raw.githubusercontent.com/personqianduixue/comap_crawler_2023/master/all/all_2023.txt
49 |
50 | cdn加速镜像:https://ghproxy.net/https://raw.githubusercontent.com/personqianduixue/comap_crawler_2023/master/all/all_2023.txt
51 |
52 |
53 |
54 | ### 2022美赛
55 |
56 | 2022美赛结果,证书数量27205张,最终识别27161条信息
57 |
58 | https://raw.githubusercontent.com/personqianduixue/comap_crawler_2023/master/all/all_2022.txt
59 |
60 | cdn加速镜像:https://ghproxy.net/https://raw.githubusercontent.com/personqianduixue/comap_crawler_2023/master/all/all_2022.txt
61 |
62 |
63 |
--------------------------------------------------------------------------------
/analysis.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import shutil\n",
10 | "import pandas as pd\n",
11 | "from config import *"
12 | ]
13 | },
14 | {
15 | "cell_type": "code",
16 | "execution_count": 2,
17 | "metadata": {},
18 | "outputs": [],
19 | "source": [
20 | "your_university='Huazhong University of Science and Technology'"
21 | ]
22 | },
23 | {
24 | "cell_type": "code",
25 | "execution_count": 3,
26 | "metadata": {},
27 | "outputs": [],
28 | "source": [
29 | "year=23"
30 | ]
31 | },
32 | {
33 | "cell_type": "code",
34 | "execution_count": 4,
35 | "metadata": {
36 | "scrolled": true
37 | },
38 | "outputs": [
39 | {
40 | "data": {
41 | "text/html": [
42 | "
\n",
43 | "\n",
56 | "
\n",
57 | " \n",
58 | " \n",
59 | " | \n",
60 | " control_number | \n",
61 | " student1 | \n",
62 | " student2 | \n",
63 | " student3 | \n",
64 | " advisor | \n",
65 | " university | \n",
66 | " prize | \n",
67 | "
\n",
68 | " \n",
69 | " \n",
70 | " \n",
71 | " 0 | \n",
72 | " 2300005 | \n",
73 | " Zheng Yaxin | \n",
74 | " Du Jingiu | \n",
75 | " Gao Qihang | \n",
76 | " UIC Math Modeling Team | \n",
77 | " BNU-HKBU United International College | \n",
78 | " Meritorious Winner | \n",
79 | "
\n",
80 | " \n",
81 | " 1 | \n",
82 | " 2300006 | \n",
83 | " Wu Peixin | \n",
84 | " Chen Ningyun | \n",
85 | " Wu You | \n",
86 | " UIC Math Modeling Team | \n",
87 | " BNU-HKBU United International College | \n",
88 | " Successful Participant | \n",
89 | "
\n",
90 | " \n",
91 | " 2 | \n",
92 | " 2300007 | \n",
93 | " Gou RuoXuan | \n",
94 | " Huang JianFei | \n",
95 | " Ye YuJun | \n",
96 | " UIC Math Modeling Team | \n",
97 | " BNU-HKBU United International College | \n",
98 | " Successful Participant | \n",
99 | "
\n",
100 | " \n",
101 | " 3 | \n",
102 | " 2300008 | \n",
103 | " Wan Yeqian | \n",
104 | " Gan Yining | \n",
105 | " Guo Wenhao | \n",
106 | " UIC Math Modeling Team | \n",
107 | " BNU-HKBU United International College | \n",
108 | " Successful Participant | \n",
109 | "
\n",
110 | " \n",
111 | " 4 | \n",
112 | " 2300009 | \n",
113 | " Lu Qianyu | \n",
114 | " Li Can | \n",
115 | " Zhao Xiaoxuan | \n",
116 | " UIC Math Modeling Team | \n",
117 | " BNU-HKBU United International College | \n",
118 | " Successful Participant | \n",
119 | "
\n",
120 | " \n",
121 | "
\n",
122 | "
"
123 | ],
124 | "text/plain": [
125 | " control_number student1 student2 student3 \\\n",
126 | "0 2300005 Zheng Yaxin Du Jingiu Gao Qihang \n",
127 | "1 2300006 Wu Peixin Chen Ningyun Wu You \n",
128 | "2 2300007 Gou RuoXuan Huang JianFei Ye YuJun \n",
129 | "3 2300008 Wan Yeqian Gan Yining Guo Wenhao \n",
130 | "4 2300009 Lu Qianyu Li Can Zhao Xiaoxuan \n",
131 | "\n",
132 | " advisor university \\\n",
133 | "0 UIC Math Modeling Team BNU-HKBU United International College \n",
134 | "1 UIC Math Modeling Team BNU-HKBU United International College \n",
135 | "2 UIC Math Modeling Team BNU-HKBU United International College \n",
136 | "3 UIC Math Modeling Team BNU-HKBU United International College \n",
137 | "4 UIC Math Modeling Team BNU-HKBU United International College \n",
138 | "\n",
139 | " prize \n",
140 | "0 Meritorious Winner \n",
141 | "1 Successful Participant \n",
142 | "2 Successful Participant \n",
143 | "3 Successful Participant \n",
144 | "4 Successful Participant "
145 | ]
146 | },
147 | "execution_count": 4,
148 | "metadata": {},
149 | "output_type": "execute_result"
150 | }
151 | ],
152 | "source": [
153 | "txtpath='./all/all_20'+str(year)+'.txt'\n",
154 | "csvpath='./all/all_20'+str(year)+'.csv'\n",
155 | "shutil.copyfile(txtpath, csvpath)\n",
156 | "data = pd.read_csv(csvpath)\n",
157 | "data=data.iloc[:,0:7]\n",
158 | "data.head()"
159 | ]
160 | },
161 | {
162 | "cell_type": "code",
163 | "execution_count": 5,
164 | "metadata": {
165 | "scrolled": true
166 | },
167 | "outputs": [
168 | {
169 | "data": {
170 | "text/plain": [
171 | "Harbin Engineering University 580\n",
172 | "XIDIAN UNIVERSITY 448\n",
173 | "Beihang University 407\n",
174 | "Jilin University 364\n",
175 | "Huazhong University of Science and Technology 338\n",
176 | "Northwestern Polytechnical University 323\n",
177 | "Nanjing University of Posts and Telecommunication 298\n",
178 | "Dalian University of Technology 293\n",
179 | "Shanghai Jiao Tong University 263\n",
180 | "South China University of Technology 228\n",
181 | "Hohai University 215\n",
182 | "National University of Defense Technology 207\n",
183 | "Northeastern University 206\n",
184 | "Harbin Institute of Technology 200\n",
185 | "Beijing Institute of Technology 197\n",
186 | "Southwest University 193\n",
187 | "Central University of Finance and Economics 192\n",
188 | "Renmin University of China 183\n",
189 | "Xi'an Jiaotong University 162\n",
190 | "Hangzhou Normal University 154\n",
191 | "Name: university, dtype: int64"
192 | ]
193 | },
194 | "execution_count": 5,
195 | "metadata": {},
196 | "output_type": "execute_result"
197 | }
198 | ],
199 | "source": [
200 | "univ_data=data['university'].value_counts().iloc[0:20]\n",
201 | "univ_data"
202 | ]
203 | },
204 | {
205 | "cell_type": "code",
206 | "execution_count": 6,
207 | "metadata": {
208 | "scrolled": true
209 | },
210 | "outputs": [
211 | {
212 | "data": {
213 | "image/png": "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\n",
214 | "text/plain": [
215 | ""
216 | ]
217 | },
218 | "metadata": {
219 | "needs_background": "light"
220 | },
221 | "output_type": "display_data"
222 | }
223 | ],
224 | "source": [
225 | "\n",
226 | "ax=univ_data.sort_values().plot.barh()\n",
227 | "fig=ax.get_figure()\n",
228 | "fig.savefig('统计结果.png',bbox_inches='tight')"
229 | ]
230 | },
231 | {
232 | "cell_type": "code",
233 | "execution_count": 7,
234 | "metadata": {},
235 | "outputs": [
236 | {
237 | "data": {
238 | "text/plain": [
239 | "Successful Participant 13180\n",
240 | "Honorable Mention 4531\n",
241 | "Meritorious Winner 1352\n",
242 | "Disqualified - P 990\n",
243 | "Finalist 545\n",
244 | "Unsuccessful - I 177\n",
245 | "Not Judged 24\n",
246 | "Outstanding Winner 14\n",
247 | "AMS Award 6\n",
248 | "INFORMS Award 5\n",
249 | "SIAM Award 5\n",
250 | "MAA Award 3\n",
251 | "COMAP Scholarship Award 2\n",
252 | "Leonhard Euler Award 1\n",
253 | "Ben Fusaro Award 1\n",
254 | "Vilfredo Pareto Award 1\n",
255 | "Rachel Carson Award 1\n",
256 | "Frank Giordano Award 1\n",
257 | "Unsuccessful - [ 1\n",
258 | "Name: prize, dtype: int64"
259 | ]
260 | },
261 | "execution_count": 7,
262 | "metadata": {},
263 | "output_type": "execute_result"
264 | }
265 | ],
266 | "source": [
267 | "data['prize'].value_counts()"
268 | ]
269 | },
270 | {
271 | "cell_type": "code",
272 | "execution_count": 8,
273 | "metadata": {},
274 | "outputs": [
275 | {
276 | "data": {
277 | "text/html": [
278 | "\n",
279 | "\n",
292 | "
\n",
293 | " \n",
294 | " \n",
295 | " | \n",
296 | " control_number | \n",
297 | " student1 | \n",
298 | " student2 | \n",
299 | " student3 | \n",
300 | " advisor | \n",
301 | " university | \n",
302 | " prize | \n",
303 | "
\n",
304 | " \n",
305 | " \n",
306 | " \n",
307 | " 96 | \n",
308 | " 2300136 | \n",
309 | " Hanzhang Zhou | \n",
310 | " Huangyii Zheng | \n",
311 | " Xiaoyang Cao | \n",
312 | " Heng Liang | \n",
313 | " Tsinghua University | \n",
314 | " INFORMS Award | \n",
315 | "
\n",
316 | " \n",
317 | " 169 | \n",
318 | " 2300229 | \n",
319 | " Cao Honglin | \n",
320 | " Zhou Zijian | \n",
321 | " Hu Yongqi | \n",
322 | " Li Mingqi | \n",
323 | " Jniversity of Electronic Science and Technolog... | \n",
324 | " Leonhard Euler Award | \n",
325 | "
\n",
326 | " \n",
327 | " 260 | \n",
328 | " 2300336 | \n",
329 | " Jiahao Luo | \n",
330 | " Tianyu Xiong | \n",
331 | " Yuting Zhang | \n",
332 | " Guoliang He | \n",
333 | " University of Electronic Science and Technolog... | \n",
334 | " AMS Award | \n",
335 | "
\n",
336 | " \n",
337 | " 1037 | \n",
338 | " 2309229 | \n",
339 | " Yuhao Sun | \n",
340 | " Ziruo Wang | \n",
341 | " Shuo Zhang | \n",
342 | " Hai Jin | \n",
343 | " Beijing Institute of Technology | \n",
344 | " Ben Fusaro Award | \n",
345 | "
\n",
346 | " \n",
347 | " 1532 | \n",
348 | " 2309766 | \n",
349 | " Carrie Cox | \n",
350 | " Jobi Lo | \n",
351 | " Elias Coppock | \n",
352 | " Wai Lau | \n",
353 | " Seattle Pacific University | \n",
354 | " MAA Award | \n",
355 | "
\n",
356 | " \n",
357 | " 2406 | \n",
358 | " 2310776 | \n",
359 | " Duffy Anderson | \n",
360 | " Matthew Helmer | \n",
361 | " Madeline Rue | \n",
362 | " Mei Zhu | \n",
363 | " Pacific Lutheran University | \n",
364 | " MAA Award | \n",
365 | "
\n",
366 | " \n",
367 | " 2832 | \n",
368 | " 2311258 | \n",
369 | " Haiyan Zhang | \n",
370 | " Tao Zhuang | \n",
371 | " Yunuo Lei | \n",
372 | " Qingsong Zou | \n",
373 | " XIDIAN UNIVERSITY | \n",
374 | " AMS Award | \n",
375 | "
\n",
376 | " \n",
377 | " 3077 | \n",
378 | " 2311517 | \n",
379 | " Taining Yan | \n",
380 | " Kaiqun Wu | \n",
381 | " Lijie Chen | \n",
382 | " Taining Yan | \n",
383 | " Renmin University of China | \n",
384 | " Vilfredo Pareto Award | \n",
385 | "
\n",
386 | " \n",
387 | " 3912 | \n",
388 | " 2312411 | \n",
389 | " Dingkai Wei | \n",
390 | " Yuecheng Wang | \n",
391 | " Weilong Zhu | \n",
392 | " Yuchao Li | \n",
393 | " Chang'an University | \n",
394 | " Rachel Carson Award | \n",
395 | "
\n",
396 | " \n",
397 | " 5561 | \n",
398 | " 2314151 | \n",
399 | " Jing Ren | \n",
400 | " Chenyue Xia | \n",
401 | " AnyYu Pan | \n",
402 | " Guibing Guo | \n",
403 | " Northeastern University of China | \n",
404 | " COMAP Scholarship Award | \n",
405 | "
\n",
406 | " \n",
407 | " 6398 | \n",
408 | " 2315018 | \n",
409 | " Hongyu Lang | \n",
410 | " Yutong Shao | \n",
411 | " Xiaqing Zhou | \n",
412 | " Jigao Yan | \n",
413 | " Soochow University | \n",
414 | " SIAM Award | \n",
415 | "
\n",
416 | " \n",
417 | " 6692 | \n",
418 | " 2315321 | \n",
419 | " Baoyang Zhang | \n",
420 | " Lei Tian | \n",
421 | " Zihan Wu | \n",
422 | " Jun Lu | \n",
423 | " National University of Defense Technology | \n",
424 | " SIAM Award | \n",
425 | "
\n",
426 | " \n",
427 | " 6749 | \n",
428 | " 2315379 | \n",
429 | " Zhu Xiangyu | \n",
430 | " Liang Katyin | \n",
431 | " Wei Xiaoqin | \n",
432 | " Wang Xiaoyin | \n",
433 | " Tiangong University | \n",
434 | " Frank Giordano Award | \n",
435 | "
\n",
436 | " \n",
437 | " 8305 | \n",
438 | " 2316994 | \n",
439 | " Zichen Cao | \n",
440 | " Yunyujie Du | \n",
441 | " Xinyi Jiang | \n",
442 | " Xiaofeng Gao | \n",
443 | " Shanghai Jiao Tong University | \n",
444 | " INFORMS Award | \n",
445 | "
\n",
446 | " \n",
447 | " 9488 | \n",
448 | " 2318300 | \n",
449 | " Enzo Moraes Mescall | \n",
450 | " Nicolas Salazar | \n",
451 | " Erik Mendes Novak | \n",
452 | " Maria-Veronica Ciocanel | \n",
453 | " Duke University | \n",
454 | " COMAP Scholarship Award | \n",
455 | "
\n",
456 | " \n",
457 | " 10156 | \n",
458 | " 2318982 | \n",
459 | " Kehan Tong | \n",
460 | " Yuqi Yang | \n",
461 | " Yan Du | \n",
462 | " Qiang Yao | \n",
463 | " East China Normal University | \n",
464 | " SIAM Award | \n",
465 | "
\n",
466 | " \n",
467 | " 10351 | \n",
468 | " 2301192 | \n",
469 | " Jianjie Zheng | \n",
470 | " Weikang Li | \n",
471 | " Yao Hou | \n",
472 | " Lei Liu | \n",
473 | " Zhejiang University of Finance and Economics | \n",
474 | " AMS Award | \n",
475 | "
\n",
476 | " \n",
477 | " 12128 | \n",
478 | " 2320131 | \n",
479 | " Song Yushuai | \n",
480 | " Zhao Chenxia | \n",
481 | " Hu Yunbo | \n",
482 | " Song Yushuai | \n",
483 | " Tianjin University | \n",
484 | " SIAM Award | \n",
485 | "
\n",
486 | " \n",
487 | " 14508 | \n",
488 | " 2322645 | \n",
489 | " Steven Sofos DiSilvio | \n",
490 | " Anthony Ozerov | \n",
491 | " Leon Zhou | \n",
492 | " George Dragomir | \n",
493 | " Columbia University | \n",
494 | " INFORMS Award | \n",
495 | "
\n",
496 | " \n",
497 | " 14546 | \n",
498 | " 2322687 | \n",
499 | " Caden Lin | \n",
500 | " Maksym Bondarenko | \n",
501 | " Phillip M Yan | \n",
502 | " George Dragomir | \n",
503 | " Columbia University | \n",
504 | " MAA Award | \n",
505 | "
\n",
506 | " \n",
507 | " 16300 | \n",
508 | " 2303950 | \n",
509 | " Yuewen Yang | \n",
510 | " Yifan Qi | \n",
511 | " Yuechuan Ma | \n",
512 | " Bo Wang | \n",
513 | " Beiing Institute of Technology | \n",
514 | " SIAM Award | \n",
515 | "
\n",
516 | " \n",
517 | " 16313 | \n",
518 | " 2303967 | \n",
519 | " Jingjia Peng | \n",
520 | " Xinyi Huang | \n",
521 | " Xuejun Zhang | \n",
522 | " Xiaofeng Gao | \n",
523 | " Shanghai Jiao Tong University | \n",
524 | " AMS Award | \n",
525 | "
\n",
526 | " \n",
527 | " 17181 | \n",
528 | " 2304962 | \n",
529 | " Zhu Xiaotian | \n",
530 | " Liu Jingwen | \n",
531 | " Liu Xinjie | \n",
532 | " Chen Hua | \n",
533 | " China University of Petroleum | \n",
534 | " INFORMS Award | \n",
535 | "
\n",
536 | " \n",
537 | " 17912 | \n",
538 | " 2305794 | \n",
539 | " Zhang Chuxiao | \n",
540 | " Wang Chenghan | \n",
541 | " Zhang Ying | \n",
542 | " Yuli ZHANG | \n",
543 | " Beijing Institute of Technology | \n",
544 | " INFORMS Award | \n",
545 | "
\n",
546 | " \n",
547 | " 19308 | \n",
548 | " 2307336 | \n",
549 | " Zhaohong Liao | \n",
550 | " Enyang Li | \n",
551 | " Yingyi Liu | \n",
552 | " Zhi Gao | \n",
553 | " Wuhan University | \n",
554 | " AMS Award | \n",
555 | "
\n",
556 | " \n",
557 | " 20749 | \n",
558 | " 2308899 | \n",
559 | " Ruomu Li | \n",
560 | " Chenyu Ma | \n",
561 | " Mengyuan Dai | \n",
562 | " Dongxue Yan | \n",
563 | " Nanjing University of Posts and Telecommunication | \n",
564 | " AMS Award | \n",
565 | "
\n",
566 | " \n",
567 | "
\n",
568 | "
"
569 | ],
570 | "text/plain": [
571 | " control_number student1 student2 \\\n",
572 | "96 2300136 Hanzhang Zhou Huangyii Zheng \n",
573 | "169 2300229 Cao Honglin Zhou Zijian \n",
574 | "260 2300336 Jiahao Luo Tianyu Xiong \n",
575 | "1037 2309229 Yuhao Sun Ziruo Wang \n",
576 | "1532 2309766 Carrie Cox Jobi Lo \n",
577 | "2406 2310776 Duffy Anderson Matthew Helmer \n",
578 | "2832 2311258 Haiyan Zhang Tao Zhuang \n",
579 | "3077 2311517 Taining Yan Kaiqun Wu \n",
580 | "3912 2312411 Dingkai Wei Yuecheng Wang \n",
581 | "5561 2314151 Jing Ren Chenyue Xia \n",
582 | "6398 2315018 Hongyu Lang Yutong Shao \n",
583 | "6692 2315321 Baoyang Zhang Lei Tian \n",
584 | "6749 2315379 Zhu Xiangyu Liang Katyin \n",
585 | "8305 2316994 Zichen Cao Yunyujie Du \n",
586 | "9488 2318300 Enzo Moraes Mescall Nicolas Salazar \n",
587 | "10156 2318982 Kehan Tong Yuqi Yang \n",
588 | "10351 2301192 Jianjie Zheng Weikang Li \n",
589 | "12128 2320131 Song Yushuai Zhao Chenxia \n",
590 | "14508 2322645 Steven Sofos DiSilvio Anthony Ozerov \n",
591 | "14546 2322687 Caden Lin Maksym Bondarenko \n",
592 | "16300 2303950 Yuewen Yang Yifan Qi \n",
593 | "16313 2303967 Jingjia Peng Xinyi Huang \n",
594 | "17181 2304962 Zhu Xiaotian Liu Jingwen \n",
595 | "17912 2305794 Zhang Chuxiao Wang Chenghan \n",
596 | "19308 2307336 Zhaohong Liao Enyang Li \n",
597 | "20749 2308899 Ruomu Li Chenyu Ma \n",
598 | "\n",
599 | " student3 advisor \\\n",
600 | "96 Xiaoyang Cao Heng Liang \n",
601 | "169 Hu Yongqi Li Mingqi \n",
602 | "260 Yuting Zhang Guoliang He \n",
603 | "1037 Shuo Zhang Hai Jin \n",
604 | "1532 Elias Coppock Wai Lau \n",
605 | "2406 Madeline Rue Mei Zhu \n",
606 | "2832 Yunuo Lei Qingsong Zou \n",
607 | "3077 Lijie Chen Taining Yan \n",
608 | "3912 Weilong Zhu Yuchao Li \n",
609 | "5561 AnyYu Pan Guibing Guo \n",
610 | "6398 Xiaqing Zhou Jigao Yan \n",
611 | "6692 Zihan Wu Jun Lu \n",
612 | "6749 Wei Xiaoqin Wang Xiaoyin \n",
613 | "8305 Xinyi Jiang Xiaofeng Gao \n",
614 | "9488 Erik Mendes Novak Maria-Veronica Ciocanel \n",
615 | "10156 Yan Du Qiang Yao \n",
616 | "10351 Yao Hou Lei Liu \n",
617 | "12128 Hu Yunbo Song Yushuai \n",
618 | "14508 Leon Zhou George Dragomir \n",
619 | "14546 Phillip M Yan George Dragomir \n",
620 | "16300 Yuechuan Ma Bo Wang \n",
621 | "16313 Xuejun Zhang Xiaofeng Gao \n",
622 | "17181 Liu Xinjie Chen Hua \n",
623 | "17912 Zhang Ying Yuli ZHANG \n",
624 | "19308 Yingyi Liu Zhi Gao \n",
625 | "20749 Mengyuan Dai Dongxue Yan \n",
626 | "\n",
627 | " university \\\n",
628 | "96 Tsinghua University \n",
629 | "169 Jniversity of Electronic Science and Technolog... \n",
630 | "260 University of Electronic Science and Technolog... \n",
631 | "1037 Beijing Institute of Technology \n",
632 | "1532 Seattle Pacific University \n",
633 | "2406 Pacific Lutheran University \n",
634 | "2832 XIDIAN UNIVERSITY \n",
635 | "3077 Renmin University of China \n",
636 | "3912 Chang'an University \n",
637 | "5561 Northeastern University of China \n",
638 | "6398 Soochow University \n",
639 | "6692 National University of Defense Technology \n",
640 | "6749 Tiangong University \n",
641 | "8305 Shanghai Jiao Tong University \n",
642 | "9488 Duke University \n",
643 | "10156 East China Normal University \n",
644 | "10351 Zhejiang University of Finance and Economics \n",
645 | "12128 Tianjin University \n",
646 | "14508 Columbia University \n",
647 | "14546 Columbia University \n",
648 | "16300 Beiing Institute of Technology \n",
649 | "16313 Shanghai Jiao Tong University \n",
650 | "17181 China University of Petroleum \n",
651 | "17912 Beijing Institute of Technology \n",
652 | "19308 Wuhan University \n",
653 | "20749 Nanjing University of Posts and Telecommunication \n",
654 | "\n",
655 | " prize \n",
656 | "96 INFORMS Award \n",
657 | "169 Leonhard Euler Award \n",
658 | "260 AMS Award \n",
659 | "1037 Ben Fusaro Award \n",
660 | "1532 MAA Award \n",
661 | "2406 MAA Award \n",
662 | "2832 AMS Award \n",
663 | "3077 Vilfredo Pareto Award \n",
664 | "3912 Rachel Carson Award \n",
665 | "5561 COMAP Scholarship Award \n",
666 | "6398 SIAM Award \n",
667 | "6692 SIAM Award \n",
668 | "6749 Frank Giordano Award \n",
669 | "8305 INFORMS Award \n",
670 | "9488 COMAP Scholarship Award \n",
671 | "10156 SIAM Award \n",
672 | "10351 AMS Award \n",
673 | "12128 SIAM Award \n",
674 | "14508 INFORMS Award \n",
675 | "14546 MAA Award \n",
676 | "16300 SIAM Award \n",
677 | "16313 AMS Award \n",
678 | "17181 INFORMS Award \n",
679 | "17912 INFORMS Award \n",
680 | "19308 AMS Award \n",
681 | "20749 AMS Award "
682 | ]
683 | },
684 | "execution_count": 8,
685 | "metadata": {},
686 | "output_type": "execute_result"
687 | }
688 | ],
689 | "source": [
690 | "avard_result=data.loc[(data['prize'].str.contains('Award'))]\n",
691 | "avard_result"
692 | ]
693 | },
694 | {
695 | "cell_type": "code",
696 | "execution_count": 9,
697 | "metadata": {
698 | "scrolled": false
699 | },
700 | "outputs": [
701 | {
702 | "data": {
703 | "text/html": [
704 | "\n",
705 | "\n",
718 | "
\n",
719 | " \n",
720 | " \n",
721 | " | \n",
722 | " control_number | \n",
723 | " student1 | \n",
724 | " student2 | \n",
725 | " student3 | \n",
726 | " advisor | \n",
727 | " university | \n",
728 | " prize | \n",
729 | "
\n",
730 | " \n",
731 | " \n",
732 | " \n",
733 | " 157 | \n",
734 | " 2300214 | \n",
735 | " Hao Yang | \n",
736 | " Yuxin Hu | \n",
737 | " Di Liu | \n",
738 | " ZhiHong Yang | \n",
739 | " Huazhong University of Science and Technology | \n",
740 | " Disqualified - P | \n",
741 | "
\n",
742 | " \n",
743 | " 165 | \n",
744 | " 2300223 | \n",
745 | " Yingzhong Hua | \n",
746 | " Yanwei Tan | \n",
747 | " Jichen Bian | \n",
748 | " Yingzhong Hua | \n",
749 | " Huazhong University of Science and Technology | \n",
750 | " Successful Participant | \n",
751 | "
\n",
752 | " \n",
753 | " 588 | \n",
754 | " 2300708 | \n",
755 | " Xiang Li | \n",
756 | " Yu Hu | \n",
757 | " JunHang Ma | \n",
758 | " Xiang Li | \n",
759 | " Huazhong University of Science and Technology | \n",
760 | " Successful Participant | \n",
761 | "
\n",
762 | " \n",
763 | " 637 | \n",
764 | " 2300772 | \n",
765 | " Yitian Han | \n",
766 | " Anyang Li | \n",
767 | " Ruoxin Wu | \n",
768 | " Gang Xu | \n",
769 | " Huazhong University of Science and Technology | \n",
770 | " Successful Participant | \n",
771 | "
\n",
772 | " \n",
773 | " 722 | \n",
774 | " 2300883 | \n",
775 | " Lesi Hu | \n",
776 | " Hannan Chen | \n",
777 | " Yulang Hong | \n",
778 | " Suyang Ma | \n",
779 | " Huazhong University of Science and Technology | \n",
780 | " Successful Participant | \n",
781 | "
\n",
782 | " \n",
783 | " ... | \n",
784 | " ... | \n",
785 | " ... | \n",
786 | " ... | \n",
787 | " ... | \n",
788 | " ... | \n",
789 | " ... | \n",
790 | " ... | \n",
791 | "
\n",
792 | " \n",
793 | " 20816 | \n",
794 | " 2308976 | \n",
795 | " Xiaokai Zhang | \n",
796 | " Muchu Chen | \n",
797 | " Bowen Zhou | \n",
798 | " Chen Yu | \n",
799 | " Huazhong University of Science and Technology | \n",
800 | " Honorable Mention | \n",
801 | "
\n",
802 | " \n",
803 | " 20820 | \n",
804 | " 2308980 | \n",
805 | " Xuebin Zhou | \n",
806 | " Yutong Ding | \n",
807 | " Chenmin Ke | \n",
808 | " Haoyuan Xu | \n",
809 | " Huazhong University of Science and Technology | \n",
810 | " Honorable Mention | \n",
811 | "
\n",
812 | " \n",
813 | " 20822 | \n",
814 | " 2308982 | \n",
815 | " Jiongfan Zhu | \n",
816 | " Yilong Chen | \n",
817 | " Yuezhang Long | \n",
818 | " Jiongfan Zhu | \n",
819 | " Huazhong University of Science and Technology | \n",
820 | " Successful Participant | \n",
821 | "
\n",
822 | " \n",
823 | " 20826 | \n",
824 | " 2308986 | \n",
825 | " Lihui Zhang | \n",
826 | " Xin Hu | \n",
827 | " Chenyang Xiong | \n",
828 | " Li Li | \n",
829 | " Huazhong University of Science and Technology | \n",
830 | " Finalist | \n",
831 | "
\n",
832 | " \n",
833 | " 20827 | \n",
834 | " 2308987 | \n",
835 | " Ziheng Huang | \n",
836 | " Zihe Liu | \n",
837 | " Wensheng Yang | \n",
838 | " Ziheng Huang | \n",
839 | " Huazhong University of Science and Technology | \n",
840 | " Successful Participant | \n",
841 | "
\n",
842 | " \n",
843 | "
\n",
844 | "
338 rows × 7 columns
\n",
845 | "
"
846 | ],
847 | "text/plain": [
848 | " control_number student1 student2 student3 \\\n",
849 | "157 2300214 Hao Yang Yuxin Hu Di Liu \n",
850 | "165 2300223 Yingzhong Hua Yanwei Tan Jichen Bian \n",
851 | "588 2300708 Xiang Li Yu Hu JunHang Ma \n",
852 | "637 2300772 Yitian Han Anyang Li Ruoxin Wu \n",
853 | "722 2300883 Lesi Hu Hannan Chen Yulang Hong \n",
854 | "... ... ... ... ... \n",
855 | "20816 2308976 Xiaokai Zhang Muchu Chen Bowen Zhou \n",
856 | "20820 2308980 Xuebin Zhou Yutong Ding Chenmin Ke \n",
857 | "20822 2308982 Jiongfan Zhu Yilong Chen Yuezhang Long \n",
858 | "20826 2308986 Lihui Zhang Xin Hu Chenyang Xiong \n",
859 | "20827 2308987 Ziheng Huang Zihe Liu Wensheng Yang \n",
860 | "\n",
861 | " advisor university \\\n",
862 | "157 ZhiHong Yang Huazhong University of Science and Technology \n",
863 | "165 Yingzhong Hua Huazhong University of Science and Technology \n",
864 | "588 Xiang Li Huazhong University of Science and Technology \n",
865 | "637 Gang Xu Huazhong University of Science and Technology \n",
866 | "722 Suyang Ma Huazhong University of Science and Technology \n",
867 | "... ... ... \n",
868 | "20816 Chen Yu Huazhong University of Science and Technology \n",
869 | "20820 Haoyuan Xu Huazhong University of Science and Technology \n",
870 | "20822 Jiongfan Zhu Huazhong University of Science and Technology \n",
871 | "20826 Li Li Huazhong University of Science and Technology \n",
872 | "20827 Ziheng Huang Huazhong University of Science and Technology \n",
873 | "\n",
874 | " prize \n",
875 | "157 Disqualified - P \n",
876 | "165 Successful Participant \n",
877 | "588 Successful Participant \n",
878 | "637 Successful Participant \n",
879 | "722 Successful Participant \n",
880 | "... ... \n",
881 | "20816 Honorable Mention \n",
882 | "20820 Honorable Mention \n",
883 | "20822 Successful Participant \n",
884 | "20826 Finalist \n",
885 | "20827 Successful Participant \n",
886 | "\n",
887 | "[338 rows x 7 columns]"
888 | ]
889 | },
890 | "execution_count": 9,
891 | "metadata": {},
892 | "output_type": "execute_result"
893 | }
894 | ],
895 | "source": [
896 | "your_univ_result=data.loc[data['university']==your_university]\n",
897 | "your_univ_result"
898 | ]
899 | },
900 | {
901 | "cell_type": "code",
902 | "execution_count": 10,
903 | "metadata": {
904 | "scrolled": true
905 | },
906 | "outputs": [
907 | {
908 | "data": {
909 | "text/plain": [
910 | "Successful Participant 223\n",
911 | "Honorable Mention 72\n",
912 | "Meritorious Winner 20\n",
913 | "Disqualified - P 14\n",
914 | "Finalist 8\n",
915 | "Unsuccessful - I 1\n",
916 | "Name: prize, dtype: int64"
917 | ]
918 | },
919 | "execution_count": 10,
920 | "metadata": {},
921 | "output_type": "execute_result"
922 | }
923 | ],
924 | "source": [
925 | "your_univ_result['prize'].value_counts()"
926 | ]
927 | },
928 | {
929 | "cell_type": "code",
930 | "execution_count": 11,
931 | "metadata": {
932 | "scrolled": false
933 | },
934 | "outputs": [
935 | {
936 | "data": {
937 | "text/html": [
938 | "\n",
939 | "\n",
952 | "
\n",
953 | " \n",
954 | " \n",
955 | " | \n",
956 | " control_number | \n",
957 | " student1 | \n",
958 | " student2 | \n",
959 | " student3 | \n",
960 | " advisor | \n",
961 | " university | \n",
962 | " prize | \n",
963 | "
\n",
964 | " \n",
965 | " \n",
966 | " \n",
967 | "
\n",
968 | "
"
969 | ],
970 | "text/plain": [
971 | "Empty DataFrame\n",
972 | "Columns: [control_number, student1, student2, student3, advisor, university, prize]\n",
973 | "Index: []"
974 | ]
975 | },
976 | "execution_count": 11,
977 | "metadata": {},
978 | "output_type": "execute_result"
979 | }
980 | ],
981 | "source": [
982 | "prize_result=your_univ_result.loc[(your_univ_result['prize']=='Outstanding Winner') | (your_univ_result['prize'].str.contains('Award'))]\n",
983 | "prize_result"
984 | ]
985 | },
986 | {
987 | "cell_type": "code",
988 | "execution_count": null,
989 | "metadata": {},
990 | "outputs": [],
991 | "source": []
992 | },
993 | {
994 | "cell_type": "code",
995 | "execution_count": 12,
996 | "metadata": {},
997 | "outputs": [
998 | {
999 | "data": {
1000 | "text/html": [
1001 | "\n",
1002 | "\n",
1015 | "
\n",
1016 | " \n",
1017 | " \n",
1018 | " | \n",
1019 | " control_number | \n",
1020 | " student1 | \n",
1021 | " student2 | \n",
1022 | " student3 | \n",
1023 | " advisor | \n",
1024 | " university | \n",
1025 | " prize | \n",
1026 | "
\n",
1027 | " \n",
1028 | " \n",
1029 | " \n",
1030 | " 2859 | \n",
1031 | " 2311286 | \n",
1032 | " Shituo Ma | \n",
1033 | " Anqi Liu | \n",
1034 | " Zixiong Wang | \n",
1035 | " Shituo Ma | \n",
1036 | " Huazhong University of Science and Technology | \n",
1037 | " Finalist | \n",
1038 | "
\n",
1039 | " \n",
1040 | " 4385 | \n",
1041 | " 2312921 | \n",
1042 | " Fanjun Kong | \n",
1043 | " Chenglong Zeng | \n",
1044 | " Di Wu | \n",
1045 | " Kong Fanjun | \n",
1046 | " Huazhong University of Science and Technology | \n",
1047 | " Finalist | \n",
1048 | "
\n",
1049 | " \n",
1050 | " 4670 | \n",
1051 | " 2313212 | \n",
1052 | " Chen Yihua | \n",
1053 | " Lv Xinsheng | \n",
1054 | " Lin JunJie | \n",
1055 | " Yang Kai | \n",
1056 | " Huazhong University of Science and Technology | \n",
1057 | " Finalist | \n",
1058 | "
\n",
1059 | " \n",
1060 | " 4952 | \n",
1061 | " 2313511 | \n",
1062 | " Sitong Zheng | \n",
1063 | " Yuanmeng Shan | \n",
1064 | " Ziying Chen | \n",
1065 | " Zhao Pan | \n",
1066 | " Huazhong University of Science and Technology | \n",
1067 | " Finalist | \n",
1068 | "
\n",
1069 | " \n",
1070 | " 19632 | \n",
1071 | " 2307685 | \n",
1072 | " Xiangqian Yan | \n",
1073 | " Keyi Chen | \n",
1074 | " Ling Luo | \n",
1075 | " Haoyuan Xu | \n",
1076 | " Huazhong University of Science and Technology | \n",
1077 | " Finalist | \n",
1078 | "
\n",
1079 | " \n",
1080 | " 19692 | \n",
1081 | " 2307750 | \n",
1082 | " Zuoming Fu | \n",
1083 | " Hatyue Chen | \n",
1084 | " Haoran Zhu | \n",
1085 | " Zuoming Fu | \n",
1086 | " Huazhong University of Science and Technology | \n",
1087 | " Finalist | \n",
1088 | "
\n",
1089 | " \n",
1090 | " 20752 | \n",
1091 | " 2308903 | \n",
1092 | " Chenshen Mao | \n",
1093 | " Zhixiong Xia | \n",
1094 | " Shuning Luo | \n",
1095 | " Haoyuan Xu | \n",
1096 | " Huazhong University of Science and Technology | \n",
1097 | " Finalist | \n",
1098 | "
\n",
1099 | " \n",
1100 | " 20826 | \n",
1101 | " 2308986 | \n",
1102 | " Lihui Zhang | \n",
1103 | " Xin Hu | \n",
1104 | " Chenyang Xiong | \n",
1105 | " Li Li | \n",
1106 | " Huazhong University of Science and Technology | \n",
1107 | " Finalist | \n",
1108 | "
\n",
1109 | " \n",
1110 | "
\n",
1111 | "
"
1112 | ],
1113 | "text/plain": [
1114 | " control_number student1 student2 student3 \\\n",
1115 | "2859 2311286 Shituo Ma Anqi Liu Zixiong Wang \n",
1116 | "4385 2312921 Fanjun Kong Chenglong Zeng Di Wu \n",
1117 | "4670 2313212 Chen Yihua Lv Xinsheng Lin JunJie \n",
1118 | "4952 2313511 Sitong Zheng Yuanmeng Shan Ziying Chen \n",
1119 | "19632 2307685 Xiangqian Yan Keyi Chen Ling Luo \n",
1120 | "19692 2307750 Zuoming Fu Hatyue Chen Haoran Zhu \n",
1121 | "20752 2308903 Chenshen Mao Zhixiong Xia Shuning Luo \n",
1122 | "20826 2308986 Lihui Zhang Xin Hu Chenyang Xiong \n",
1123 | "\n",
1124 | " advisor university prize \n",
1125 | "2859 Shituo Ma Huazhong University of Science and Technology Finalist \n",
1126 | "4385 Kong Fanjun Huazhong University of Science and Technology Finalist \n",
1127 | "4670 Yang Kai Huazhong University of Science and Technology Finalist \n",
1128 | "4952 Zhao Pan Huazhong University of Science and Technology Finalist \n",
1129 | "19632 Haoyuan Xu Huazhong University of Science and Technology Finalist \n",
1130 | "19692 Zuoming Fu Huazhong University of Science and Technology Finalist \n",
1131 | "20752 Haoyuan Xu Huazhong University of Science and Technology Finalist \n",
1132 | "20826 Li Li Huazhong University of Science and Technology Finalist "
1133 | ]
1134 | },
1135 | "execution_count": 12,
1136 | "metadata": {},
1137 | "output_type": "execute_result"
1138 | }
1139 | ],
1140 | "source": [
1141 | "prize_result=your_univ_result.loc[your_univ_result['prize']=='Finalist']\n",
1142 | "prize_result"
1143 | ]
1144 | },
1145 | {
1146 | "cell_type": "code",
1147 | "execution_count": null,
1148 | "metadata": {},
1149 | "outputs": [],
1150 | "source": []
1151 | },
1152 | {
1153 | "cell_type": "code",
1154 | "execution_count": null,
1155 | "metadata": {},
1156 | "outputs": [],
1157 | "source": []
1158 | }
1159 | ],
1160 | "metadata": {
1161 | "kernelspec": {
1162 | "display_name": "Python 3",
1163 | "language": "python",
1164 | "name": "python3"
1165 | },
1166 | "language_info": {
1167 | "codemirror_mode": {
1168 | "name": "ipython",
1169 | "version": 3
1170 | },
1171 | "file_extension": ".py",
1172 | "mimetype": "text/x-python",
1173 | "name": "python",
1174 | "nbconvert_exporter": "python",
1175 | "pygments_lexer": "ipython3",
1176 | "version": "3.7.6"
1177 | }
1178 | },
1179 | "nbformat": 4,
1180 | "nbformat_minor": 4
1181 | }
1182 |
--------------------------------------------------------------------------------
/analysis_2024.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "import shutil\n",
10 | "import pandas as pd\n",
11 | "from config import your_university"
12 | ]
13 | },
14 | {
15 | "cell_type": "code",
16 | "execution_count": 2,
17 | "metadata": {
18 | "scrolled": true
19 | },
20 | "outputs": [
21 | {
22 | "data": {
23 | "text/html": [
24 | "\n",
25 | "\n",
38 | "
\n",
39 | " \n",
40 | " \n",
41 | " | \n",
42 | " control_number | \n",
43 | " student1 | \n",
44 | " student2 | \n",
45 | " student3 | \n",
46 | " university | \n",
47 | " prize | \n",
48 | "
\n",
49 | " \n",
50 | " \n",
51 | " \n",
52 | " 0 | \n",
53 | " 2400002 | \n",
54 | " Huang Jiarui | \n",
55 | " Luo Zimeng | \n",
56 | " Zhang Yifa | \n",
57 | " Beijing Normal University | \n",
58 | " Honorable Mention | \n",
59 | "
\n",
60 | " \n",
61 | " 1 | \n",
62 | " 2400004 | \n",
63 | " Chongqin Chen | \n",
64 | " Junyi Liu | \n",
65 | " Ruishu Huang | \n",
66 | " Ningbo University | \n",
67 | " Successful Participant | \n",
68 | "
\n",
69 | " \n",
70 | " 2 | \n",
71 | " 2400006 | \n",
72 | " Xinkai Wu | \n",
73 | " Gaoyuan Feng | \n",
74 | " Nuoheng Zhou | \n",
75 | " Ningbo University | \n",
76 | " Honorable Mention | \n",
77 | "
\n",
78 | " \n",
79 | " 3 | \n",
80 | " 2400007 | \n",
81 | " Xiatian Zhang | \n",
82 | " Runyi Lin | \n",
83 | " Yuehan Yang | \n",
84 | " Ningbo University | \n",
85 | " Finalist | \n",
86 | "
\n",
87 | " \n",
88 | " 4 | \n",
89 | " 2400008 | \n",
90 | " Kang-liang Wang | \n",
91 | " Fei Ni | \n",
92 | " Zi-shuo Wang | \n",
93 | " Ningbo University | \n",
94 | " Successful Participant | \n",
95 | "
\n",
96 | " \n",
97 | "
\n",
98 | "
"
99 | ],
100 | "text/plain": [
101 | " control_number student1 student2 student3 \\\n",
102 | "0 2400002 Huang Jiarui Luo Zimeng Zhang Yifa \n",
103 | "1 2400004 Chongqin Chen Junyi Liu Ruishu Huang \n",
104 | "2 2400006 Xinkai Wu Gaoyuan Feng Nuoheng Zhou \n",
105 | "3 2400007 Xiatian Zhang Runyi Lin Yuehan Yang \n",
106 | "4 2400008 Kang-liang Wang Fei Ni Zi-shuo Wang \n",
107 | "\n",
108 | " university prize \n",
109 | "0 Beijing Normal University Honorable Mention \n",
110 | "1 Ningbo University Successful Participant \n",
111 | "2 Ningbo University Honorable Mention \n",
112 | "3 Ningbo University Finalist \n",
113 | "4 Ningbo University Successful Participant "
114 | ]
115 | },
116 | "execution_count": 2,
117 | "metadata": {},
118 | "output_type": "execute_result"
119 | }
120 | ],
121 | "source": [
122 | "shutil.copyfile('./all/all_2024.txt', './all/all_2024.csv')\n",
123 | "data = pd.read_csv('./all/all_2024.csv')\n",
124 | "data=data.iloc[:,0:6]\n",
125 | "data.head()"
126 | ]
127 | },
128 | {
129 | "cell_type": "code",
130 | "execution_count": 3,
131 | "metadata": {},
132 | "outputs": [
133 | {
134 | "data": {
135 | "text/plain": [
136 | "Jilin University 572\n",
137 | "Harbin Engineering University 560\n",
138 | "Huazhong University of Science and Technology 511\n",
139 | "Northwestern Polytechnical University 497\n",
140 | "Xi'an Jiaotong University 494\n",
141 | "Beihang University 451\n",
142 | "Nanjing University of Posts and Telecommunication 410\n",
143 | "Dalian University of Technology 387\n",
144 | "South China University of Technology 372\n",
145 | "XIDIAN UNIVERSITY 368\n",
146 | "Chongqing University 337\n",
147 | "Wuhan University 337\n",
148 | "Shanghai Jiao Tong University 330\n",
149 | "Harbin Institute of Technology 326\n",
150 | "Xidian University 285\n",
151 | "SUN YAT-SEN UNIVERSITY 273\n",
152 | "Northeastern University 270\n",
153 | "National University of Defense Technology 267\n",
154 | "Being Jiaotong University 266\n",
155 | "Beijing Institute of Technology 262\n",
156 | "Name: university, dtype: int64"
157 | ]
158 | },
159 | "execution_count": 3,
160 | "metadata": {},
161 | "output_type": "execute_result"
162 | }
163 | ],
164 | "source": [
165 | "univ_data=data['university'].value_counts().iloc[0:20]\n",
166 | "univ_data"
167 | ]
168 | },
169 | {
170 | "cell_type": "code",
171 | "execution_count": 4,
172 | "metadata": {
173 | "scrolled": true
174 | },
175 | "outputs": [
176 | {
177 | "data": {
178 | "image/png": "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\n",
179 | "text/plain": [
180 | ""
181 | ]
182 | },
183 | "metadata": {
184 | "needs_background": "light"
185 | },
186 | "output_type": "display_data"
187 | }
188 | ],
189 | "source": [
190 | "\n",
191 | "ax=univ_data.sort_values().plot.barh()\n",
192 | "fig=ax.get_figure()\n",
193 | "fig.savefig('统计结果.png',bbox_inches='tight')"
194 | ]
195 | },
196 | {
197 | "cell_type": "code",
198 | "execution_count": 5,
199 | "metadata": {},
200 | "outputs": [
201 | {
202 | "data": {
203 | "text/plain": [
204 | "Successful Participant 18103\n",
205 | "Honorable Mention 6643\n",
206 | "Meritorious Winner 1918\n",
207 | "Disqualified - P 1432\n",
208 | "Finalist 506\n",
209 | "Unsuccessful - I 127\n",
210 | "Not Judged 24\n",
211 | "Outstanding Winner 13\n",
212 | "AMS Award 6\n",
213 | "INFORMS Award 6\n",
214 | "SIAM Award 5\n",
215 | "MAA Award 3\n",
216 | "COMAP Scholarship Award 2\n",
217 | "Leonhard Euler Award 1\n",
218 | "Vilfredo Pareto Award 1\n",
219 | "Rachel Carson Award 1\n",
220 | "ASA Award 1\n",
221 | "Cc 1\n",
222 | "Ben Fusaro Award 1\n",
223 | "Frank Giordano Award 1\n",
224 | "Name: prize, dtype: int64"
225 | ]
226 | },
227 | "execution_count": 5,
228 | "metadata": {},
229 | "output_type": "execute_result"
230 | }
231 | ],
232 | "source": [
233 | "data['prize'].value_counts()"
234 | ]
235 | },
236 | {
237 | "cell_type": "code",
238 | "execution_count": 6,
239 | "metadata": {},
240 | "outputs": [
241 | {
242 | "data": {
243 | "text/html": [
244 | "\n",
245 | "\n",
258 | "
\n",
259 | " \n",
260 | " \n",
261 | " | \n",
262 | " control_number | \n",
263 | " student1 | \n",
264 | " student2 | \n",
265 | " student3 | \n",
266 | " university | \n",
267 | " prize | \n",
268 | "
\n",
269 | " \n",
270 | " \n",
271 | " \n",
272 | " 2850 | \n",
273 | " 2407038 | \n",
274 | " Jiechuan Gong | \n",
275 | " Fantong Xia | \n",
276 | " Junhao Zeng | \n",
277 | " UESTC | \n",
278 | " INFORMS Award | \n",
279 | "
\n",
280 | " \n",
281 | " 2901 | \n",
282 | " 2407093 | \n",
283 | " Haoran Yi | \n",
284 | " Junrong Liu | \n",
285 | " Zhe Zhao | \n",
286 | " Beijing Institute of Technology | \n",
287 | " AMS Award | \n",
288 | "
\n",
289 | " \n",
290 | " 3208 | \n",
291 | " 2407414 | \n",
292 | " Jiajun Lei | \n",
293 | " Junjie Wang | \n",
294 | " Ruiyang Liu | \n",
295 | " Xi'an Jiaotong University | \n",
296 | " AMS Award | \n",
297 | "
\n",
298 | " \n",
299 | " 5532 | \n",
300 | " 2400860 | \n",
301 | " Xinyu Hu | \n",
302 | " Jiarui Liang | \n",
303 | " Dongsheng Su | \n",
304 | " Zhejiang Sci-Tech University | \n",
305 | " Rachel Carson Award | \n",
306 | "
\n",
307 | " \n",
308 | " 5656 | \n",
309 | " 2400996 | \n",
310 | " Zhen Huang | \n",
311 | " Honghui Cao | \n",
312 | " Zhenning Liu | \n",
313 | " Wuhan University | \n",
314 | " INFORMS Award | \n",
315 | "
\n",
316 | " \n",
317 | " 6086 | \n",
318 | " 2409949 | \n",
319 | " YANHENG LI | \n",
320 | " HONG JIANG | \n",
321 | " LING GAN | \n",
322 | " Renmin University of China | \n",
323 | " COMAP Scholarship Award | \n",
324 | "
\n",
325 | " \n",
326 | " 6599 | \n",
327 | " 2410482 | \n",
328 | " ZIXUAN TANG | \n",
329 | " YITING YANG | \n",
330 | " XINYU CHEN | \n",
331 | " Beijing Normal University | \n",
332 | " INFORMS Award | \n",
333 | "
\n",
334 | " \n",
335 | " 6947 | \n",
336 | " 2410846 | \n",
337 | " Heyu Huang | \n",
338 | " Jiahui Zhai | \n",
339 | " Weibin Li | \n",
340 | " Xiamen University | \n",
341 | " Ben Fusaro Award | \n",
342 | "
\n",
343 | " \n",
344 | " 6989 | \n",
345 | " 2410889 | \n",
346 | " Wenlong Chen | \n",
347 | " Yihui Li | \n",
348 | " Wei Zhu | \n",
349 | " Shenzhen University | \n",
350 | " SIAM Award | \n",
351 | "
\n",
352 | " \n",
353 | " 7640 | \n",
354 | " 2411570 | \n",
355 | " Yutong Wang | \n",
356 | " Haoqi Lv | \n",
357 | " Pengkun Wang | \n",
358 | " China University of Geosciences Being | \n",
359 | " Frank Giordano Award | \n",
360 | "
\n",
361 | " \n",
362 | " 9540 | \n",
363 | " 2413552 | \n",
364 | " Qianjing Zhu | \n",
365 | " Wenhao Yuan | \n",
366 | " Yunjie Shao | \n",
367 | " Soochow University | \n",
368 | " INFORMS Award | \n",
369 | "
\n",
370 | " \n",
371 | " 9553 | \n",
372 | " 2413565 | \n",
373 | " Xu Yan | \n",
374 | " Zhou Yangyujie | \n",
375 | " Huo Zhengyji | \n",
376 | " Xi'an University of Posts and Telecommunications | \n",
377 | " INFORMS Award | \n",
378 | "
\n",
379 | " \n",
380 | " 10727 | \n",
381 | " 2401298 | \n",
382 | " Junjie Fei | \n",
383 | " Yuxin Shen | \n",
384 | " Kaijie Du | \n",
385 | " Fudan University | \n",
386 | " AMS Award | \n",
387 | "
\n",
388 | " \n",
389 | " 13320 | \n",
390 | " 2417004 | \n",
391 | " Jiahao Zhu | \n",
392 | " Chengzhen Han | \n",
393 | " Dongyi Jiang | \n",
394 | " East China Normal University | \n",
395 | " INFORMS Award | \n",
396 | "
\n",
397 | " \n",
398 | " 14127 | \n",
399 | " 2417831 | \n",
400 | " Yue Zhong | \n",
401 | " Yueming Cao | \n",
402 | " Bo Wu | \n",
403 | " Tsinghua University | \n",
404 | " Leonhard Euler Award | \n",
405 | "
\n",
406 | " \n",
407 | " 16133 | \n",
408 | " 2401919 | \n",
409 | " Shang Yue Li | \n",
410 | " YuChun Yang | \n",
411 | " HuiXue Su | \n",
412 | " Renmin University of China | \n",
413 | " SIAM Award | \n",
414 | "
\n",
415 | " \n",
416 | " 16293 | \n",
417 | " 2419588 | \n",
418 | " Haoyang Peng | \n",
419 | " Wei Li | \n",
420 | " Siyuan Wang | \n",
421 | " National University of Defense Technology | \n",
422 | " AMS Award | \n",
423 | "
\n",
424 | " \n",
425 | " 16681 | \n",
426 | " 2419984 | \n",
427 | " Zeyang Wu | \n",
428 | " Xinhiang Li | \n",
429 | " Xiran Ni | \n",
430 | " Tongji University | \n",
431 | " AMS Award | \n",
432 | "
\n",
433 | " \n",
434 | " 18654 | \n",
435 | " 2422054 | \n",
436 | " Yi Wu | \n",
437 | " Jiankai Li | \n",
438 | " Chenyang Pan | \n",
439 | " Shanghai Jiao Tong University | \n",
440 | " Vilfredo Pareto Award | \n",
441 | "
\n",
442 | " \n",
443 | " 19231 | \n",
444 | " 2422656 | \n",
445 | " Aranjinsuren Enkhbat | \n",
446 | " Bisrat Kassie | \n",
447 | " Jordan Sims | \n",
448 | " Brandeis University | \n",
449 | " MAA Award | \n",
450 | "
\n",
451 | " \n",
452 | " 20886 | \n",
453 | " 2424371 | \n",
454 | " Xinyu Sui | \n",
455 | " Ji Zheng | \n",
456 | " Yuhang Ma | \n",
457 | " Xi'an Jiaotong University | \n",
458 | " SIAM Award | \n",
459 | "
\n",
460 | " \n",
461 | " 22721 | \n",
462 | " 2425792 | \n",
463 | " Cunxin Fan | \n",
464 | " Haonan Wang | \n",
465 | " Ke Zhang | \n",
466 | " Shanghai Jiao Tong University | \n",
467 | " SIAM Award | \n",
468 | "
\n",
469 | " \n",
470 | " 23819 | \n",
471 | " 2426941 | \n",
472 | " Wei Sun | \n",
473 | " Ting Mei | \n",
474 | " Fangyuan Liu | \n",
475 | " Hunan Normal University | \n",
476 | " AMS Award | \n",
477 | "
\n",
478 | " \n",
479 | " 25273 | \n",
480 | " 2428463 | \n",
481 | " Yilin Ma | \n",
482 | " Xuantong Wang | \n",
483 | " Jingyi Sun | \n",
484 | " North China University of Technology | \n",
485 | " ASA Award | \n",
486 | "
\n",
487 | " \n",
488 | " 25929 | \n",
489 | " 2429166 | \n",
490 | " Christopher Kan | \n",
491 | " Brandon Lu | \n",
492 | " Benny Sun | \n",
493 | " Duke University | \n",
494 | " MAA Award | \n",
495 | "
\n",
496 | " \n",
497 | " 25967 | \n",
498 | " 2429211 | \n",
499 | " Arjun Taneja | \n",
500 | " Paco Navarro | \n",
501 | " Max Collins | \n",
502 | " Harvey Mudd College | \n",
503 | " COMAP Scholarship Award | \n",
504 | "
\n",
505 | " \n",
506 | " 26675 | \n",
507 | " 2402960 | \n",
508 | " Hangyi Yao | \n",
509 | " Jiting Chen | \n",
510 | " Zeyu Liang | \n",
511 | " Ningbo University | \n",
512 | " SIAM Award | \n",
513 | "
\n",
514 | " \n",
515 | " 27150 | \n",
516 | " 2429973 | \n",
517 | " Henry Li | \n",
518 | " Yuxin Li | \n",
519 | " Crystal Su | \n",
520 | " Columbia University | \n",
521 | " MAA Award | \n",
522 | "
\n",
523 | " \n",
524 | "
\n",
525 | "
"
526 | ],
527 | "text/plain": [
528 | " control_number student1 student2 student3 \\\n",
529 | "2850 2407038 Jiechuan Gong Fantong Xia Junhao Zeng \n",
530 | "2901 2407093 Haoran Yi Junrong Liu Zhe Zhao \n",
531 | "3208 2407414 Jiajun Lei Junjie Wang Ruiyang Liu \n",
532 | "5532 2400860 Xinyu Hu Jiarui Liang Dongsheng Su \n",
533 | "5656 2400996 Zhen Huang Honghui Cao Zhenning Liu \n",
534 | "6086 2409949 YANHENG LI HONG JIANG LING GAN \n",
535 | "6599 2410482 ZIXUAN TANG YITING YANG XINYU CHEN \n",
536 | "6947 2410846 Heyu Huang Jiahui Zhai Weibin Li \n",
537 | "6989 2410889 Wenlong Chen Yihui Li Wei Zhu \n",
538 | "7640 2411570 Yutong Wang Haoqi Lv Pengkun Wang \n",
539 | "9540 2413552 Qianjing Zhu Wenhao Yuan Yunjie Shao \n",
540 | "9553 2413565 Xu Yan Zhou Yangyujie Huo Zhengyji \n",
541 | "10727 2401298 Junjie Fei Yuxin Shen Kaijie Du \n",
542 | "13320 2417004 Jiahao Zhu Chengzhen Han Dongyi Jiang \n",
543 | "14127 2417831 Yue Zhong Yueming Cao Bo Wu \n",
544 | "16133 2401919 Shang Yue Li YuChun Yang HuiXue Su \n",
545 | "16293 2419588 Haoyang Peng Wei Li Siyuan Wang \n",
546 | "16681 2419984 Zeyang Wu Xinhiang Li Xiran Ni \n",
547 | "18654 2422054 Yi Wu Jiankai Li Chenyang Pan \n",
548 | "19231 2422656 Aranjinsuren Enkhbat Bisrat Kassie Jordan Sims \n",
549 | "20886 2424371 Xinyu Sui Ji Zheng Yuhang Ma \n",
550 | "22721 2425792 Cunxin Fan Haonan Wang Ke Zhang \n",
551 | "23819 2426941 Wei Sun Ting Mei Fangyuan Liu \n",
552 | "25273 2428463 Yilin Ma Xuantong Wang Jingyi Sun \n",
553 | "25929 2429166 Christopher Kan Brandon Lu Benny Sun \n",
554 | "25967 2429211 Arjun Taneja Paco Navarro Max Collins \n",
555 | "26675 2402960 Hangyi Yao Jiting Chen Zeyu Liang \n",
556 | "27150 2429973 Henry Li Yuxin Li Crystal Su \n",
557 | "\n",
558 | " university \\\n",
559 | "2850 UESTC \n",
560 | "2901 Beijing Institute of Technology \n",
561 | "3208 Xi'an Jiaotong University \n",
562 | "5532 Zhejiang Sci-Tech University \n",
563 | "5656 Wuhan University \n",
564 | "6086 Renmin University of China \n",
565 | "6599 Beijing Normal University \n",
566 | "6947 Xiamen University \n",
567 | "6989 Shenzhen University \n",
568 | "7640 China University of Geosciences Being \n",
569 | "9540 Soochow University \n",
570 | "9553 Xi'an University of Posts and Telecommunications \n",
571 | "10727 Fudan University \n",
572 | "13320 East China Normal University \n",
573 | "14127 Tsinghua University \n",
574 | "16133 Renmin University of China \n",
575 | "16293 National University of Defense Technology \n",
576 | "16681 Tongji University \n",
577 | "18654 Shanghai Jiao Tong University \n",
578 | "19231 Brandeis University \n",
579 | "20886 Xi'an Jiaotong University \n",
580 | "22721 Shanghai Jiao Tong University \n",
581 | "23819 Hunan Normal University \n",
582 | "25273 North China University of Technology \n",
583 | "25929 Duke University \n",
584 | "25967 Harvey Mudd College \n",
585 | "26675 Ningbo University \n",
586 | "27150 Columbia University \n",
587 | "\n",
588 | " prize \n",
589 | "2850 INFORMS Award \n",
590 | "2901 AMS Award \n",
591 | "3208 AMS Award \n",
592 | "5532 Rachel Carson Award \n",
593 | "5656 INFORMS Award \n",
594 | "6086 COMAP Scholarship Award \n",
595 | "6599 INFORMS Award \n",
596 | "6947 Ben Fusaro Award \n",
597 | "6989 SIAM Award \n",
598 | "7640 Frank Giordano Award \n",
599 | "9540 INFORMS Award \n",
600 | "9553 INFORMS Award \n",
601 | "10727 AMS Award \n",
602 | "13320 INFORMS Award \n",
603 | "14127 Leonhard Euler Award \n",
604 | "16133 SIAM Award \n",
605 | "16293 AMS Award \n",
606 | "16681 AMS Award \n",
607 | "18654 Vilfredo Pareto Award \n",
608 | "19231 MAA Award \n",
609 | "20886 SIAM Award \n",
610 | "22721 SIAM Award \n",
611 | "23819 AMS Award \n",
612 | "25273 ASA Award \n",
613 | "25929 MAA Award \n",
614 | "25967 COMAP Scholarship Award \n",
615 | "26675 SIAM Award \n",
616 | "27150 MAA Award "
617 | ]
618 | },
619 | "execution_count": 6,
620 | "metadata": {},
621 | "output_type": "execute_result"
622 | }
623 | ],
624 | "source": [
625 | "avard_result=data.loc[(data['prize'].str.contains('Award'))]\n",
626 | "avard_result"
627 | ]
628 | },
629 | {
630 | "cell_type": "code",
631 | "execution_count": 7,
632 | "metadata": {
633 | "scrolled": false
634 | },
635 | "outputs": [
636 | {
637 | "data": {
638 | "text/html": [
639 | "\n",
640 | "\n",
653 | "
\n",
654 | " \n",
655 | " \n",
656 | " | \n",
657 | " control_number | \n",
658 | " student1 | \n",
659 | " student2 | \n",
660 | " student3 | \n",
661 | " university | \n",
662 | " prize | \n",
663 | "
\n",
664 | " \n",
665 | " \n",
666 | " \n",
667 | " 102 | \n",
668 | " 2400114 | \n",
669 | " Zishuo Wang | \n",
670 | " Yucheng Chen | \n",
671 | " Yanjinghao Xu | \n",
672 | " Huazhong University of Science and Technology | \n",
673 | " Successful Participant | \n",
674 | "
\n",
675 | " \n",
676 | " 124 | \n",
677 | " 2400139 | \n",
678 | " Boheng Lin | \n",
679 | " Zhipu Hu | \n",
680 | " Zhenghao Gao | \n",
681 | " Huazhong University of Science and Technology | \n",
682 | " Honorable Mention | \n",
683 | "
\n",
684 | " \n",
685 | " 132 | \n",
686 | " 2400147 | \n",
687 | " He Yin | \n",
688 | " HaiZhuo Wang | \n",
689 | " Haoze Li | \n",
690 | " Huazhong University of Science and Technology | \n",
691 | " Successful Participant | \n",
692 | "
\n",
693 | " \n",
694 | " 150 | \n",
695 | " 2400167 | \n",
696 | " Jingchao Lu | \n",
697 | " RuiXin Dong | \n",
698 | " Yaxiang Gao | \n",
699 | " Huazhong University of Science and Technology | \n",
700 | " Successful Participant | \n",
701 | "
\n",
702 | " \n",
703 | " 165 | \n",
704 | " 2400185 | \n",
705 | " Jinlong Ma | \n",
706 | " Zhimin Luo | \n",
707 | " Leying Fu | \n",
708 | " Huazhong University of Science and Technology | \n",
709 | " Successful Participant | \n",
710 | "
\n",
711 | " \n",
712 | " ... | \n",
713 | " ... | \n",
714 | " ... | \n",
715 | " ... | \n",
716 | " ... | \n",
717 | " ... | \n",
718 | " ... | \n",
719 | "
\n",
720 | " \n",
721 | " 28081 | \n",
722 | " 2403746 | \n",
723 | " Jiaye Peng | \n",
724 | " Yuanzheng Li | \n",
725 | " Weiping Shen | \n",
726 | " Huazhong University of Science and Technology | \n",
727 | " Successful Participant | \n",
728 | "
\n",
729 | " \n",
730 | " 28083 | \n",
731 | " 2403748 | \n",
732 | " Zichuan Wang | \n",
733 | " XAuanze Young | \n",
734 | " Yuhang Ding | \n",
735 | " Huazhong University of Science and Technology | \n",
736 | " Honorable Mention | \n",
737 | "
\n",
738 | " \n",
739 | " 28096 | \n",
740 | " 2403761 | \n",
741 | " Xiangyi Li | \n",
742 | " Lin Chen | \n",
743 | " Litong Shi | \n",
744 | " Huazhong University of Science and Technology | \n",
745 | " Disqualified - P | \n",
746 | "
\n",
747 | " \n",
748 | " 28291 | \n",
749 | " 2403964 | \n",
750 | " Huadong Song | \n",
751 | " Hanxiang Lv | \n",
752 | " Liang Zhang | \n",
753 | " Huazhong University of Science and Technology | \n",
754 | " Successful Participant | \n",
755 | "
\n",
756 | " \n",
757 | " 28297 | \n",
758 | " 2403971 | \n",
759 | " Leon Huang | \n",
760 | " jared zhou | \n",
761 | " Joe | \n",
762 | " Huazhong University of Science and Technology | \n",
763 | " Honorable Mention | \n",
764 | "
\n",
765 | " \n",
766 | "
\n",
767 | "
511 rows × 6 columns
\n",
768 | "
"
769 | ],
770 | "text/plain": [
771 | " control_number student1 student2 student3 \\\n",
772 | "102 2400114 Zishuo Wang Yucheng Chen Yanjinghao Xu \n",
773 | "124 2400139 Boheng Lin Zhipu Hu Zhenghao Gao \n",
774 | "132 2400147 He Yin HaiZhuo Wang Haoze Li \n",
775 | "150 2400167 Jingchao Lu RuiXin Dong Yaxiang Gao \n",
776 | "165 2400185 Jinlong Ma Zhimin Luo Leying Fu \n",
777 | "... ... ... ... ... \n",
778 | "28081 2403746 Jiaye Peng Yuanzheng Li Weiping Shen \n",
779 | "28083 2403748 Zichuan Wang XAuanze Young Yuhang Ding \n",
780 | "28096 2403761 Xiangyi Li Lin Chen Litong Shi \n",
781 | "28291 2403964 Huadong Song Hanxiang Lv Liang Zhang \n",
782 | "28297 2403971 Leon Huang jared zhou Joe \n",
783 | "\n",
784 | " university prize \n",
785 | "102 Huazhong University of Science and Technology Successful Participant \n",
786 | "124 Huazhong University of Science and Technology Honorable Mention \n",
787 | "132 Huazhong University of Science and Technology Successful Participant \n",
788 | "150 Huazhong University of Science and Technology Successful Participant \n",
789 | "165 Huazhong University of Science and Technology Successful Participant \n",
790 | "... ... ... \n",
791 | "28081 Huazhong University of Science and Technology Successful Participant \n",
792 | "28083 Huazhong University of Science and Technology Honorable Mention \n",
793 | "28096 Huazhong University of Science and Technology Disqualified - P \n",
794 | "28291 Huazhong University of Science and Technology Successful Participant \n",
795 | "28297 Huazhong University of Science and Technology Honorable Mention \n",
796 | "\n",
797 | "[511 rows x 6 columns]"
798 | ]
799 | },
800 | "execution_count": 7,
801 | "metadata": {},
802 | "output_type": "execute_result"
803 | }
804 | ],
805 | "source": [
806 | "your_univ_result=data.loc[data['university']==your_university]\n",
807 | "your_univ_result"
808 | ]
809 | },
810 | {
811 | "cell_type": "code",
812 | "execution_count": 8,
813 | "metadata": {
814 | "scrolled": true
815 | },
816 | "outputs": [
817 | {
818 | "data": {
819 | "text/plain": [
820 | "Successful Participant 311\n",
821 | "Honorable Mention 130\n",
822 | "Meritorious Winner 39\n",
823 | "Disqualified - P 19\n",
824 | "Finalist 11\n",
825 | "Unsuccessful - I 1\n",
826 | "Name: prize, dtype: int64"
827 | ]
828 | },
829 | "execution_count": 8,
830 | "metadata": {},
831 | "output_type": "execute_result"
832 | }
833 | ],
834 | "source": [
835 | "your_univ_result['prize'].value_counts()"
836 | ]
837 | },
838 | {
839 | "cell_type": "code",
840 | "execution_count": 9,
841 | "metadata": {
842 | "scrolled": false
843 | },
844 | "outputs": [
845 | {
846 | "data": {
847 | "text/html": [
848 | "\n",
849 | "\n",
862 | "
\n",
863 | " \n",
864 | " \n",
865 | " | \n",
866 | " control_number | \n",
867 | " student1 | \n",
868 | " student2 | \n",
869 | " student3 | \n",
870 | " university | \n",
871 | " prize | \n",
872 | "
\n",
873 | " \n",
874 | " \n",
875 | " \n",
876 | "
\n",
877 | "
"
878 | ],
879 | "text/plain": [
880 | "Empty DataFrame\n",
881 | "Columns: [control_number, student1, student2, student3, university, prize]\n",
882 | "Index: []"
883 | ]
884 | },
885 | "execution_count": 9,
886 | "metadata": {},
887 | "output_type": "execute_result"
888 | }
889 | ],
890 | "source": [
891 | "prize_result=your_univ_result.loc[(your_univ_result['prize']=='Outstanding Winner') | (your_univ_result['prize'].str.contains('Award'))]\n",
892 | "prize_result"
893 | ]
894 | },
895 | {
896 | "cell_type": "code",
897 | "execution_count": null,
898 | "metadata": {},
899 | "outputs": [],
900 | "source": []
901 | },
902 | {
903 | "cell_type": "code",
904 | "execution_count": 10,
905 | "metadata": {},
906 | "outputs": [
907 | {
908 | "data": {
909 | "text/html": [
910 | "\n",
911 | "\n",
924 | "
\n",
925 | " \n",
926 | " \n",
927 | " | \n",
928 | " control_number | \n",
929 | " student1 | \n",
930 | " student2 | \n",
931 | " student3 | \n",
932 | " university | \n",
933 | " prize | \n",
934 | "
\n",
935 | " \n",
936 | " \n",
937 | " \n",
938 | " 6465 | \n",
939 | " 2410343 | \n",
940 | " Qianyu Zhao | \n",
941 | " Yanheng jiang | \n",
942 | " Shoukun Gao | \n",
943 | " Huazhong University of Science and Technology | \n",
944 | " Finalist | \n",
945 | "
\n",
946 | " \n",
947 | " 6721 | \n",
948 | " 2410612 | \n",
949 | " Xinlong Chen | \n",
950 | " Wanting Wang | \n",
951 | " Yining Deng | \n",
952 | " Huazhong University of Science and Technology | \n",
953 | " Finalist | \n",
954 | "
\n",
955 | " \n",
956 | " 6849 | \n",
957 | " 2410744 | \n",
958 | " Sheng Dong | \n",
959 | " Xiang Fan | \n",
960 | " Lewen Yan | \n",
961 | " Huazhong University of Science and Technology | \n",
962 | " Finalist | \n",
963 | "
\n",
964 | " \n",
965 | " 7138 | \n",
966 | " 2411045 | \n",
967 | " Qu JiaJun | \n",
968 | " Li Junhao | \n",
969 | " Yu Hao | \n",
970 | " Huazhong University of Science and Technology | \n",
971 | " Finalist | \n",
972 | "
\n",
973 | " \n",
974 | " 7227 | \n",
975 | " 2411137 | \n",
976 | " Bin Wang | \n",
977 | " Jiajun Zhang | \n",
978 | " Tiantong Sun | \n",
979 | " Huazhong University of Science and Technology | \n",
980 | " Finalist | \n",
981 | "
\n",
982 | " \n",
983 | " 7425 | \n",
984 | " 2411343 | \n",
985 | " Tingjia Hu | \n",
986 | " Yinda Li | \n",
987 | " Zehua Cao | \n",
988 | " Huazhong University of Science and Technology | \n",
989 | " Finalist | \n",
990 | "
\n",
991 | " \n",
992 | " 7922 | \n",
993 | " 2411866 | \n",
994 | " Hatying Lao | \n",
995 | " Yongye Lai | \n",
996 | " Muze Zhou | \n",
997 | " Huazhong University of Science and Technology | \n",
998 | " Finalist | \n",
999 | "
\n",
1000 | " \n",
1001 | " 9305 | \n",
1002 | " 2413307 | \n",
1003 | " Feryang Huang | \n",
1004 | " Shuchen Pu | \n",
1005 | " Chaoyang Zheng | \n",
1006 | " Huazhong University of Science and Technology | \n",
1007 | " Finalist | \n",
1008 | "
\n",
1009 | " \n",
1010 | " 11233 | \n",
1011 | " 2414823 | \n",
1012 | " Bowen Zheng | \n",
1013 | " Yiging Yuan | \n",
1014 | " Huanyu Liu | \n",
1015 | " Huazhong University of Science and Technology | \n",
1016 | " Finalist | \n",
1017 | "
\n",
1018 | " \n",
1019 | " 11839 | \n",
1020 | " 2415449 | \n",
1021 | " Wang Lingyu | \n",
1022 | " Li Shengzhen | \n",
1023 | " Huang Xinyue | \n",
1024 | " Huazhong University of Science and Technology | \n",
1025 | " Finalist | \n",
1026 | "
\n",
1027 | " \n",
1028 | " 26800 | \n",
1029 | " 2429594 | \n",
1030 | " Jieang Ma | \n",
1031 | " Jiaxing Feng | \n",
1032 | " Qinglin JI | \n",
1033 | " Huazhong University of Science and Technology | \n",
1034 | " Finalist | \n",
1035 | "
\n",
1036 | " \n",
1037 | "
\n",
1038 | "
"
1039 | ],
1040 | "text/plain": [
1041 | " control_number student1 student2 student3 \\\n",
1042 | "6465 2410343 Qianyu Zhao Yanheng jiang Shoukun Gao \n",
1043 | "6721 2410612 Xinlong Chen Wanting Wang Yining Deng \n",
1044 | "6849 2410744 Sheng Dong Xiang Fan Lewen Yan \n",
1045 | "7138 2411045 Qu JiaJun Li Junhao Yu Hao \n",
1046 | "7227 2411137 Bin Wang Jiajun Zhang Tiantong Sun \n",
1047 | "7425 2411343 Tingjia Hu Yinda Li Zehua Cao \n",
1048 | "7922 2411866 Hatying Lao Yongye Lai Muze Zhou \n",
1049 | "9305 2413307 Feryang Huang Shuchen Pu Chaoyang Zheng \n",
1050 | "11233 2414823 Bowen Zheng Yiging Yuan Huanyu Liu \n",
1051 | "11839 2415449 Wang Lingyu Li Shengzhen Huang Xinyue \n",
1052 | "26800 2429594 Jieang Ma Jiaxing Feng Qinglin JI \n",
1053 | "\n",
1054 | " university prize \n",
1055 | "6465 Huazhong University of Science and Technology Finalist \n",
1056 | "6721 Huazhong University of Science and Technology Finalist \n",
1057 | "6849 Huazhong University of Science and Technology Finalist \n",
1058 | "7138 Huazhong University of Science and Technology Finalist \n",
1059 | "7227 Huazhong University of Science and Technology Finalist \n",
1060 | "7425 Huazhong University of Science and Technology Finalist \n",
1061 | "7922 Huazhong University of Science and Technology Finalist \n",
1062 | "9305 Huazhong University of Science and Technology Finalist \n",
1063 | "11233 Huazhong University of Science and Technology Finalist \n",
1064 | "11839 Huazhong University of Science and Technology Finalist \n",
1065 | "26800 Huazhong University of Science and Technology Finalist "
1066 | ]
1067 | },
1068 | "execution_count": 10,
1069 | "metadata": {},
1070 | "output_type": "execute_result"
1071 | }
1072 | ],
1073 | "source": [
1074 | "prize_result=your_univ_result.loc[your_univ_result['prize']=='Finalist']\n",
1075 | "prize_result"
1076 | ]
1077 | },
1078 | {
1079 | "cell_type": "code",
1080 | "execution_count": null,
1081 | "metadata": {},
1082 | "outputs": [],
1083 | "source": []
1084 | },
1085 | {
1086 | "cell_type": "code",
1087 | "execution_count": null,
1088 | "metadata": {},
1089 | "outputs": [],
1090 | "source": []
1091 | }
1092 | ],
1093 | "metadata": {
1094 | "kernelspec": {
1095 | "display_name": "Python 3",
1096 | "language": "python",
1097 | "name": "python3"
1098 | },
1099 | "language_info": {
1100 | "codemirror_mode": {
1101 | "name": "ipython",
1102 | "version": 3
1103 | },
1104 | "file_extension": ".py",
1105 | "mimetype": "text/x-python",
1106 | "name": "python",
1107 | "nbconvert_exporter": "python",
1108 | "pygments_lexer": "ipython3",
1109 | "version": "3.7.6"
1110 | }
1111 | },
1112 | "nbformat": 4,
1113 | "nbformat_minor": 4
1114 | }
1115 |
--------------------------------------------------------------------------------
/config.py:
--------------------------------------------------------------------------------
1 | year = 23
2 | total_num = 30000
3 | # 进程数根据CPU和内存能力设置
4 | # step=30000/进程数
5 | #开30进程
6 | download_step = 1000
7 | #开30进程
8 | pdf2text_step = 1000
9 | #你的学校
10 | your_university= 'Huazhong University of Science and Technology'
11 | #TesseractOCR路径
12 | TesseractOCR_path = 'E:/prog/TesseractOCR/tesseract.exe'
13 |
--------------------------------------------------------------------------------
/download.py:
--------------------------------------------------------------------------------
1 | """
2 | 爬取美赛获奖证书,并以控制号命名
3 | 只运行一次部分下载会失败,需要运行多次,确保全部下载
4 | """
5 | import os
6 | import requests
7 | from multiprocessing import Process
8 | from random import shuffle
9 | from config import *
10 |
11 |
12 | class CMcmCertificateCrawler():
13 | def __init__(self, contol_nmuber):
14 | self.headers = {
15 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
16 | 'Chrome/73.0.3683.103 Safari/537.36'
17 | }
18 | self.control_number = contol_nmuber
19 |
20 | def FGetResponse(self):
21 | url = "http://www.comap-math.com/mcm/20" + str(year) + "Certs/" + str(self.control_number) + ".pdf"
22 | response = requests.get(url=url, headers=self.headers)
23 | # print(response.status_code)
24 | return response
25 |
26 | def FSavePDF(self, control_number):
27 | # 下载证书PDF
28 | try:
29 | path = './paper_20' + str(year) + '/' + str(control_number) + '.pdf'
30 | response = self.FGetResponse()
31 | # print(response.status_code)
32 | if response.status_code != 404:
33 | with open(path, 'wb') as f:
34 | f.write(response.content)
35 | print(str(control_number) + ".pdf" + "存储成功")
36 | else:
37 | print(control_number, ' -- 404')
38 | except Exception:
39 | print("Exception")
40 |
41 |
42 | def download(start, end):
43 | for control_number in range(start, end):
44 | control_number = '%05d' % control_number
45 | control_number = year * 100000 + int(control_number)
46 | mcc = CMcmCertificateCrawler(control_number)
47 | mcc.FSavePDF(control_number)
48 |
49 |
50 | def downloadlist(control_number_list):
51 | for control_number in control_number_list:
52 | mcc = CMcmCertificateCrawler(control_number)
53 | mcc.FSavePDF(control_number)
54 |
55 |
56 | if __name__ == '__main__':
57 | all_control_list = []
58 | for control_number in range(1, total_num):
59 | control_number = '%05d' % control_number
60 | control_number = year * 100000 + int(control_number)
61 | all_control_list.append(control_number)
62 |
63 | dir = './paper_20' + str(year) + '/'
64 | if not os.path.exists(dir):
65 | os.mkdir(dir)
66 | download_filelist = os.listdir(dir)
67 | for filename in download_filelist:
68 | filenum = int(filename[0:7])
69 | print(filenum)
70 | filesize = os.path.getsize(dir + filename)
71 | if filesize:
72 | all_control_list.remove(filenum)
73 |
74 | step = download_step
75 | shuffle(all_control_list)
76 | for i in range(0, len(all_control_list), step):
77 | start = i
78 | end = i + step - 1
79 | control_numbers = all_control_list[start:end]
80 | p = Process(target=downloadlist, args=(control_numbers,))
81 | p.start()
82 |
--------------------------------------------------------------------------------
/exception.txt:
--------------------------------------------------------------------------------
1 | 2308010
--------------------------------------------------------------------------------
/gitpush.bat:
--------------------------------------------------------------------------------
1 | git add .
2 | git commit -m "update"
3 | git push -u origin master
--------------------------------------------------------------------------------
/pdf2text.py:
--------------------------------------------------------------------------------
1 | """
2 | 美赛获奖证书信息OCR
3 | """
4 |
5 | import fitz
6 | import PIL
7 | import pytesseract
8 | import os
9 | from multiprocessing import Process
10 | import re
11 | from config import *
12 |
13 | pytesseract.pytesseract.tesseract_cmd = TesseractOCR_path
14 |
15 |
16 | def pdf2text(pdfPath, control_number, zoom_x=6, zoom_y=6, rotation_angle=0):
17 | students = ['']
18 | university = ''
19 | prize = ''
20 | advisor = ''
21 | try:
22 | # 打开PDF文件
23 | pdf = fitz.open(pdfPath)
24 | # 逐页读取PDF
25 | for pg in range(0, pdf.pageCount):
26 | page = pdf[pg]
27 | rect = page.rect
28 | clip = fitz.Rect(rect.width * 0.25, rect.height * 0.27,
29 | rect.width * 0.8, rect.height * 0.7)
30 | trans = fitz.Matrix(zoom_x, zoom_y).prerotate(rotation_angle)
31 | pix = page.get_pixmap(matrix=trans, alpha=False, clip=clip)
32 | img = PIL.Image.frombytes("RGB", [pix.width, pix.height], pix.samples)
33 | # pix.save("test.png")
34 | text = pytesseract.image_to_string(img)
35 | text = text.split('\n')
36 | text = [s for s in text if s]
37 | # print(text)
38 | try:
39 | students_index = text.index('With Student Advisor')
40 | advisor_index = text.index('With Student Advisor') + 1
41 | except:
42 | try:
43 | students_index = text.index('With Faculty Advisor')
44 | advisor_index = text.index('With Faculty Advisor') + 1
45 | except:
46 | try:
47 | students_index = text.index('Of') - 1
48 | advisor_index = text.index('Of') - 1
49 | except:
50 | students_index = text.index('Was Designated As') - 3
51 | advisor_index = text.index('Was Designated As') - 2
52 | # print(students_index)
53 | # print(advisor_index)
54 | try:
55 | univ_index = text.index('Was Designated As') - 1
56 | students = text[0:students_index]
57 | advisor = text[advisor_index]
58 | university = text[univ_index]
59 | except:
60 | students = text[0:3]
61 | advisor = text[4]
62 | university = text[5]
63 | prize = text[-1]
64 |
65 | pdf.close()
66 | except:
67 | print(control_number, 'Exception')
68 | with open('exception.txt', 'w+') as exception_file:
69 | exception_file.write(str(control_number))
70 |
71 | university = university.replace(',', ' ').replace('1', 'i')
72 | prize = prize.replace(',', ' ')
73 | advisor = advisor.replace(',', ' ').replace('1', 'i')
74 | stus = []
75 | for student in students:
76 | student = student.replace(',', ' ').replace('1', 'i')
77 | stus.append(student)
78 | return stus, advisor, university, prize
79 |
80 |
81 | def savetext(start, end, count):
82 | global logger
83 | all_data = ''
84 | your_university_data = ''
85 | for control_number in range(start, end):
86 | control_number = '%05d' % control_number
87 | control_number = year * 100000 + int(control_number)
88 | path = "./paper_20" + str(year) + "/" + str(control_number) + ".pdf"
89 | # print(path)
90 | if os.path.exists(path) and os.path.getsize(path) > 0:
91 | students, advisor, university, prize = pdf2text(path, control_number)
92 | if prize:
93 | if len(students) == 0:
94 | students = ', , '
95 | elif len(students) == 1:
96 | students = ','.join(students) + ', , '
97 | elif len(students) == 2:
98 | students = ','.join(students) + ', '
99 | elif len(students) == 3:
100 | students = ','.join(students)
101 | elif len(students) > 3:
102 | students = students[0:3]
103 | students = ','.join(students)
104 |
105 | row = '%s,%s,%s,%s,%s,\n' % (control_number, students, advisor, university, prize)
106 | row = row.encode('gbk', 'backslashreplace').decode('gbk', 'backslashreplace')
107 | try:
108 | print(row)
109 | except:
110 | print(control_number, ' -- gbk encoding error')
111 |
112 | all_data += row
113 | if university == your_university:
114 | your_university_data += row
115 |
116 | with open('./all/tmp' + str(count) + '.txt', 'w', encoding='utf-8') as all_file:
117 | # all_data = all_data.encode('utf-8')
118 | all_file.write(all_data)
119 | print('./all/tmp' + str(count) + '.txt save sucessfully')
120 | with open('./your_university/tmp' + str(count) + '.txt', 'w', encoding='utf-8') as your_university_file:
121 | your_university_file.write(your_university_data)
122 | print('./your_university/tmp' + str(count) + '.txt save sucessfully')
123 |
124 |
125 | if __name__ == '__main__':
126 | if not os.path.exists('./all/'):
127 | os.mkdir('./all/')
128 | if not os.path.exists('./your_university/'):
129 | os.mkdir('./your_university/')
130 |
131 | step = pdf2text_step
132 | count = 1
133 | for i in range(1, total_num, step):
134 | start = i
135 | end = i + step - 1
136 | p = Process(target=savetext, args=(start, end, count))
137 | p.start()
138 | count += 1
139 |
140 | # students, advisor, university, prize = pdf2text('./paper_2023/2300009.pdf', 2300009)
141 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | requests==2.22.0
2 | pytesseract==0.3.9
3 | fitz==0.0.1.dev2
4 | PyMuPDF==1.19.6
5 |
--------------------------------------------------------------------------------
/txt_joint.py:
--------------------------------------------------------------------------------
1 | import os
2 | import re
3 | from config import year
4 |
5 | def txtjoint(dir):
6 | files = os.listdir(dir)
7 | res = 'control_number,student1,student2,student3,advisor,university,prize,,,\n'
8 |
9 | for file in files:
10 | if re.search('^tmp(\d+).txt',file):
11 | with open(dir + file, "r", encoding='utf-8') as f:
12 | content = f.read()
13 | # content = content.lower()
14 | res += content
15 |
16 | with open(dir + "all_20"+str(year)+".txt", "w", encoding='utf-8') as outFile:
17 | outFile.write(res)
18 | print('txtjoint sucessfully')
19 |
20 | # 合并文件
21 | all_dir = "./all/"
22 | your_university_dir = './your_university/'
23 | txtjoint(all_dir)
24 | txtjoint(your_university_dir)
--------------------------------------------------------------------------------
/统计结果.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/personqianduixue/comap_crawler_2023/6ec3537cd279d39d80f4be73b5589477a29defc2/统计结果.png
--------------------------------------------------------------------------------