From edb38f6b59eaf4a8e89826b891b7638d1940f480 Mon Sep 17 00:00:00 2001 From: anahiolmos Date: Mon, 22 Aug 2022 17:37:39 -0500 Subject: [PATCH] Proyecto 2 --- ...ion-Importacion_Electricidad_SIN-BCA.ipynb | 2489 ++++++ README.md | 70 +- WebScraping_WTA-Ranking.ipynb | 6883 +++++++++++++++++ csv/.DS_Store | Bin 0 -> 6148 bytes csv/API_julio_imp_exp.csv | 3721 +++++++++ csv/WebScraping_RankingDoubles.csv | 21 + csv/WebScraping_RankingSingle.csv | 21 + 7 files changed, 13174 insertions(+), 31 deletions(-) create mode 100644 API_Exportacion-Importacion_Electricidad_SIN-BCA.ipynb create mode 100644 WebScraping_WTA-Ranking.ipynb create mode 100644 csv/.DS_Store create mode 100644 csv/API_julio_imp_exp.csv create mode 100644 csv/WebScraping_RankingDoubles.csv create mode 100644 csv/WebScraping_RankingSingle.csv diff --git a/API_Exportacion-Importacion_Electricidad_SIN-BCA.ipynb b/API_Exportacion-Importacion_Electricidad_SIN-BCA.ipynb new file mode 100644 index 0000000..5b08cfb --- /dev/null +++ b/API_Exportacion-Importacion_Electricidad_SIN-BCA.ipynb @@ -0,0 +1,2489 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ac781cb6", + "metadata": {}, + "source": [ + "# Proyecto 2: API\n", + "\n", + "API de la información de las Cantidades Asignadas de Importación y Exportación de electricidad del Sistema Interconectado Nacional (SIN) en el período del 01 al 31 julio de 2022. \n", + "\n", + "Información obtenida del Centro Nacional de Control de Energía (CENACE).\n", + "\n", + "*Nota:* las peticiones del SIN son diferentes a las de Baja California, por lo que se hace doble petición para el mismo período de tiempo." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "21ec42a7", + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "import time\n", + "import pandas as pd" + ] + }, + { + "cell_type": "markdown", + "id": "3e6775ac", + "metadata": {}, + "source": [ + "Requests\n", + "-------" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "c28383a2", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_1 = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/01/2022/07/06/JSON')\n", + "res_1.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "57a48e45", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_1BC = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/BCA/MDA/2022/07/01/2022/07/06/JSON')\n", + "res_1BC.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "aa0089ab", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_2 = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/07/2022/07/10/JSON')\n", + "res_2.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "df604bf8", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_2BC = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/BCA/MDA/2022/07/07/2022/07/10/JSON')\n", + "res_2BC.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "c2d12186", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_3 = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/11/2022/07/15/JSON')\n", + "res_3.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "3f74246d", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_3BC = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/11/2022/07/15/JSON')\n", + "res_3BC.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "ff2d88a6", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_4 = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/16/2022/07/19/JSON')\n", + "res_4.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "ade3e07b", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_4BC = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/16/2022/07/19/JSON')\n", + "res_4BC.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "0ce759c3", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_5 = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/20/2022/07/23/JSON')\n", + "res_5.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "3388c4cf", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_5BC = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/20/2022/07/23/JSON')\n", + "res_5BC.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "2e653173", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_6 = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/24/2022/07/27/JSON')\n", + "res_6.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "727d38a1", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_6BC = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/24/2022/07/27/JSON')\n", + "res_6BC.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "31cf0cdf", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_7 = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/28/2022/07/30/JSON')\n", + "res_7.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "4cd1a6bb", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_7BC = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/28/2022/07/30/JSON')\n", + "res_7BC.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "4359105e", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_8 = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/31/2022/07/31/JSON')\n", + "res_8.status_code" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "0305bb31", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "200" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res_8BC = requests.get('https://ws01.cenace.gob.mx:8082/SWEAIMPEX/SIM/SIN/MDA/2022/07/31/2022/07/31/JSON')\n", + "res_8BC.status_code" + ] + }, + { + "cell_type": "markdown", + "id": "0a7fb145", + "metadata": {}, + "source": [ + "JSON data\n", + "-------" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "8c0a28d5", + "metadata": {}, + "outputs": [], + "source": [ + "# Sistema Interconectado Nacional\n", + "res_1_json = res_1.json()\n", + "res_2_json = res_2.json()\n", + "res_3_json = res_3.json()\n", + "res_4_json = res_4.json()\n", + "res_5_json = res_5.json()\n", + "res_6_json = res_6.json()\n", + "res_7_json = res_7.json()\n", + "res_8_json = res_8.json()\n", + "\n", + "# Baja California\n", + "res_1BC_json = res_1BC.json()\n", + "res_2BC_json = res_2BC.json()\n", + "res_3BC_json = res_3BC.json()\n", + "res_4BC_json = res_4BC.json()\n", + "res_5BC_json = res_5BC.json()\n", + "res_6BC_json = res_6BC.json()\n", + "res_7BC_json = res_7BC.json()\n", + "res_8BC_json = res_8BC.json()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "efe019ca", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
statusnombreprocesosistemaareaResultados
0OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'CD INDUSTRIAL - LAREDO AMER', ...
1OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'CUMBRES FRONTERA - RAIL ROAD',...
2OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'PIEDRAS NEGRAS - EAGLE PASS', ...
3OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'TAPACHULA-LOS BRILLANTES', 'Va...
4OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'XULHA-BELICE', 'Valores': [{'f...
5OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'CD INDUSTRIAL - LAREDO AMER', ...
6OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'CUMBRES FRONTERA - RAIL ROAD',...
7OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'PIEDRAS NEGRAS - EAGLE PASS', ...
8OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'TAPACHULA-LOS BRILLANTES', 'Va...
9OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'XULHA-BELICE', 'Valores': [{'f...
10OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'CD INDUSTRIAL - LAREDO AMER', ...
11OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'CUMBRES FRONTERA - RAIL ROAD',...
12OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'PIEDRAS NEGRAS - EAGLE PASS', ...
13OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'TAPACHULA-LOS BRILLANTES', 'Va...
14OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'XULHA-BELICE', 'Valores': [{'f...
15OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'CD INDUSTRIAL - LAREDO AMER', ...
16OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'CUMBRES FRONTERA - RAIL ROAD',...
17OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'PIEDRAS NEGRAS - EAGLE PASS', ...
18OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'TAPACHULA-LOS BRILLANTES', 'Va...
19OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'XULHA-BELICE', 'Valores': [{'f...
20OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'CD INDUSTRIAL - LAREDO AMER', ...
21OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'CUMBRES FRONTERA - RAIL ROAD',...
22OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'PIEDRAS NEGRAS - EAGLE PASS', ...
23OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'TAPACHULA-LOS BRILLANTES', 'Va...
24OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'XULHA-BELICE', 'Valores': [{'f...
25OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'CD INDUSTRIAL - LAREDO AMER', ...
26OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'CUMBRES FRONTERA - RAIL ROAD',...
27OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'PIEDRAS NEGRAS - EAGLE PASS', ...
28OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'TAPACHULA-LOS BRILLANTES', 'Va...
29OKEnergía Asignada de Importación y ExportaciónMDASINPÚBLICA{'enlace_int': 'XULHA-BELICE', 'Valores': [{'f...
\n", + "
" + ], + "text/plain": [ + " status nombre proceso sistema \\\n", + "0 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "1 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "2 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "3 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "4 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "5 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "6 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "7 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "8 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "9 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "10 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "11 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "12 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "13 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "14 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "15 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "16 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "17 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "18 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "19 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "20 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "21 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "22 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "23 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "24 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "25 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "26 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "27 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "28 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "29 OK Energía Asignada de Importación y Exportación MDA SIN \n", + "\n", + " area Resultados \n", + "0 PÚBLICA {'enlace_int': 'CD INDUSTRIAL - LAREDO AMER', ... \n", + "1 PÚBLICA {'enlace_int': 'CUMBRES FRONTERA - RAIL ROAD',... \n", + "2 PÚBLICA {'enlace_int': 'PIEDRAS NEGRAS - EAGLE PASS', ... \n", + "3 PÚBLICA {'enlace_int': 'TAPACHULA-LOS BRILLANTES', 'Va... \n", + "4 PÚBLICA {'enlace_int': 'XULHA-BELICE', 'Valores': [{'f... \n", + "5 PÚBLICA {'enlace_int': 'CD INDUSTRIAL - LAREDO AMER', ... \n", + "6 PÚBLICA {'enlace_int': 'CUMBRES FRONTERA - RAIL ROAD',... \n", + "7 PÚBLICA {'enlace_int': 'PIEDRAS NEGRAS - EAGLE PASS', ... \n", + "8 PÚBLICA {'enlace_int': 'TAPACHULA-LOS BRILLANTES', 'Va... \n", + "9 PÚBLICA {'enlace_int': 'XULHA-BELICE', 'Valores': [{'f... \n", + "10 PÚBLICA {'enlace_int': 'CD INDUSTRIAL - LAREDO AMER', ... \n", + "11 PÚBLICA {'enlace_int': 'CUMBRES FRONTERA - RAIL ROAD',... \n", + "12 PÚBLICA {'enlace_int': 'PIEDRAS NEGRAS - EAGLE PASS', ... \n", + "13 PÚBLICA {'enlace_int': 'TAPACHULA-LOS BRILLANTES', 'Va... \n", + "14 PÚBLICA {'enlace_int': 'XULHA-BELICE', 'Valores': [{'f... \n", + "15 PÚBLICA {'enlace_int': 'CD INDUSTRIAL - LAREDO AMER', ... \n", + "16 PÚBLICA {'enlace_int': 'CUMBRES FRONTERA - RAIL ROAD',... \n", + "17 PÚBLICA {'enlace_int': 'PIEDRAS NEGRAS - EAGLE PASS', ... \n", + "18 PÚBLICA {'enlace_int': 'TAPACHULA-LOS BRILLANTES', 'Va... \n", + "19 PÚBLICA {'enlace_int': 'XULHA-BELICE', 'Valores': [{'f... \n", + "20 PÚBLICA {'enlace_int': 'CD INDUSTRIAL - LAREDO AMER', ... \n", + "21 PÚBLICA {'enlace_int': 'CUMBRES FRONTERA - RAIL ROAD',... \n", + "22 PÚBLICA {'enlace_int': 'PIEDRAS NEGRAS - EAGLE PASS', ... \n", + "23 PÚBLICA {'enlace_int': 'TAPACHULA-LOS BRILLANTES', 'Va... \n", + "24 PÚBLICA {'enlace_int': 'XULHA-BELICE', 'Valores': [{'f... \n", + "25 PÚBLICA {'enlace_int': 'CD INDUSTRIAL - LAREDO AMER', ... \n", + "26 PÚBLICA {'enlace_int': 'CUMBRES FRONTERA - RAIL ROAD',... \n", + "27 PÚBLICA {'enlace_int': 'PIEDRAS NEGRAS - EAGLE PASS', ... \n", + "28 PÚBLICA {'enlace_int': 'TAPACHULA-LOS BRILLANTES', 'Va... \n", + "29 PÚBLICA {'enlace_int': 'XULHA-BELICE', 'Valores': [{'f... " + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.DataFrame(res_1_json)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "dbfd586b", + "metadata": {}, + "outputs": [], + "source": [ + "# Sistema Interconectado Nacional\n", + "resultados_1 = res_1_json['Resultados']\n", + "resultados_2 = res_2_json['Resultados']\n", + "resultados_3 = res_3_json['Resultados']\n", + "resultados_4 = res_4_json['Resultados']\n", + "resultados_5 = res_5_json['Resultados']\n", + "resultados_6 = res_6_json['Resultados']\n", + "resultados_7 = res_7_json['Resultados']\n", + "resultados_8 = res_8_json['Resultados']\n", + "\n", + "# Baja California\n", + "resultados_1BC = res_1BC_json['Resultados']\n", + "resultados_2BC = res_2BC_json['Resultados']\n", + "resultados_3BC = res_3BC_json['Resultados']\n", + "resultados_4BC = res_4BC_json['Resultados']\n", + "resultados_5BC = res_5BC_json['Resultados']\n", + "resultados_6BC = res_6BC_json['Resultados']\n", + "resultados_7BC = res_7BC_json['Resultados']\n", + "resultados_8BC = res_8BC_json['Resultados']" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "d1fb6ec7", + "metadata": {}, + "outputs": [], + "source": [ + "# Sistema Interconectado Nacional\n", + "df_1 = pd.json_normalize(data=resultados_1, record_path='Valores', meta=['enlace_int'])\n", + "df_2 = pd.json_normalize(data=resultados_2, record_path='Valores', meta=['enlace_int'])\n", + "df_3 = pd.json_normalize(data=resultados_3, record_path='Valores', meta=['enlace_int'])\n", + "df_4 = pd.json_normalize(data=resultados_4, record_path='Valores', meta=['enlace_int'])\n", + "df_5 = pd.json_normalize(data=resultados_5, record_path='Valores', meta=['enlace_int'])\n", + "df_6 = pd.json_normalize(data=resultados_6, record_path='Valores', meta=['enlace_int'])\n", + "df_7 = pd.json_normalize(data=resultados_7, record_path='Valores', meta=['enlace_int'])\n", + "df_8 = pd.json_normalize(data=resultados_8, record_path='Valores', meta=['enlace_int'])\n", + "\n", + "# Baja California\n", + "df_1BC = pd.json_normalize(data=resultados_1BC, record_path='Valores', meta=['enlace_int'])\n", + "df_2BC = pd.json_normalize(data=resultados_2BC, record_path='Valores', meta=['enlace_int'])\n", + "df_3BC = pd.json_normalize(data=resultados_3BC, record_path='Valores', meta=['enlace_int'])\n", + "df_4BC = pd.json_normalize(data=resultados_4BC, record_path='Valores', meta=['enlace_int'])\n", + "df_5BC = pd.json_normalize(data=resultados_5BC, record_path='Valores', meta=['enlace_int'])\n", + "df_6BC = pd.json_normalize(data=resultados_6BC, record_path='Valores', meta=['enlace_int'])\n", + "df_7BC = pd.json_normalize(data=resultados_7BC, record_path='Valores', meta=['enlace_int'])\n", + "df_8BC = pd.json_normalize(data=resultados_8BC, record_path='Valores', meta=['enlace_int'])" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "68030ab8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "720\n", + "480\n", + "600\n", + "480\n", + "480\n", + "480\n", + "360\n", + "120\n", + "------\n", + "suma filas SIN: 3720\n", + "----------------\n", + "288\n", + "192\n", + "600\n", + "480\n", + "480\n", + "480\n", + "360\n", + "120\n", + "------\n", + "suma filas Baja California: 3000\n" + ] + } + ], + "source": [ + "# Sistema Interconectado Nacional\n", + "print(len(df_1))\n", + "print(len(df_2))\n", + "print(len(df_3))\n", + "print(len(df_4))\n", + "print(len(df_5))\n", + "print(len(df_6))\n", + "print(len(df_7))\n", + "print(len(df_8))\n", + "print('------')\n", + "print(f'suma filas SIN: {len(df_1)+len(df_2)+len(df_3)+len(df_4)+len(df_5)+len(df_6)+len(df_7)+len(df_8)}')\n", + "\n", + "print('----------------')\n", + "\n", + "# Baja California\n", + "print(len(df_1BC))\n", + "print(len(df_2BC))\n", + "print(len(df_3BC))\n", + "print(len(df_4BC))\n", + "print(len(df_5BC))\n", + "print(len(df_6BC))\n", + "print(len(df_7BC))\n", + "print(len(df_8BC))\n", + "print('------')\n", + "print(f'suma filas Baja California: {len(df_1BC)+len(df_2BC)+len(df_3BC)+len(df_4BC)+len(df_5BC)+len(df_6BC)+len(df_7BC)+len(df_8BC)}')" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "8e9d10b8", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
fechahoraimp_comer_asigimp_asig_ener_inadimp_asig_confimp_asig_cilimp_totalexp_comer_asigexp_asig_ener_inadexp_asig_confexp_asig_cilexp_totalenlace_int
02022/07/0110000000000CD INDUSTRIAL - LAREDO AMER
12022/07/0120000000000CD INDUSTRIAL - LAREDO AMER
22022/07/0130000000000CD INDUSTRIAL - LAREDO AMER
32022/07/0140000000000CD INDUSTRIAL - LAREDO AMER
42022/07/0150000000000CD INDUSTRIAL - LAREDO AMER
\n", + "
" + ], + "text/plain": [ + " fecha hora imp_comer_asig imp_asig_ener_inad imp_asig_conf \\\n", + "0 2022/07/01 1 0 0 0 \n", + "1 2022/07/01 2 0 0 0 \n", + "2 2022/07/01 3 0 0 0 \n", + "3 2022/07/01 4 0 0 0 \n", + "4 2022/07/01 5 0 0 0 \n", + "\n", + " imp_asig_cil imp_total exp_comer_asig exp_asig_ener_inad exp_asig_conf \\\n", + "0 0 0 0 0 0 \n", + "1 0 0 0 0 0 \n", + "2 0 0 0 0 0 \n", + "3 0 0 0 0 0 \n", + "4 0 0 0 0 0 \n", + "\n", + " exp_asig_cil exp_total enlace_int \n", + "0 0 0 CD INDUSTRIAL - LAREDO AMER \n", + "1 0 0 CD INDUSTRIAL - LAREDO AMER \n", + "2 0 0 CD INDUSTRIAL - LAREDO AMER \n", + "3 0 0 CD INDUSTRIAL - LAREDO AMER \n", + "4 0 0 CD INDUSTRIAL - LAREDO AMER " + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_1.head()" + ] + }, + { + "cell_type": "markdown", + "id": "892e4657", + "metadata": {}, + "source": [ + "DataFrame\n", + "-------" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "8e93116a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
fechahoraimp_comer_asigimp_asig_ener_inadimp_asig_confimp_asig_cilimp_totalexp_comer_asigexp_asig_ener_inadexp_asig_confexp_asig_cilexp_totalenlace_int
02022/07/0110000000000CD INDUSTRIAL - LAREDO AMER
12022/07/0120000000000CD INDUSTRIAL - LAREDO AMER
22022/07/0130000000000CD INDUSTRIAL - LAREDO AMER
32022/07/0140000000000CD INDUSTRIAL - LAREDO AMER
42022/07/0150000000000CD INDUSTRIAL - LAREDO AMER
..........................................
1152022/07/3120000002200022XULHA-BELICE
1162022/07/3121000003200032XULHA-BELICE
1172022/07/3122000003200032XULHA-BELICE
1182022/07/3123000003200032XULHA-BELICE
1192022/07/3124000003000030XULHA-BELICE
\n", + "

6720 rows × 13 columns

\n", + "
" + ], + "text/plain": [ + " fecha hora imp_comer_asig imp_asig_ener_inad imp_asig_conf \\\n", + "0 2022/07/01 1 0 0 0 \n", + "1 2022/07/01 2 0 0 0 \n", + "2 2022/07/01 3 0 0 0 \n", + "3 2022/07/01 4 0 0 0 \n", + "4 2022/07/01 5 0 0 0 \n", + ".. ... ... ... ... ... \n", + "115 2022/07/31 20 0 0 0 \n", + "116 2022/07/31 21 0 0 0 \n", + "117 2022/07/31 22 0 0 0 \n", + "118 2022/07/31 23 0 0 0 \n", + "119 2022/07/31 24 0 0 0 \n", + "\n", + " imp_asig_cil imp_total exp_comer_asig exp_asig_ener_inad exp_asig_conf \\\n", + "0 0 0 0 0 0 \n", + "1 0 0 0 0 0 \n", + "2 0 0 0 0 0 \n", + "3 0 0 0 0 0 \n", + "4 0 0 0 0 0 \n", + ".. ... ... ... ... ... \n", + "115 0 0 22 0 0 \n", + "116 0 0 32 0 0 \n", + "117 0 0 32 0 0 \n", + "118 0 0 32 0 0 \n", + "119 0 0 30 0 0 \n", + "\n", + " exp_asig_cil exp_total enlace_int \n", + "0 0 0 CD INDUSTRIAL - LAREDO AMER \n", + "1 0 0 CD INDUSTRIAL - LAREDO AMER \n", + "2 0 0 CD INDUSTRIAL - LAREDO AMER \n", + "3 0 0 CD INDUSTRIAL - LAREDO AMER \n", + "4 0 0 CD INDUSTRIAL - LAREDO AMER \n", + ".. ... ... ... \n", + "115 0 22 XULHA-BELICE \n", + "116 0 32 XULHA-BELICE \n", + "117 0 32 XULHA-BELICE \n", + "118 0 32 XULHA-BELICE \n", + "119 0 30 XULHA-BELICE \n", + "\n", + "[6720 rows x 13 columns]" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# un solo df\n", + "df_todo = pd.concat([df_1, df_1BC,\n", + " df_2, df_2BC,\n", + " df_3, df_3BC,\n", + " df_4, df_4BC,\n", + " df_5, df_5BC,\n", + " df_6, df_6BC,\n", + " df_7, df_7BC,\n", + " df_8, df_8BC])\n", + "\n", + "df_todo" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "6100f4b5", + "metadata": {}, + "outputs": [], + "source": [ + "# remove 'enlace int'\n", + "col_enlace = df_todo.pop('enlace_int')" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "f44e9720", + "metadata": {}, + "outputs": [], + "source": [ + "# agregar 'enlace_int' al principio\n", + "df_todo.insert(0, 'enlace_int', col_enlace)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "f9c88b7f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
enlace_intfechahoraimp_comer_asigimp_asig_ener_inadimp_asig_confimp_asig_cilimp_totalexp_comer_asigexp_asig_ener_inadexp_asig_confexp_asig_cilexp_total
115XULHA-BELICE2022/07/3120000002200022
116XULHA-BELICE2022/07/3121000003200032
117XULHA-BELICE2022/07/3122000003200032
118XULHA-BELICE2022/07/3123000003200032
119XULHA-BELICE2022/07/3124000003000030
\n", + "
" + ], + "text/plain": [ + " enlace_int fecha hora imp_comer_asig imp_asig_ener_inad \\\n", + "115 XULHA-BELICE 2022/07/31 20 0 0 \n", + "116 XULHA-BELICE 2022/07/31 21 0 0 \n", + "117 XULHA-BELICE 2022/07/31 22 0 0 \n", + "118 XULHA-BELICE 2022/07/31 23 0 0 \n", + "119 XULHA-BELICE 2022/07/31 24 0 0 \n", + "\n", + " imp_asig_conf imp_asig_cil imp_total exp_comer_asig exp_asig_ener_inad \\\n", + "115 0 0 0 22 0 \n", + "116 0 0 0 32 0 \n", + "117 0 0 0 32 0 \n", + "118 0 0 0 32 0 \n", + "119 0 0 0 30 0 \n", + "\n", + " exp_asig_conf exp_asig_cil exp_total \n", + "115 0 0 22 \n", + "116 0 0 32 \n", + "117 0 0 32 \n", + "118 0 0 32 \n", + "119 0 0 30 " + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_todo.tail()" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "1f83060a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
enlace_intfechahoraimp_totalexp_total
0CD INDUSTRIAL - LAREDO AMER2022/07/01100
1CD INDUSTRIAL - LAREDO AMER2022/07/01200
2CD INDUSTRIAL - LAREDO AMER2022/07/01300
3CD INDUSTRIAL - LAREDO AMER2022/07/01400
4CD INDUSTRIAL - LAREDO AMER2022/07/01500
\n", + "
" + ], + "text/plain": [ + " enlace_int fecha hora imp_total exp_total\n", + "0 CD INDUSTRIAL - LAREDO AMER 2022/07/01 1 0 0\n", + "1 CD INDUSTRIAL - LAREDO AMER 2022/07/01 2 0 0\n", + "2 CD INDUSTRIAL - LAREDO AMER 2022/07/01 3 0 0\n", + "3 CD INDUSTRIAL - LAREDO AMER 2022/07/01 4 0 0\n", + "4 CD INDUSTRIAL - LAREDO AMER 2022/07/01 5 0 0" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# df solo de las columnas de nombre del enlace internacional ('enlace_int')\n", + "# fecha, hora y\n", + "# totales de importación ('imp_total') y exportación ('exp_total')\n", + "\n", + "df_imp_exp = df_todo[['enlace_int', 'fecha', 'hora', 'imp_total', 'exp_total']]\n", + "df_imp_exp.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "7699649c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
enlace_intfechahoraimp_totalexp_total
115XULHA-BELICE2022/07/3120022
116XULHA-BELICE2022/07/3121032
117XULHA-BELICE2022/07/3122032
118XULHA-BELICE2022/07/3123032
119XULHA-BELICE2022/07/3124030
\n", + "
" + ], + "text/plain": [ + " enlace_int fecha hora imp_total exp_total\n", + "115 XULHA-BELICE 2022/07/31 20 0 22\n", + "116 XULHA-BELICE 2022/07/31 21 0 32\n", + "117 XULHA-BELICE 2022/07/31 22 0 32\n", + "118 XULHA-BELICE 2022/07/31 23 0 32\n", + "119 XULHA-BELICE 2022/07/31 24 0 30" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_imp_exp.tail()" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "9d0f2115", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/5f/rym0wm0n03n2y1710sg1wy940000gn/T/ipykernel_28060/122262573.py:2: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " df_imp_exp['imp_total'] = df_imp_exp['imp_total'].astype(dtype='int64')\n" + ] + } + ], + "source": [ + "# cambio de Dtype de 'imp_total' y 'exp_total' a int\n", + "df_imp_exp['imp_total'] = df_imp_exp['imp_total'].astype(dtype='int64')" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "93824c62", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/5f/rym0wm0n03n2y1710sg1wy940000gn/T/ipykernel_28060/1457477053.py:1: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " df_imp_exp['exp_total'] = df_imp_exp['exp_total'].astype(dtype='int64')\n" + ] + } + ], + "source": [ + "df_imp_exp['exp_total'] = df_imp_exp['exp_total'].astype(dtype='int64')" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "21a5a757", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Int64Index: 6720 entries, 0 to 119\n", + "Data columns (total 5 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 enlace_int 6720 non-null object\n", + " 1 fecha 6720 non-null object\n", + " 2 hora 6720 non-null object\n", + " 3 imp_total 6720 non-null int64 \n", + " 4 exp_total 6720 non-null int64 \n", + "dtypes: int64(2), object(3)\n", + "memory usage: 315.0+ KB\n" + ] + } + ], + "source": [ + "df_imp_exp.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "8da461ea", + "metadata": {}, + "outputs": [], + "source": [ + "# rename columnas\n", + "\n", + "df_julio = df_imp_exp.rename(columns = {\n", + " 'enlace_int': 'Enlace Internacional',\n", + " 'fecha': 'Fecha',\n", + " 'hora': 'Hora',\n", + " 'imp_total': 'Cantidad de Energia Asignada de Importacion (MWh)',\n", + " 'exp_total': 'Cantidad de Energia Asignada de Exportacion (MWh)'});" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "02243d19", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Enlace InternacionalFechaHoraCantidad de Energia Asignada de Importacion (MWh)Cantidad de Energia Asignada de Exportacion (MWh)
0CD INDUSTRIAL - LAREDO AMER2022/07/01100
1CD INDUSTRIAL - LAREDO AMER2022/07/01200
2CD INDUSTRIAL - LAREDO AMER2022/07/01300
3CD INDUSTRIAL - LAREDO AMER2022/07/01400
4CD INDUSTRIAL - LAREDO AMER2022/07/01500
5CD INDUSTRIAL - LAREDO AMER2022/07/01600
6CD INDUSTRIAL - LAREDO AMER2022/07/01700
7CD INDUSTRIAL - LAREDO AMER2022/07/01800
8CD INDUSTRIAL - LAREDO AMER2022/07/01900
9CD INDUSTRIAL - LAREDO AMER2022/07/011000
\n", + "
" + ], + "text/plain": [ + " Enlace Internacional Fecha Hora \\\n", + "0 CD INDUSTRIAL - LAREDO AMER 2022/07/01 1 \n", + "1 CD INDUSTRIAL - LAREDO AMER 2022/07/01 2 \n", + "2 CD INDUSTRIAL - LAREDO AMER 2022/07/01 3 \n", + "3 CD INDUSTRIAL - LAREDO AMER 2022/07/01 4 \n", + "4 CD INDUSTRIAL - LAREDO AMER 2022/07/01 5 \n", + "5 CD INDUSTRIAL - LAREDO AMER 2022/07/01 6 \n", + "6 CD INDUSTRIAL - LAREDO AMER 2022/07/01 7 \n", + "7 CD INDUSTRIAL - LAREDO AMER 2022/07/01 8 \n", + "8 CD INDUSTRIAL - LAREDO AMER 2022/07/01 9 \n", + "9 CD INDUSTRIAL - LAREDO AMER 2022/07/01 10 \n", + "\n", + " Cantidad de Energia Asignada de Importacion (MWh) \\\n", + "0 0 \n", + "1 0 \n", + "2 0 \n", + "3 0 \n", + "4 0 \n", + "5 0 \n", + "6 0 \n", + "7 0 \n", + "8 0 \n", + "9 0 \n", + "\n", + " Cantidad de Energia Asignada de Exportacion (MWh) \n", + "0 0 \n", + "1 0 \n", + "2 0 \n", + "3 0 \n", + "4 0 \n", + "5 0 \n", + "6 0 \n", + "7 0 \n", + "8 0 \n", + "9 0 " + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_julio.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 225, + "id": "2332a8d8", + "metadata": {}, + "outputs": [], + "source": [ + "# Archivo csv\n", + "\n", + "df_julio.to_csv('csv/API_julio_imp_exp.csv', index=False)" + ] + }, + { + "cell_type": "markdown", + "id": "61e5e774", + "metadata": {}, + "source": [ + "--------" + ] + }, + { + "cell_type": "markdown", + "id": "71479c30", + "metadata": {}, + "source": [ + "Resumen información\n", + "-------" + ] + }, + { + "cell_type": "markdown", + "id": "07a02796", + "metadata": {}, + "source": [ + "**Suma de todos los enlaces internacionales:**" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "afdfd049", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Cantidad de Energia Asignada de Importacion (MWh)Cantidad de Energia Asignada de Exportacion (MWh)
Enlace Internacional
CD INDUSTRIAL - LAREDO AMER29766215
CUMBRES FRONTERA - RAIL ROAD6445678
LA ROSITA - IMPERIAL VALLEY13702151
PIEDRAS NEGRAS - EAGLE PASS00
TAPACHULA-LOS BRILLANTES650172355
TIJUANA - OTAY MESA1217789
XULHA-BELICE049678
TOTAL56939228166
\n", + "
" + ], + "text/plain": [ + " Cantidad de Energia Asignada de Importacion (MWh) \\\n", + "Enlace Internacional \n", + "CD INDUSTRIAL - LAREDO AMER 29766 \n", + "CUMBRES FRONTERA - RAIL ROAD 644 \n", + "LA ROSITA - IMPERIAL VALLEY 13702 \n", + "PIEDRAS NEGRAS - EAGLE PASS 0 \n", + "TAPACHULA-LOS BRILLANTES 650 \n", + "TIJUANA - OTAY MESA 12177 \n", + "XULHA-BELICE 0 \n", + "TOTAL 56939 \n", + "\n", + " Cantidad de Energia Asignada de Exportacion (MWh) \n", + "Enlace Internacional \n", + "CD INDUSTRIAL - LAREDO AMER 215 \n", + "CUMBRES FRONTERA - RAIL ROAD 5678 \n", + "LA ROSITA - IMPERIAL VALLEY 151 \n", + "PIEDRAS NEGRAS - EAGLE PASS 0 \n", + "TAPACHULA-LOS BRILLANTES 172355 \n", + "TIJUANA - OTAY MESA 89 \n", + "XULHA-BELICE 49678 \n", + "TOTAL 228166 " + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# suma de todos enlaces\n", + "df_suma_enlaces = df_julio.groupby(['Enlace Internacional']).sum()\n", + "df_total = df_suma_enlaces.append(df_suma_enlaces.sum().rename(\"TOTAL\"))\n", + "df_total" + ] + }, + { + "cell_type": "markdown", + "id": "1c19e4b8", + "metadata": {}, + "source": [ + "**Suma de todos los enlaces ordenados por importaciones:**" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "56e1e994", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Cantidad de Energia Asignada de Importacion (MWh)Cantidad de Energia Asignada de Exportacion (MWh)
Enlace Internacional
CD INDUSTRIAL - LAREDO AMER29766215
LA ROSITA - IMPERIAL VALLEY13702151
TIJUANA - OTAY MESA1217789
TAPACHULA-LOS BRILLANTES650172355
CUMBRES FRONTERA - RAIL ROAD6445678
PIEDRAS NEGRAS - EAGLE PASS00
XULHA-BELICE049678
TOTAL56939228166
\n", + "
" + ], + "text/plain": [ + " Cantidad de Energia Asignada de Importacion (MWh) \\\n", + "Enlace Internacional \n", + "CD INDUSTRIAL - LAREDO AMER 29766 \n", + "LA ROSITA - IMPERIAL VALLEY 13702 \n", + "TIJUANA - OTAY MESA 12177 \n", + "TAPACHULA-LOS BRILLANTES 650 \n", + "CUMBRES FRONTERA - RAIL ROAD 644 \n", + "PIEDRAS NEGRAS - EAGLE PASS 0 \n", + "XULHA-BELICE 0 \n", + "TOTAL 56939 \n", + "\n", + " Cantidad de Energia Asignada de Exportacion (MWh) \n", + "Enlace Internacional \n", + "CD INDUSTRIAL - LAREDO AMER 215 \n", + "LA ROSITA - IMPERIAL VALLEY 151 \n", + "TIJUANA - OTAY MESA 89 \n", + "TAPACHULA-LOS BRILLANTES 172355 \n", + "CUMBRES FRONTERA - RAIL ROAD 5678 \n", + "PIEDRAS NEGRAS - EAGLE PASS 0 \n", + "XULHA-BELICE 49678 \n", + "TOTAL 228166 " + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# enlaces ordenados por importación mayor a menor\n", + "df_imp = df_julio.groupby(['Enlace Internacional']).sum().sort_values(by='Cantidad de Energia Asignada de Importacion (MWh)', ascending=False)\n", + "df_suma_imp = df_imp.append(df_imp.sum().rename(\"TOTAL\"))\n", + "df_suma_imp" + ] + }, + { + "cell_type": "markdown", + "id": "dd16fb30", + "metadata": {}, + "source": [ + "**Suma de todos los enlaces ordenados por exportaciones:**" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "f16ac107", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Cantidad de Energia Asignada de Importacion (MWh)Cantidad de Energia Asignada de Exportacion (MWh)
Enlace Internacional
TAPACHULA-LOS BRILLANTES650172355
XULHA-BELICE049678
CUMBRES FRONTERA - RAIL ROAD6445678
CD INDUSTRIAL - LAREDO AMER29766215
LA ROSITA - IMPERIAL VALLEY13702151
TIJUANA - OTAY MESA1217789
PIEDRAS NEGRAS - EAGLE PASS00
TOTAL56939228166
\n", + "
" + ], + "text/plain": [ + " Cantidad de Energia Asignada de Importacion (MWh) \\\n", + "Enlace Internacional \n", + "TAPACHULA-LOS BRILLANTES 650 \n", + "XULHA-BELICE 0 \n", + "CUMBRES FRONTERA - RAIL ROAD 644 \n", + "CD INDUSTRIAL - LAREDO AMER 29766 \n", + "LA ROSITA - IMPERIAL VALLEY 13702 \n", + "TIJUANA - OTAY MESA 12177 \n", + "PIEDRAS NEGRAS - EAGLE PASS 0 \n", + "TOTAL 56939 \n", + "\n", + " Cantidad de Energia Asignada de Exportacion (MWh) \n", + "Enlace Internacional \n", + "TAPACHULA-LOS BRILLANTES 172355 \n", + "XULHA-BELICE 49678 \n", + "CUMBRES FRONTERA - RAIL ROAD 5678 \n", + "CD INDUSTRIAL - LAREDO AMER 215 \n", + "LA ROSITA - IMPERIAL VALLEY 151 \n", + "TIJUANA - OTAY MESA 89 \n", + "PIEDRAS NEGRAS - EAGLE PASS 0 \n", + "TOTAL 228166 " + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# enlaces ordenados por exportación mayor a menor\n", + "df_exp = df_julio.groupby(['Enlace Internacional']).sum().sort_values(by='Cantidad de Energia Asignada de Exportacion (MWh)', ascending=False)\n", + "df_suma_exp = df_exp.append(df_exp.sum().rename(\"TOTAL\"))\n", + "df_suma_exp" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/README.md b/README.md index dc8bae8..89755df 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,54 @@ -![IronHack Logo](https://s3-eu-west-1.amazonaws.com/ih-materials/uploads/upload_d5c5793015fec3be28a63c4fa3dd4d55.png) -# Project: API and Web Data Scraping +# Ironhack Proyecto 2: API -## Overview +Se utilizan los protocolos API para obtener información de la Energía Asignada de Importación y Exportación del Centro Nacional de Control de Energía (CENACE). -The goal of this project is for you to practice what you have learned in the APIs and Web Scraping chapter of this program. For this project, you will choose both an API to obtain data from and a web page to scrape. For the API portion of the project will need to make calls to your chosen API, successfully obtain a response, request data, convert it into a Pandas data frame, and export it as a CSV file. For the web scraping portion of the project, you will need to scrape the HTML from your chosen page, parse the HTML to extract the necessary information, and either save the results to a text (txt) file if it is text or into a CSV file if it is tabular data. +## Fuente de información -**You will be working individually for this project**, but we'll be guiding you along the process and helping you as you go. Show us what you've got! +El Servicio Web para descarga de Energía Asignada de Importación y Exportación ([SW-EAIMPEX](https://www.cenace.gob.mx/DocsMEM/2022-06-24%20Manual%20Técnico%20SW-EAIMPEX.pdf)) es un servicio que brinda el CENACE para descargar información sobre los resultados de la ejecución del Mercado del Día en Adelanto (MDA). ---- +Este servicio permite obtener la información de los puntos de importación y exportación de energía eléctrica. -## Technical Requirements +## Solicitud +Obtener información de las Cantidades Asignadas de Importación y Exportación del MDA del Sistema Interconectado Nacional (SIN), correspondiente al Día de Operación del 01 al 31 de julio de 2022. -The technical requirements for this project are as follows: +* **Nota:** Se realizan varias peticiones de consulta para periodo establecido, ya que la página del CENACE solo permite descargar informació de 1 a 7 Días de Operación. -* You must obtain data from an API using Python. -* You must scrape and clean HTML from a web page using Python. -* The results should be two files - one containing the tabular results of your API request and the other containing the results of your web page scrape. -* Your code should be saved in a Jupyter Notebook and your results should be saved in a folder named output. -* You should include a README.md file that describes the steps you took and your thought process for obtaining data from the API and web page. +## Información adicional +El Sistema Interconectado Nacional cuenta 13 interconexiones internacionales ubicadas en los estados fronterizos. Existen 11 interconexiones con Estados Unidos y 2 interconexiones con Centroamérica (uno con Guatemala y uno con Bélice). -## Necessary Deliverables +La información de las interconexiones obtenidas del CENACE son: -The following deliverables should be pushed to your Github repo for this chapter. + 1. Ciudad Industrial - Laero Amer (interconexión con ERCOT, Texas) + 2. Cumbres Frontera - Railroad (interconexión con ERCOT, Texas) + 3. Piedas Negras - Eagle Pass (interconexión con ERCOT, Texas) + 4. Tapachula - Los Brillantes (interconexión con ETCEE, Guatemala) + 5. Xul Ha-WEST (interconexión con BEL, Bélice) -* **A Jupyter Notebook (.ipynb) file** that contains the code used to work with your API and scrape your web page. -* **An output folder** containing the outputs of your API and scraping efforts. -* **A ``README.md`` file** containing a detailed explanation of your approach and code for retrieving data from the API and scraping the web page as well as your results, obstacles encountered, and lessons learned. +

+image_interconexiones +

-## Suggested Ways to Get Started -* **Find an API to work with** - a great place to start looking would be [API List](https://apilist.fun/) and [Public APIs](https://github.com/toddmotto/public-apis). If you need authorization for your chosen API, make sure to give yourself enough time for the service to review and accept your application. Have a couple back-up APIs chosen just in case! -* **Find a web page to scrape** and determine the content you would like to scrape from it - blogs and news sites are typically good candidates for scraping text content, and [Wikipedia](https://www.wikipedia.org/) is usually a good source for HTML tables (search for "list of..."). -* **Break the project down into different steps** - note the steps covered in the API and web scraping lessons, try to follow them, and make adjustments as you encounter the obstacles that are inevitable due to all APIs and web pages being different. -* **Use the tools in your tool kit** - your knowledge of intermediate Python as well as some of the things you've learned in previous chapters. This is a great way to start tying everything you've learned together! -* **Work through the lessons in class** & ask questions when you need to! Think about adding relevant code to your project each night, instead of, you know... _procrastinating_. -* **Commit early, commit often**, don’t be afraid of doing something incorrectly because you can always roll back to a previous version. -* **Consult documentation and resources provided** to better understand the tools you are using and how to accomplish what you want. +----------------- +----------------- -## Useful Resources +# Ironhack Proyecto 2: Web scraping + +Se utiliza Web Scraping para conocer la Clasificación de la Asociación Femenina de Tenis (WTA, *Women's Tennis Association*). Esta Clasificación pertenece al ranking mundial de tenistas femeninas que publica la WTA desde 1975. + +

+Women's_Tennis_Association_logo_(2020) svg +

+ + +## Fuente de información + +La información es obtenida de la página [WTA rankings](https://en.wikipedia.org/wiki/WTA_rankings) de Wikipedia. Esta Clasificación es actualizada cada semana, como resultado de los puntos obtenidos por cada tenista de los torneos realizados en las últimas 52 semanas. + + +## Solicitud +Obtener de la Clasificación WTA con mayor puntaje en las modalidades *single* y *doubles individual*. + +**Nota**: la información presentada es hasta la semana del 15 al 21 de agosto de 2022. -* [Requests Library Documentation: Quickstart](http://docs.python-requests.org/en/master/user/quickstart/) -* [BeautifulSoup Documentation](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) -* [Stack Overflow Python Requests Questions](https://stackoverflow.com/questions/tagged/python-requests) -* [StackOverflow BeautifulSoup Questions](https://stackoverflow.com/questions/tagged/beautifulsoup) diff --git a/WebScraping_WTA-Ranking.ipynb b/WebScraping_WTA-Ranking.ipynb new file mode 100644 index 0000000..65489f7 --- /dev/null +++ b/WebScraping_WTA-Ranking.ipynb @@ -0,0 +1,6883 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "a2c5c869", + "metadata": {}, + "source": [ + "# Proyecto 2: Web Scraping \n", + "\n", + "Web Scraping is used to know the WTA (Women's Tennis Association) Classification. This Classification belongs to the woman tennis player world ranking publishes by the WTA since 1975. \n", + "\n", + "This Classification is updated every week and is the result of the tournaments that have taken place in the last 52 weeks.\n", + "\n", + "**Ranking:** up to August 15th 2022." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "4d5d3a3a", + "metadata": {}, + "outputs": [], + "source": [ + "import re\n", + "import requests\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "\n", + "from bs4 import BeautifulSoup" + ] + }, + { + "cell_type": "markdown", + "id": "ab6b1409", + "metadata": {}, + "source": [ + "Requests\n", + "-------" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "d13165b5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "url = 'https://en.wikipedia.org/wiki/WTA_rankings'\n", + "\n", + "response = requests.get(url)\n", + "response" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "cb591d49", + "metadata": {}, + "outputs": [], + "source": [ + "contenido_wta = response.content" + ] + }, + { + "cell_type": "markdown", + "id": "55adf21a", + "metadata": {}, + "source": [ + "Soup\n", + "-------" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "6a0c0c38", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "WTA rankings - Wikipedia\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "
\n", + "
\n", + "
\n", + "

WTA rankings

\n", + "
\n", + "
From Wikipedia, the free encyclopedia
\n", + "
\n", + "
\n", + "
\n", + "Jump to navigation\n", + "Jump to search\n", + "
Women's Tennis Association rankings of players
\n", + "
This article is about the women's rankings. For the men's rankings, see ATP rankings.
\n", + "

The WTA rankings are the ratings defined by the Women's Tennis Association, introduced in November 1975.[1]\n", + "

\n", + "\n", + "

Ranking method[edit]

\n", + "

The WTA rankings are based on a rolling 52-week, cumulative system. A player's ranking is determined by her results at a maximum of 16 tournaments for singles and 11 for doubles and points are awarded based on how far a player advances in a tournament. The basis for calculating a player's ranking are those tournaments that yield the highest ranking points during the rolling 52-week period with the condition that they must include points from the 4 Grand Slams, the 4 Premier Mandatory tournaments and the WTA Finals. In addition, for Top 20 players, their best two results at Premier 5 tournaments will also count.[2] Up until 2016, the WTA also distributed ranking points, for singles players only, who competed at the Summer Olympics. However, this has since been discontinued.[3] The computer that calculates the ranking is nicknamed \"Medusa\".[4]\n", + "

In order to appear on the WTA rankings, players must earn ranking points in at least three tournaments, or a minimum of 10 singles ranking points or 10 doubles ranking points in one or more tournaments.\n", + "

The points distribution for tournaments in 2021 is shown below. Points earned in 2013 were a little different in some cases and retained their value until they expired after 52 weeks.\n", + "

\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
CategoryWFSFQFR16R32R64R128QQ3Q2Q1\n", + "
Grand Slam (S)2000130078043024013070104030202\n", + "
Grand Slam (D)200013007804302401301040–\n", + "
WTA Finals (S)1500*1080*750*(+125 per Round Robin Match; +125 per Round Robin Win)\n", + "
WTA Finals (D)15001080750375–\n", + "
WTA 1000 - Mandatory (96S)100065039021512065351030202\n", + "
WTA 1000 - Mandatory(64/60S)1000650390215120651030202\n", + "
WTA 1000 - Mandatory (28/32D)100065039021512010–\n", + "
WTA 1000 - Non Mandatory (56S,64Q)9005853501901056013022151\n", + "
WTA 1000 - Non Mandatory (56S,48/32Q)90058535019010560130201\n", + "
WTA 1000 - Non Mandatory (28D)9005853501901051–\n", + "
WTA 1000 - Non Mandatory (16D)9005853501901–\n", + "
WTA Elite Trophy (S)700*440*240*(+40 per Round Robin Match; +80 per Round Robin Win)\n", + "
WTA 500 (56S)4703051851005530125131\n", + "
WTA 500 (32S)4703051851005512518131\n", + "
WTA 500 (16D)4703051851001–\n", + "
WTA 250 (32S,32Q)280180110603011814101\n", + "
WTA 250 (32S,16Q)2801801106030118121\n", + "
WTA 250 (16D)280180110601–\n", + "
WTA 125K series (S)160955729151641\n", + "
WTA 125K series (D)1609557291-–\n", + "
ITF $100,000+H (S)15090552814164–\n", + "
ITF $100,000+H (D)1509055281–\n", + "
ITF $100,000 (S)14085502513164–\n", + "
ITF $100,000 (D)1408550251–\n", + "
ITF $80,000+H (S)13080482412153–\n", + "
ITF $80,000+H (D)1308048241–\n", + "
ITF $80,000 (S)11570422110153–\n", + "
ITF $80,000 (D)1157042211–\n", + "
ITF $60,000+H (S)1006036189153–\n", + "
ITF $60,000+H (D)1006036181–\n", + "
ITF $60,000 (S)804829158153–\n", + "
ITF $60,000 (D)804829151–\n", + "
ITF $25,000+H (S)60362211612–\n", + "
ITF $25,000+H (D)603622111–\n", + "
ITF $25,000 (S)503018951–\n", + "
ITF $25,000 (D)50301891–\n", + "
ITF $15,000 (S)\n", + "10\n", + "6\n", + "4\n", + "2\n", + "1\n", + "–\n", + "–\n", + "–\n", + "–\n", + "–\n", + "–\n", + "–\n", + "
ITF $15,000 (D)\n", + "10\n", + "6\n", + "4\n", + "1\n", + "–\n", + "–\n", + "–\n", + "–\n", + "–\n", + "–\n", + "–\n", + "–\n", + "
\n", + "

S = singles players, D = doubles teams, Q = qualification players.
\n", + "* Assumes undefeated Round Robin match record.
\n", + "\"+H\" indicates that Hospitality is provided.\n", + "

Note that if a player or team receives one or more byes and then loses their first match of the tournament, they will only receive points for the first round of that tournament. For example, if a player receives a bye in R64 and then loses her match in R32, she will only receive points for R64 despite having advanced (via bye) to R32. Similarly, if a player or team withdraws from their first match after receiving a bye, they will not be awarded any points for that tournament.[5]\n", + "

In ITF tournaments, the main draw is normally 32 for singles and 16 for doubles. Losers in the first round of doubles will receive points equal to that shown in the R32 column above. For subsequent rounds (quarter-finals onwards) the points are the same as for singles.\n", + "

\n", + "

Current rankings[edit]

\n", + "
See also: 2022 WTA Tour
\n", + "
\n", + "\n", + "\n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
WTA rankings (singles), as of 15 August 2022[update][6]\n", + "
No.\n", + "Player\n", + "Points\n", + "Move\n", + "
1\n", + "\"\" Iga Świątek (POL)8,501\"Steady\"\n", + "
2\n", + "\"\" Anett Kontaveit (EST)4,476\"Steady\"\n", + "
3\n", + "\"\" Maria Sakkari (GRE)4,190\"Increase\" 1\n", + "
4\n", + "\"\" Paula Badosa (ESP)4,155\"Decrease\" 1\n", + "
5\n", + "\"\" Ons Jabeur (TUN)3,920\"Steady\"\n", + "
6\n", + "\"\" Simona Halep (ROU)3,255\"Increase\" 9\n", + "
7\n", + "\"\" Aryna Sabalenka (BLR)3,121\"Decrease\" 1\n", + "
8\n", + "\"\" Jessica Pegula (USA)3,116\"Decrease\" 1\n", + "
9\n", + "\"\" Garbiñe Muguruza (ESP)2,990\"Decrease\" 1\n", + "
10\n", + "\"\" Daria Kasatkina (RUS)2,795\"Decrease\" 1\n", + "
11\n", + "\"\" Belinda Bencic (SUI)2,765\"Increase\" 1\n", + "
12\n", + "\"\" Coco Gauff (USA)2,746\"Decrease\" 1\n", + "
13\n", + "\"\" Emma Raducanu (GBR)2,742\"Decrease\" 3\n", + "
14\n", + "\"\" Leylah Fernandez (CAN)2,569\"Decrease\" 1\n", + "
15\n", + "\"\" Jeļena Ostapenko (LAT)2,361\"Increase\" 1\n", + "
16\n", + "\"\" Beatriz Haddad Maia (BRA)2,317\"Increase\" 8\n", + "
17\n", + "\"\" Karolína Plíšková (CZE)2,297\"Decrease\" 3\n", + "
18\n", + "\"\" Danielle Collins (USA)2,168\"Decrease\" 1\n", + "
19\n", + "\"\" Barbora Krejčíková (CZE)2,163\"Steady\"\n", + "
20\n", + "\"\" Veronika Kudermetova (RUS)2,161\"Decrease\" 2\n", + "
\n", + "

Change since previous week's rankings\n", + "

\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
WTA rankings (doubles individual), as of 15 August 2022[update][7]\n", + "
No.\n", + "Player\n", + "Points\n", + "Move\n", + "
1\n", + "\"\" Coco Gauff (USA)5,945\"Increase\" 5\n", + "
2\n", + "\"\" Zhang Shuai (CHN)5,655\"Steady\"\n", + "
3\n", + "\"\" Kateřina Siniaková (CZE)5,615\"Steady\"\n", + "
4\n", + "\"\" Elise Mertens (BEL)5,580\"Decrease\" 3\n", + "
5\n", + "\"\" Veronika Kudermetova (RUS)4,985\"Decrease\" 1\n", + "
6\n", + "\"\" Gabriela Dabrowski (CAN)4,550\"Decrease\" 1\n", + "
7\n", + "\"\" Barbora Krejčíková (CZE)4,471\"Steady\"\n", + "
8\n", + "\"\" Jessica Pegula (USA)4,450\"Increase\" 4\n", + "
9\n", + "\"\" Samantha Stosur (AUS)4,071\"Decrease\" 1\n", + "
10\n", + "\"\" Ena Shibahara (JPN)3,890\"Decrease\" 1\n", + "
11\n", + "\"\" Shuko Aoyama (JPN)3,720\"Decrease\" 1\n", + "
12\n", + "\"\" Giuliana Olmos (MEX)3,680\"Increase\" 1\n", + "
13\n", + "\"\" Desirae Krawczyk (USA)3,670\"Decrease\" 2\n", + "
14\n", + "\"\" Yang Zhaoxuan (CHN)3,390\"Steady\"\n", + "
15\n", + "\"\" Jeļena Ostapenko (LAT)3,260\"Steady\"\n", + "
16\n", + "\"\" Xu Yifan (CHN)3,210\"Increase\" 1\n", + "
17\n", + "\"\" Lyudmyla Kichenok (UKR)3,165\"Decrease\" 1\n", + "
18\n", + "\"\" Demi Schuurs (NED)3,150\"Increase\" 1\n", + "
19\n", + "\"\" Storm Sanders (AUS)3,115\"Increase\" 1\n", + "
20\n", + "\"\" Catherine McNally (USA)3,105\"Decrease\" 2\n", + "
\n", + "

Change since previous week's rankings\n", + "

\n", + "
\n", + "

Points breakdown[edit]

\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Rank\n", + "Player\n", + "Grand Slam\n", + "WTA 1000\n", + "Best other\n", + "WTA
Finals
\n", + "
Tourn\n", + "Total
points\n", + "
Mandatory\n", + "Non Mandatory\n", + "
AUS\n", + "FRA\n", + "WIM\n", + "USO\n", + "'21 IW\n", + "'22 IW\n", + "MIA\n", + "MAD\n", + "DOH\n", + "ROM\n", + "MON\n", + "CIN\n", + "1\n", + "2\n", + "3\n", + "4\n", + "5\n", + "6\n", + "
1\n", + "\"Poland\" Iga Świątek\n", + "SF
780\n", + "
W
2000\n", + "
R32
0\n", + "
R16
240\n", + "
R16
120\n", + "
W
1000\n", + "
W
1000\n", + "
A\n", + "W
900\n", + "
W
900\n", + "
A\n", + "R32
1\n", + "
W
470\n", + "
SF
185\n", + "
SF
185\n", + "
R16
55\n", + "
R16
55\n", + "
\n", + "RR
500\n", + "
17\n", + "8,631\n", + "
2\n", + "\"Estonia\" Anett Kontaveit\n", + "R64
70\n", + "
R128
10\n", + "
R64
0\n", + "
R32
130\n", + "
QF
215\n", + "
R32
65\n", + "
R64
10\n", + "
A\n", + "F
585\n", + "
R32
1\n", + "
A\n", + "A\n", + "W
470\n", + "
W
470\n", + "
W
470\n", + "
F
305\n", + "
W
280\n", + "
W
280\n", + "
F
955\n", + "
22\n", + "4,326\n", + "
3\n", + "\"Spain\" Paula Badosa\n", + "R16
240\n", + "
R32
130\n", + "
R32
0\n", + "
R64
70\n", + "
W
1000\n", + "
SF
390\n", + "
QF
215\n", + "
R32
65\n", + "
R16
105\n", + "
R16
105\n", + "
R32
60\n", + "
QF
190\n", + "
W
470\n", + "
SF
185\n", + "
QF
100\n", + "
R16
55\n", + "
\n", + "\n", + "SF
625\n", + "
25\n", + "4,245\n", + "
4\n", + "\"Tunisia\" Ons Jabeur\n", + "A\n", + "R128
10\n", + "
F
0\n", + "
R32
130\n", + "
SF
390\n", + "
R64
10\n", + "
R16
120\n", + "
W
1000\n", + "
QF
190\n", + "
F
585\n", + "
QF
190\n", + "
R16
105\n", + "
F
305\n", + "
F
305\n", + "
W
280\n", + "
QF
100\n", + "
\n", + "\n", + "DNQ\n", + "20\n", + "4,150\n", + "
5\n", + "\"Greece\" Maria Sakkari\n", + "R16
240\n", + "
R64
70\n", + "
R32
0\n", + "
SF
780\n", + "
R64
10\n", + "
F
650\n", + "
R64
10\n", + "
R32
65\n", + "
SF
350\n", + "
QF
190\n", + "
R16
105\n", + "
R64
1\n", + "
F
305\n", + "
F
305\n", + "
SF
185\n", + "
R16
55\n", + "
\n", + "\n", + "SF
625\n", + "
18\n", + "4,016\n", + "
6\n", + "\"Belarus\" Aryna Sabalenka\n", + "R16
240\n", + "
R32
130\n", + "
A\n", + "SF
780\n", + "
A\n", + "R64
10\n", + "
R64
10\n", + "
R64
10\n", + "
QF
190\n", + "
SF
350\n", + "
SF
350\n", + "
R32
1\n", + "
F
305\n", + "
QF
100\n", + "
QF
100\n", + "
R16
55\n", + "
R16
55\n", + "
\n", + "RR
500\n", + "
20\n", + "3,966\n", + "
7\n", + "\"Czech Karolína Plíšková\n", + "A\n", + "R64
70\n", + "
R64
0\n", + "
QF
430\n", + "
R32
65\n", + "
R64
10\n", + "
R64
10\n", + "
R64
10\n", + "
A\n", + "R32
1\n", + "
F
585\n", + "
SF
350\n", + "
SF
110\n", + "
R16
55\n", + "
R16
55\n", + "
R16
1\n", + "
R32
1\n", + "
\n", + "RR
625\n", + "
17\n", + "3,678\n", + "
8\n", + "\"United Jessica Pegula\n", + "QF
430\n", + "
QF
430\n", + "
R32
0\n", + "
R32
130\n", + "
QF
215\n", + "
R64
10\n", + "
SF
390\n", + "
F
650\n", + "
R16
105\n", + "
R16
105\n", + "
SF
350\n", + "
R16
105\n", + "
QF
100\n", + "
R16
55\n", + "
R16
55\n", + "
R16
55\n", + "
\n", + "\n", + "DNQ\n", + "19\n", + "3,255\n", + "
9\n", + "\"United Danielle Collins\n", + "F
1300\n", + "
R64
70\n", + "
R128
0\n", + "
R32
130\n", + "
R32
65\n", + "
A\n", + "QF
215\n", + "
R32
65\n", + "
A\n", + "R16
105\n", + "
R16
105\n", + "
A\n", + "W
470\n", + "
W
280\n", + "
SF
110\n", + "
SF
110\n", + "
QF
100\n", + "
QF
60\n", + "
DNQ\n", + "19\n", + "3,255\n", + "
10\n", + "\"Spain\" Garbiñe Muguruza\n", + "R64
70\n", + "
R128
10\n", + "
R128
0\n", + "
R16
240\n", + "
R64
10\n", + "
R64
10\n", + "
A\n", + "R32
65\n", + "
QF
190\n", + "
A\n", + "A\n", + "R16
105\n", + "
W
470\n", + "
QF
100\n", + "
QF
100\n", + "
QF
100\n", + "
R16
55\n", + "
R16
30\n", + "
W
1375\n", + "
19\n", + "3,060\n", + "
\n", + "

Number one ranked players[edit]

\n", + "\n", + "

The following is a chronological list of players who have achieved the number one position in singles since the WTA began producing computerized rankings on November 3, 1975:[8]\n", + "

\n", + "
  Active players in green
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
No.PlayerDate reachedTotal weeks\n", + "
1\"United Chris EvertNov 3, 1975260\n", + "
2\"Australia\" Evonne Goolagong CawleyApr 26, 19762\n", + "
3\"Czechoslovakia\"/\"United Martina NavratilovaJul 10, 1978332\n", + "
4\"United Tracy AustinApr 7, 198021\n", + "
5\"Germany\" Steffi GrafAug 17, 1987377\n", + "
6\"Socialist/\"Federal/\"United Monica SelesMar 11, 1991178\n", + "
7\"Spain\" Arantxa Sánchez VicarioFeb 6, 199512\n", + "
8\"Switzerland\" Martina HingisMar 31, 1997209\n", + "
9\"United Lindsay DavenportOct 12, 199898\n", + "
10\"United Jennifer CapriatiOct 15, 200117\n", + "
11\"United Venus WilliamsFeb 25, 200211\n", + "
12\"United Serena WilliamsJul 8, 2002319\n", + "
13\"Belgium\" Kim ClijstersAug 11, 200320\n", + "
14\"Belgium\" Justine HeninOct 20, 2003117\n", + "
15\"France\" Amélie MauresmoSep 13, 200439\n", + "
16\"Russia\" Maria SharapovaAug 22, 200521\n", + "
17\"Serbia\" Ana IvanovicJun 9, 200812\n", + "
18\"Serbia\" Jelena JankovićAug 11, 200818\n", + "
19\"Russia\" Dinara SafinaApr 20, 200926\n", + "
20\"Denmark\" Caroline WozniackiOct 11, 201071\n", + "
21\"Belarus\" Victoria AzarenkaJan 30, 201251\n", + "
22\"Germany\" Angelique KerberSep 12, 201634\n", + "
23\"Czech Karolína PlíškováJuly 17, 20178\n", + "
24\"Spain\" Garbiñe MuguruzaSep 11, 20174\n", + "
25\"Romania\" Simona HalepOct 9, 201764\n", + "
26\"Japan\" Naomi OsakaJan 28, 201925\n", + "
27\"Australia\" Ashleigh BartyJun 24, 2019121\n", + "
28\"Poland\" Iga ŚwiątekApr 4, 202218\n", + "
\n", + "

Last update: as of 1 August 2022[update]\n", + "

\n", + "

Year-end number one players[edit]

\n", + "\n", + "

The year-end number one player is the player at the head of the WTA rankings following the completion of the final tournament of the calendar year.\n", + "

\n", + "

Singles[edit]

\n", + "
\n", + "\n", + "\n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
YearPlayer\n", + "
1975\"United Chris Evert (1)\n", + "
1976\"United Chris Evert\n", + "
1977\"United Chris Evert\n", + "
1978\"United Martina Navratilova (2)\n", + "
1979\"United Martina Navratilova\n", + "
1980\"United Chris Evert\n", + "
1981\"United Chris Evert\n", + "
1982\"United Martina Navratilova\n", + "
1983\"United Martina Navratilova\n", + "
1984\"United Martina Navratilova\n", + "
1985\"United Martina Navratilova\n", + "
1986\"United Martina Navratilova\n", + "
1987\"West Steffi Graf (3)\n", + "
1988\"West Steffi Graf\n", + "
1989\"West Steffi Graf\n", + "
1990\"Germany\" Steffi Graf\n", + "
1991\"Socialist Monica Seles (4)\n", + "
1992\"Socialist Monica Seles\n", + "
1993\"Germany\" Steffi Graf\n", + "
1994\"Germany\" Steffi Graf\n", + "
1995\"Germany\" Steffi Graf
\"United Monica Seles\n", + "
1996\"Germany\" Steffi Graf\n", + "
1997\"Switzerland\" Martina Hingis (5)\n", + "
1998\"United Lindsay Davenport (6)\n", + "
1999\"Switzerland\" Martina Hingis\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
YearPlayer\n", + "
2000\"Switzerland\" Martina Hingis\n", + "
2001\"United Lindsay Davenport\n", + "
2002\"United Serena Williams (7)\n", + "
2003\"Belgium\" Justine Henin (8)\n", + "
2004\"United Lindsay Davenport\n", + "
2005\"United Lindsay Davenport\n", + "
2006\"Belgium\" Justine Henin\n", + "
2007\"Belgium\" Justine Henin\n", + "
2008\"Serbia\" Jelena Janković (9)\n", + "
2009\"United Serena Williams\n", + "
2010\"Denmark\" Caroline Wozniacki (10)\n", + "
2011\"Denmark\" Caroline Wozniacki\n", + "
2012\"Belarus\" Victoria Azarenka (11)\n", + "
2013\"United Serena Williams\n", + "
2014\"United Serena Williams\n", + "
2015\"United Serena Williams\n", + "
2016\"Germany\" Angelique Kerber (12)\n", + "
2017\"Romania\" Simona Halep (13)\n", + "
2018\"Romania\" Simona Halep\n", + "
2019\"Australia\" Ashleigh Barty (14)\n", + "
2020\"Australia\" Ashleigh Barty\n", + "
2021\"Australia\" Ashleigh Barty\n", + "
\n", + "

\n", + "

\n", + "
\n", + "\n", + "\n", + "
No. 1 all weeks of the year\n", + "
\n", + "

Doubles[edit]

\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
YearCountryPlayerTeam[citation needed]\n", + "
1984\"United USAMartina Navratilova (1)\"United Martina Navratilova / \"United Pam Shriver\n", + "
1985\"United USAPam Shriver (2)\"United Martina Navratilova / \"United Pam Shriver\n", + "
1986\"United USAMartina Navratilova\"United Martina Navratilova / \"United Pam Shriver\n", + "
1987\"United USAMartina Navratilova\"United Martina Navratilova / \"United Pam Shriver\n", + "
1988\"United USAMartina Navratilova\"United Martina Navratilova / \"United Pam Shriver\n", + "
1989\"United USAMartina Navratilova\"Czechoslovakia\" Helena Suková / \"Czechoslovakia\" Jana Novotná\n", + "
1990\"Czechoslovakia\" TCHHelena Suková (3)\"Czechoslovakia\" Helena Suková / \"Czechoslovakia\" Jana Novotná\n", + "
1991\"Czechoslovakia\" TCHJana Novotná (4)\"United Gigi Fernández / \"Czechoslovakia\" Jana Novotná\n", + "
1992\"Czech CZEHelena Suková\"Latvia\" Larisa Neiland / \"Belarus\" Natasha Zvereva\n", + "
1993\"United USAGigi Fernández (5)\"United Gigi Fernández / \"Belarus\" Natasha Zvereva\n", + "
1994\"Belarus\" BLRNatasha Zvereva (6)\"United Gigi Fernández / \"Belarus\" Natasha Zvereva\n", + "
1995\"Spain\" ESPArantxa Sánchez Vicario (7)\"United Gigi Fernández / \"Belarus\" Natasha Zvereva\n", + "
1996\"Spain\" ESPArantxa Sánchez Vicario\"Czech Jana Novotná / \"Spain\" Arantxa Sánchez Vicario\n", + "
1997\"Belarus\" BLRNatasha Zvereva\"United Gigi Fernández / \"Belarus\" Natasha Zvereva\n", + "
1998\"Belarus\" BLRNatasha Zvereva\"Switzerland\" Martina Hingis / \"Czech Jana Novotná\n", + "
1999\"Russia\" RUSAnna Kournikova (8)\"Switzerland\" Martina Hingis / \"Russia\" Anna Kournikova\n", + "
2000\"Japan\" JPNAi Sugiyama (9)\"United Serena Williams / \"United Venus Williams\n", + "
2001\"United USALisa Raymond (10)\"United Lisa Raymond / \"Australia\" Rennae Stubbs\n", + "
2002\"Argentina\" ARGPaola Suárez (11)\"Spain\" Virginia Ruano Pascual / \"Argentina\" Paola Suárez\n", + "
2003\"Argentina\" ARGPaola Suárez\"Spain\" Virginia Ruano Pascual / \"Argentina\" Paola Suárez\n", + "
2004\"Spain\" ESPVirginia Ruano Pascual (12)\"Spain\" Virginia Ruano Pascual / \"Argentina\" Paola Suárez\n", + "
2005\"Zimbabwe\" ZIMCara Black (13)\"United Lisa Raymond / \"Australia\" Samantha Stosur\n", + "
2006\"United USA
\"Australia\" AUS
Lisa Raymond
Samantha Stosur (14)
\"United Lisa Raymond / \"Australia\" Samantha Stosur\n", + "
2007\"Zimbabwe\" ZIM
\"United USA
Cara Black
Liezel Huber (15)
\"Zimbabwe\" Cara Black / \"United Liezel Huber\n", + "
2008\"Zimbabwe\" ZIM
\"United USA
Cara Black
Liezel Huber
\"Zimbabwe\" Cara Black / \"United Liezel Huber\n", + "
2009\"Zimbabwe\" ZIM
\"United USA
Cara Black
Liezel Huber
\"United Serena Williams / \"United Venus Williams\n", + "
2010\"Argentina\" ARGGisela Dulko (16)\"Argentina\" Gisela Dulko / \"Italy\" Flavia Pennetta\n", + "
2011\"United USALiezel Huber\"Czech Květa Peschke / \"Slovenia\" Katarina Srebotnik\n", + "
2012\"Italy\" ITARoberta Vinci (17)\"Italy\" Sara Errani / \"Italy\" Roberta Vinci\n", + "
2013\"Italy\" ITA\n", + "Roberta Vinci\"Italy\" Sara Errani / \"Italy\" Roberta Vinci\n", + "
\"Italy\" ITASara Errani (18)\n", + "
2014\"Italy\" ITA
\"Italy\" ITA
Roberta Vinci
Sara Errani
\"Italy\" Sara Errani / \"Italy\" Roberta Vinci\n", + "
2015\"India\" INDSania Mirza (19)\"Switzerland\" Martina Hingis / \"India\" Sania Mirza\n", + "
2016\"India\" INDSania Mirza\"France\" Caroline Garcia / \"France\" Kristina Mladenovic\n", + "
2017\"Chinese TPE
\"Switzerland\" SUI
Latisha Chan (20)
Martina Hingis (21)
\"Chinese Latisha Chan / \"Switzerland\" Martina Hingis\n", + "
2018\"Czech CZE
\"Czech CZE
Barbora Krejčíková (22)
Kateřina Siniaková (23)
\"Czech Barbora Krejčíková / \"Czech Kateřina Siniaková\n", + "
2019\"Czech CZEBarbora Strýcová (24)\"Chinese Hsieh Su-wei / \"Czech Barbora Strýcová\n", + "
2020\"Chinese TPE\"Chinese Hsieh Su-wei (25)\"Chinese Hsieh Su-wei / \"Czech Barbora Strýcová\n", + "
2021\"Czech CZEKateřina Siniaková\"Czech Barbora Krejčíková / \"Czech Kateřina Siniaková\n", + "
\n", + "\n", + "\n", + "
No. 1 all weeks of the year\n", + "
\n", + "

Year-end Top 10[edit]

\n", + "
★ indicates player's highest year-end ranking
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
YearNo. 1No. 2No. 3No. 4No. 5No. 6No. 7No. 8No. 9No. 10\n", + "
1975\n", + "\"United C. Evert\"United V. Wade\"Czechoslovakia\" M. Navratilova\"United B.J. King\"Australia\" E. Goolagong Cawley\"Australia\" M. Court\"Soviet O. Morozova\"United N. Gunter (Richey)\"France\" F. Dürr\"Australia\" K. Melville Reid\n", + "
1976\n", + "\"United C. Evert\"Australia\" E. Goolagong Cawley\"United V. Wade\"United M. Navratilova\"Australia\" D. Fromholtz\"United R. Casals\"Netherlands\" B. Stöve\"Australia\" K. Melville Reid\"Soviet O. Morozova\"United S. Barker\n", + "
1977\n", + "\"United C. Evert\"United B.J. King\"United M. Navratilova\"United V. Wade\"United S. Barker\"United R. Casals\"Netherlands\" B. Stöve\"Australia\" D. Fromholtz\"Australia\" W. Turnbull\"Australia\" K. Melville Reid\n", + "
1978\n", + "\"United M. Navratilova\"United C. Evert\"Australia\" E. Goolagong Cawley\"United V. Wade\"United B.J. King\"United T. Austin\"Australia\" W. Turnbull\"Australia\" K. Melville Reid\"Netherlands\" B. Stöve\"Australia\" D. Fromholtz\n", + "
1979\n", + "\"United M. Navratilova\"United C. Evert-Lloyd\"United T. Austin\"Australia\" E. Goolagong Cawley\"United B.J. King\"Australia\" D. Fromholtz\"Australia\" W. Turnbull\"United V. Wade\"Australia\" K. Melville Reid\"United S. Barker\n", + "
1980\n", + "\"United C. Evert-Lloyd\"United T. Austin\"United M. Navratilova\"Czechoslovakia\" H. Mandlíková\"Australia\" E. Goolagong Cawley\"United B.J. King\"United A. Jaeger\"Australia\" W. Turnbull\"United P. Shriver\"South G. Stevens\n", + "
1981\n", + "\"United C. Evert-Lloyd\"United T. Austin\"United M. Navratilova\"United A. Jaeger\"Czechoslovakia\" H. Mandlíková\"West S. Hanika\"United P. Shriver\"Australia\" W. Turnbull\"West B. Bunge\"United B. Potter\n", + "
1982\n", + "\"United M. Navratilova\"United C. Evert-Lloyd\"United A. Jaeger\"United T. Austin\"Australia\" W. Turnbull\"United P. Shriver\"Czechoslovakia\" H. Mandlíková\"United B. Potter\"West B. Bunge\"West S. Hanika\n", + "
1983\n", + "\"United M. Navratilova\"United C. Evert-Lloyd\"United A. Jaeger\"United P. Shriver\"West S. Hanika\"United J. Durie\"West B. Bunge\"Australia\" W. Turnbull\"United T. Austin\"United Z. Garrison\n", + "
1984\n", + "\"United M. Navratilova\"United C. Evert-Lloyd\"Czechoslovakia\" H. Mandlíková\"United P. Shriver\"Australia\" W. Turnbull\"Bulgaria\" Man Maleeva\"Czechoslovakia\" H. Suková\"West C. Kohde-Kilsch\"United Z. Garrison\"United K. Jordan\n", + "
1985\n", + "\"United M. Navratilova\"United C. Evert-Lloyd\"Czechoslovakia\" H. Mandlíková\"United P. Shriver\"West C. Kohde-Kilsch\"West S. Graf\"Bulgaria\" Man Maleeva\"United Z. Garrison\"Czechoslovakia\" H. Suková\"United B. Gadusek\n", + "
1986\n", + "\"United M. Navratilova\"United C. Evert-Lloyd\"West S. Graf\"Czechoslovakia\" H. Mandlíková\"Czechoslovakia\" H. Suková\"United P. Shriver\"West C. Kohde-Kilsch\"Bulgaria\" Man Maleeva\"United K. Rinaldi\"Argentina\" G. Sabatini\n", + "
1987\n", + "\"West S. Graf\"United M. Navratilova\"United C. Evert\"United P. Shriver\"Czechoslovakia\" H. Mandlíková\"Argentina\" G. Sabatini\"Czechoslovakia\" H. Suková\"Bulgaria\" Man Maleeva\"United Z. Garrison\"West C. Kohde-Kilsch\n", + "
1988\n", + "\"West S. Graf\"United M. Navratilova\"United C. Evert\"Argentina\" G. Sabatini\"United P. Shriver\"Bulgaria\" Man Maleeva-Fragnière\"Soviet N. Zvereva\"Czechoslovakia\" H. Suková\"United Z. Garrison\"United B. Potter\n", + "
1989\n", + "\"West S. Graf\"United M. Navratilova\"Argentina\" G. Sabatini\"United Z. Garrison\"Spain\" A. Sánchez Vicario\"Socialist M. Seles\"Spain\" C. Martínez\"Czechoslovakia\" H. Suková\"Bulgaria\" Man Maleeva-Fragnière\"United C. Evert\n", + "
1990\n", + "\"Germany\" S. Graf\"Socialist M. Seles\"United M. Navratilova\"United M.J. Fernández\"Argentina\" G. Sabatini\"Bulgaria\" K. Maleeva\"Spain\" A. Sánchez Vicario\"United J. Capriati\"Switzerland\" Man Maleeva-Fragnière\"United Z. Garrison\n", + "
1991\n", + "\"Socialist M. Seles\"Germany\" S. Graf\"Argentina\" G. Sabatini\"United M. Navratilova\"Spain\" A. Sánchez Vicario\"United J. Capriati\"Czechoslovakia\" J. Novotná\"United M.J. Fernández\"Spain\" C. Martínez\"Switzerland\" Man Maleeva-Fragnière\n", + "
1992\n", + "\"Federal M. Seles\"Germany\" S. Graf\"Argentina\" G. Sabatini\"Spain\" A. Sánchez Vicario\"United M. Navratilova\"United M.J. Fernández\"United J. Capriati\"Spain\" C. Martínez\"Switzerland\" Man Maleeva-Fragnière\"Czechoslovakia\" J. Novotná\n", + "
1993\n", + "\"Germany\" S. Graf\"Spain\" A. Sánchez Vicario\"United M. Navratilova\"Spain\" C. Martínez\"Argentina\" G. Sabatini\"Czech J. Novotná\"United M.J. Fernández\"Federal M. Seles\"United J. Capriati\"Germany\" A. Huber\n", + "
1994\n", + "\"Germany\" S. Graf\"Spain\" A. Sánchez Vicario\"Spain\" C. Martínez\"Czech J. Novotná\"France\" M. Pierce\"United L. Davenport\"Argentina\" G. Sabatini\"United M. Navratilova\"Japan\" K. Date\"Belarus\" N. Zvereva\n", + "
1995\n", + "\"Germany\" S. Graf
\"United M. Seles
\"Spain\" C. Martínez\"Spain\" A. Sánchez Vicario\"Japan\" K. Date\"France\" M. Pierce\"Bulgaria\" Mag Maleeva\"Argentina\" G. Sabatini\"United M.J. Fernández\"Croatia\" I. Majoli\"Germany\" A. Huber\n", + "
1996\n", + "\"Germany\" S. Graf\"United M. Seles
\"Spain\" A. Sánchez Vicario
\"Czech J. Novotná\n", + "\"Switzerland\" M. Hingis\"Spain\" C. Martínez\"Germany\" A. Huber\"Croatia\" I. Majoli\"Japan\" K. Date\"United L. Davenport\"Austria\" B. Paulus\n", + "
1997\n", + "\"Switzerland\" M. Hingis\"Czech J. Novotná\"United L. Davenport\"South A. Coetzer\"United M. Seles\"Croatia\" I. Majoli\"France\" M. Pierce\"Romania\" I. Spîrlea\"Spain\" A. Sánchez Vicario\"United M.J. Fernández\n", + "
1998\n", + "\"United L. Davenport\"Switzerland\" M. Hingis\"Czech J. Novotná\"Spain\" A. Sánchez Vicario\"United V. Williams\"United M. Seles\"France\" M. Pierce\"Spain\" C. Martínez\"Germany\" S. Graf\"France\" N. Tauziat\n", + "
1999\n", + "\"Switzerland\" M. Hingis\"United L. Davenport\"United V. Williams\"United S. Williams\"France\" M. Pierce\"United M. Seles\"France\" N. Tauziat\"Austria\" B. Schett\"France\" J. Halard-Decugis\"France\" A. Mauresmo\n", + "
2000\n", + "\"Switzerland\" M. Hingis\"United L. Davenport\"United V. Williams\"United M. Seles\"Spain\" C. Martínez\"United S. Williams\"France\" M. Pierce\"Russia\" A. Kournikova\"Spain\" A. Sánchez Vicario\"France\" N. Tauziat\n", + "
2001\n", + "\"United L. Davenport\"United J. Capriati\"United V. Williams\"Switzerland\" M. Hingis\"Belgium\" K. Clijsters\"United S. Williams\"Belgium\" J. Henin\"Federal J. Dokić\"France\" A. Mauresmo\"United M. Seles\n", + "
2002\n", + "\"United S. Williams\"United V. Williams\"United J. Capriati\"Belgium\" K. Clijsters\"Belgium\" J. Henin\"France\" A. Mauresmo\"United M. Seles\"Slovakia\" D. Hantuchová\"Federal J. Dokić\"Switzerland\" M. Hingis\n", + "
2003\n", + "\"Belgium\" J. Henin-Hardenne\"Belgium\" K. Clijsters\"United S. Williams\"France\" A. Mauresmo\"United L. Davenport\"United J. Capriati\"Russia\" A. Myskina\"Russia\" E. Dementieva\"United C. Rubin\"Japan\" A. Sugiyama\n", + "
2004\n", + "\"United L. Davenport\"France\" A. Mauresmo\"Russia\" A. Myskina\"Russia\" M. Sharapova\"Russia\" S. Kuznetsova\"Russia\" E. Dementieva\"United S. Williams\"Belgium\" J. Henin-Hardenne\"United V. Williams\"United J. Capriati\n", + "
2005\n", + "\"United L. Davenport\"Belgium\" K. Clijsters\"France\" A. Mauresmo\"Russia\" M. Sharapova\"France\" M. Pierce\"Belgium\" J. Henin-Hardenne\"Switzerland\" P. Schnyder\"Russia\" E. Dementieva\"Russia\" N. Petrova\"United V. Williams\n", + "
2006\n", + "\"Belgium\" J. Henin-Hardenne\"Russia\" M. Sharapova\"France\" A. Mauresmo\"Russia\" S. Kuznetsova\"Belgium\" K. Clijsters\"Russia\" N. Petrova\"Switzerland\" M. Hingis\"Russia\" E. Dementieva\"Switzerland\" P. Schnyder\"Czech N. Vaidišová\n", + "
2007\n", + "\"Belgium\" J. Henin\"Russia\" S. Kuznetsova\"Serbia\" J. Janković\"Serbia\" A. Ivanovic\"Russia\" M. Sharapova\"Russia\" A. Chakvetadze\"United S. Williams\"United V. Williams\"Slovakia\" D. Hantuchová\"France\" M. Bartoli\n", + "
2008\n", + "\"Serbia\" J. Janković\"United S. Williams\"Russia\" D. Safina\"Russia\" E. Dementieva\"Serbia\" A. Ivanovic\"United V. Williams\"Russia\" V. Zvonareva\"Russia\" S. Kuznetsova\"Russia\" M. Sharapova\"Poland\" A. Radwańska\n", + "
2009\n", + "\"United S. Williams\"Russia\" D. Safina\"Russia\" S. Kuznetsova\"Denmark\" C. Wozniacki\"Russia\" E. Dementieva\"United V. Williams\"Belarus\" V. Azarenka\"Serbia\" J. Janković\"Russia\" V. Zvonareva\"Poland\" A. Radwańska\n", + "
2010\n", + "\"Denmark\" C. Wozniacki\"Russia\" V. Zvonareva\"Belgium\" K. Clijsters\"United S. Williams\"United V. Williams\"Australia\" S. Stosur\"Italy\" F. Schiavone\"Serbia\" J. Janković\"Russia\" E. Dementieva\"Belarus\" V. Azarenka\n", + "
2011\n", + "\"Denmark\" C. Wozniacki\"Czech P. Kvitová\"Belarus\" V. Azarenka\"Russia\" M. Sharapova\"China\" N. Li\"Australia\" S. Stosur\"Russia\" V. Zvonareva\"Poland\" A. Radwańska\"France\" M. Bartoli\"Germany\" A. Petkovic\n", + "
2012\n", + "\"Belarus\" V. Azarenka\"Russia\" M. Sharapova\"United S. Williams\"Poland\" A. Radwańska\"Germany\" A. Kerber\"Italy\" S. Errani\"China\" N. Li\"Czech P. Kvitová\"Australia\" S. Stosur\"Denmark\" C. Wozniacki\n", + "
2013\n", + "\"United S. Williams\"Belarus\" V. Azarenka\"China\" N. Li\"Russia\" M. Sharapova\"Poland\" A. Radwańska\"Czech P. Kvitová\"Italy\" S. Errani\"Serbia\" J. Janković\"Germany\" A. Kerber\"Denmark\" C. Wozniacki\n", + "
2014\n", + "\"United S. Williams\"Russia\" M. Sharapova\"Romania\" S. Halep\"Czech P. Kvitová\"Serbia\" A. Ivanovic\"Poland\" A. Radwańska\"Canada\" E. Bouchard\"Denmark\" C. Wozniacki\"China\" N. Li\"Germany\" A. Kerber\n", + "
2015\n", + "\"United S. Williams\"Romania\" S. Halep\"Spain\" G. Muguruza\"Russia\" M. Sharapova\"Poland\" A. Radwańska\"Czech P. Kvitová\"United V. Williams\"Italy\" F. Pennetta\"Czech L. Šafářová\"Germany\" A. Kerber\n", + "
2016\n", + "\"Germany\" A. Kerber\"United S. Williams\"Poland\" A. Radwańska\"Romania\" S. Halep\"Slovakia\" D. Cibulková\"Czech K. Plíšková\"Spain\" G. Muguruza\"United M. Keys\"Russia\" S. Kuznetsova\"United J. Konta\n", + "
2017\n", + "\"Romania\" S. Halep\"Spain\" G. Muguruza\"Denmark\" C. Wozniacki\"Czech K. Plíšková\"United V. Williams\"Ukraine\" E. Svitolina\"Latvia\" J. Ostapenko\"France\" C. Garcia\"United J. Konta\"United C. Vandeweghe\n", + "
2018\n", + "\"Romania\" S. Halep\"Germany\" A. Kerber\"Denmark\" C. Wozniacki\"Ukraine\" E. Svitolina\"Japan\" N. Osaka\"United S. Stephens\"Czech P. Kvitová\"Czech K. Plíšková\"Netherlands\" K. Bertens\"Russia\" D. Kasatkina\n", + "
2019\n", + "\"Australia\" A. Barty\"Czech K. Plíšková\"Japan\" N. Osaka\"Romania\" S. Halep\"Canada\" B. Andreescu\"Ukraine\" E. Svitolina\"Czech P. Kvitová\"Switzerland\" B. Bencic\"Netherlands\" K. Bertens\"United S. Williams\n", + "
2020\n", + "\"Australia\" A. Barty\"Romania\" S. Halep\"Japan\" N. Osaka\"United S. Kenin\"Ukraine\" E. Svitolina\"Czech K. Plíšková\"Canada\" B. Andreescu\"Czech P. Kvitová\"Netherlands\" K. Bertens\"Belarus\" A. Sabalenka\n", + "
2021\n", + "\"Australia\" A. Barty\"Belarus\" A. Sabalenka\"Spain\" G. Muguruza\"Czech K. Plíšková\"Czech B. Krejčíková\"Greece\" M. Sakkari\"Estonia\" A. Kontaveit\"Spain\" P. Badosa\"Poland\" I. Świątek\"Tunisia\" O. Jabeur\n", + "
\n", + "

Players with highest career rank 2–5[edit]

\n", + "

The following is a list of singles players who were ranked world No. 5 or higher but not No. 1 since Nov 3, 1975:[citation needed]\n", + "

\n", + "
  Active players in green
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
World No. 2\n", + "
Player\n", + "Date reached\n", + "
\"United Virginia Wade\n", + "Nov 3, 1975\n", + "
\"United Billie Jean King\n", + "Dec 11, 1977\n", + "
\"United Andrea Jaeger\n", + "Aug 17, 1981\n", + "
\"Spain\" Conchita Martínez\n", + "Oct 30, 1995\n", + "
\"Czech Jana Novotná\n", + "Jul 7, 1997\n", + "
\"Russia\" Anastasia Myskina\n", + "Sep 13, 2004\n", + "
\"Russia\" Svetlana Kuznetsova\n", + "Sep 10, 2007\n", + "
\"Russia\" Vera Zvonareva\n", + "Oct 25, 2010\n", + "
\"Czech Petra Kvitová\n", + "Oct 31, 2011\n", + "
\"Poland\" Agnieszka Radwańska\n", + "Jul 9, 2012\n", + "
\"China\" Li Na\n", + "Feb 17, 2014\n", + "
\"Belarus\" Aryna Sabalenka\n", + "Aug 23, 2021\n", + "
\"Czech Barbora Krejčíková\n", + "Feb 28, 2022\n", + "
\"Spain\" Paula Badosa\n", + "Apr 25, 2022\n", + "
\"Estonia\" Anett Kontaveit\n", + "Jun 6, 2022\n", + "
\"Tunisia\" Ons Jabeur\n", + "Jun 27, 2022\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
World No. 3\n", + "
Player\n", + "Date reached\n", + "
\"United Pam Shriver\n", + "Mar 20, 1984\n", + "
\"Czechoslovakia\"/\"Australia\" Hana Mandlíková\n", + "Apr 30, 1984\n", + "
\"Australia\" Wendy Turnbull\n", + "Jan 7, 1985\n", + "
\"Bulgaria\"/\"Switzerland\" Manuela Maleeva\n", + "Feb 4, 1985\n", + "
\"Argentina\" Gabriela Sabatini\n", + "Feb 27, 1989\n", + "
\"France\" Mary Pierce\n", + "Jan 30, 1995\n", + "
\"South Amanda Coetzer\n", + "Nov 3, 1997\n", + "
\"France\" Nathalie Tauziat\n", + "May 8, 2000\n", + "
\"Russia\" Nadia Petrova\n", + "May 15, 2006\n", + "
\"Russia\" Elena Dementieva\n", + "Apr 6, 2009\n", + "
\"Ukraine\" Elina Svitolina\n", + "Sep 11, 2017\n", + "
\"United Sloane Stephens\n", + "Jul 16, 2018\n", + "
\"Greece\" Maria Sakkari\n", + "Mar 21, 2022\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
World No. 4\n", + "
Player\n", + "Date reached\n", + "
\"United Sue Barker\n", + "Mar 20, 1977\n", + "
\"Australia\" Dianne Fromholtz\n", + "Mar 19, 1979\n", + "
\"Czechoslovakia\" Helena Suková\n", + "Mar 18, 1985\n", + "
\"West Claudia Kohde-Kilsch\n", + "Sep 2, 1985\n", + "
\"United Zina Garrison\n", + "Nov 20, 1989\n", + "
\"United Mary Joe Fernández\n", + "Oct 22, 1990\n", + "
\"Japan\" Kimiko Date\n", + "May 13, 1995\n", + "
\"Bulgaria\" Magdalena Maleeva\n", + "Jan 29, 1996\n", + "
\"Croatia\" Iva Majoli\n", + "Feb 5, 1996\n", + "
\"Germany\" Anke Huber\n", + "Oct 14, 1996\n", + "
\"Serbia/\"Australia\" Jelena Dokić\n", + "Aug 19, 2002\n", + "
\"Italy\" Francesca Schiavone\n", + "Jan 31, 2011\n", + "
\"Australia\" Samantha Stosur\n", + "Feb 21, 2011\n", + "
\"Slovakia\" Dominika Cibulková\n", + "Mar 20, 2017\n", + "
\"United Johanna Konta\n", + "Jul 17, 2017\n", + "
\"France\" Caroline Garcia\n", + "Sep 10, 2018\n", + "
\"Netherlands\" Kiki Bertens\n", + "May 13, 2019\n", + "
\"Canada\" Bianca Andreescu\n", + "Oct 21, 2019\n", + "
\"Switzerland\" Belinda Bencic\n", + "Feb 17, 2020\n", + "
\"United Sofia Kenin\n", + "Mar 9, 2020\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
World No. 5\n", + "
Player\n", + "Date reached\n", + "
\"United Rosemary Casals\n", + "Sep 13, 1976\n", + "
\"Australia\" Margaret Court[9]\n", + "Feb 21, 1977\n", + "
\"Netherlands\" Betty Stöve\n", + "Jul 3, 1977\n", + "
\"West Sylvia Hanika\n", + "Sep 12, 1983\n", + "
\"United Kathy Jordan\n", + "Mar 19, 1984\n", + "
\"United Jo Durie\n", + "Apr 29, 1984\n", + "
\"Soviet/\"Belarus\" Natasha Zvereva\n", + "May 22, 1989\n", + "
\"Slovakia\" Daniela Hantuchová\n", + "Jan 27, 2003\n", + "
\"Russia\" Anna Chakvetadze\n", + "Sep 10, 2007\n", + "
\"Italy\" Sara Errani\n", + "May 20, 2013\n", + "
\"Canada\" Eugenie Bouchard\n", + "Oct 20, 2014\n", + "
\"Czech Lucie Šafářová\n", + "Sep 14, 2015\n", + "
\"Latvia\" Jeļena Ostapenko\n", + "Mar 19, 2018\n", + "
\n", + "

Players with highest career rank 6–10[edit]

\n", + "

The following is a list of players who were ranked world No. 6 to No.10 in the period since the 1975 introduction of the WTA rankings.[citation needed]\n", + "

\n", + "
  Active players in green
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
World No. 6\n", + "
Player\n", + "Date reached\n", + "
\"Socialist Mima Jaušovec\n", + "Mar 22, 1982\n", + "
\"Germany\" Bettina Bunge\n", + "Mar 28, 1983\n", + "
\"Bulgaria\" Katerina Maleeva\n", + "Jul 9, 1990\n", + "
\"United Chanda Rubin\n", + "Apr 8, 1996\n", + "
\"Italy\" Flavia Pennetta\n", + "Sep 28, 2015\n", + "
\"Spain\" Carla Suárez Navarro\n", + "Feb 29, 2016\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
World No. 7\n", + "
Player\n", + "Date reached\n", + "
\"Soviet Olga Morozova\n", + "Nov 3, 1975\n", + "
\"Australia\" Kerry Melville\n", + "Jul 4, 1976\n", + "
\"South Greer Stevens\n", + "Jul 7, 1980\n", + "
\"United Barbara Potter\n", + "Dec 6, 1982\n", + "
\"Hungary\" Andrea Temesvári\n", + "Jan 23, 1984\n", + "
\"United Kathy Rinaldi\n", + "May 26, 1986\n", + "
\"Romania\" Irina Spîrlea\n", + "Oct 13, 1997\n", + "
\"Austria\" Barbara Schett\n", + "Sep 13, 1999\n", + "
\"France\" Julie Halard-Decugis\n", + "Feb 14, 2000\n", + "
\"Switzerland\" Patty Schnyder\n", + "Nov 14, 2005\n", + "
\"Czech Nicole Vaidišová\n", + "May 14, 2007\n", + "
\"France\" Marion Bartoli\n", + "Jan 30, 2012\n", + "
\"Italy\" Roberta Vinci\n", + "May 9, 2016\n", + "
\"United Madison Keys\n", + "Oct 10, 2016\n", + "
\"United Danielle Collins\n", + "Jul 11, 2022\n", + "
\"United Jessica Pegula\n", + "Jul 18, 2022\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
World No. 8\n", + "
Player\n", + "Date reached\n", + "
\"United Nancy Richey\n", + "Nov 3, 1975\n", + "
\"Romania\" Virginia Ruzici\n", + "May 21, 1979\n", + "
\"United Bonnie Gadusek\n", + "Jul 9, 1984\n", + "
\"Canada\" Carling Bassett-Seguso\n", + "Mar 4, 1985\n", + "
\"Russia\" Anna Kournikova\n", + "Nov 20, 2000\n", + "
\"Japan\" Ai Sugiyama\n", + "Feb 9, 2004\n", + "
\"Australia\" Alicia Molik\n", + "Feb 28, 2005\n", + "
\"Russia\" Ekaterina Makarova\n", + "Apr 6, 2015\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
World No. 9\n", + "
Player\n", + "Date reached\n", + "
\"France\" Françoise Dürr\n", + "Nov 3, 1975\n", + "
\"United Lisa Bonder\n", + "Aug 20, 1984\n", + "
\"United Lori McNeil\n", + "Jul 4, 1988\n", + "
\"Netherlands\" Brenda Schultz-McCarthy\n", + "May 20, 1996\n", + "
\"Belgium\" Dominique Monami\n", + "Oct 12, 1998\n", + "
\"France\" Sandrine Testud\n", + "Feb 7, 2000\n", + "
\"Argentina\" Paola Suárez\n", + "Jun 7, 2004\n", + "
\"Germany\" Andrea Petkovic\n", + "Oct 10, 2011\n", + "
\"Switzerland\" Timea Bacsinszky\n", + "May 16, 2016\n", + "
\"United CoCo Vandeweghe\n", + "Jan 15, 2018\n", + "
\"Germany\" Julia Görges\n", + "Aug 20, 2018\n", + "
\"Russia\" Daria Kasatkina\n", + "Aug 8, 2022\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
World No. 10\n", + "
Player\n", + "Date reached\n", + "
\"United Kathy May\n", + "Jul 3, 1977\n", + "
\"United Kristien Shaw\n", + "Aug 21, 1977\n", + "
\"United Kathleen Horvath\n", + "Jun 11, 1984\n", + "
\"Sweden\" Catarina Lindqvist\n", + "Apr 15, 1985\n", + "
\"United Stephanie Rehe\n", + "Mar 13, 1989\n", + "
\"Austria\" Barbara Paulus\n", + "Nov 18, 1996\n", + "
\"Slovakia\" Karina Habšudová\n", + "Feb 10, 1997\n", + "
\"Russia\" Maria Kirilenko\n", + "Jun 10, 2013\n", + "
\"France\" Kristina Mladenovic\n", + "Oct 23, 2017\n", + "
\"United Emma Raducanu\n", + "Jul 11, 2022\n", + "
\n", + "

Consecutive weeks in the Top 10[edit]

\n", + "

The below lists the singles players with the most consecutive weeks in the top 10 of the WTA World rankings:[10]\n", + "

\n", + "
  Active streaks in green
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
Player#\n", + "
\"United Martina Navratilova1000\n", + "
\"United Chris Evert746\n", + "
\"Germany\" Steffi Graf625\n", + "
\"Argentina\" Gabriela Sabatini508\n", + "
\"United Pam Shriver458\n", + "
\"Spain\" Arantxa Sánchez Vicario429\n", + "
\"Czech Hana Mandlikova421\n", + "
\"Romania\" Simona Halep373*\n", + "
\"United Lindsay Davenport333\n", + "
\"Spain\" Conchita Martinez319\n", + "
\n", + "

* The 20 weeks period between 23 March 2020 and 10 August 2020, when the WTA Ranking was not published due to COVID pandemic, was not counted.
\n", + "Last update: As of 8 August 2022[update]\n", + "

\n", + "

Number 1 in singles and doubles[edit]

\n", + "

At the same time[edit]

\n", + "

The below lists the players who were ranked number 1 in both singles and doubles at the same time:\n", + "

\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
No.PlayerStart Date
Singles No.1
End Date
Singles No.1
Start Date
Doubles No.1
End Date
Doubles No.1
Overlapping PeriodN. of Weeks
Overlapping
N. of Weeks
Overlapping - Total\n", + "
1\"UnitedMartina NavratilovaJun 14, 1982Jun 09, 1985Sep 04, 1984Mar 17, 1985Sep 04, 1984 - Mar 17, 198528106\n", + "
Nov 25, 1985Aug 16, 1987Jan 20, 1986Jul 20, 1986Jan 20, 1986 - Jul 20, 198626\n", + "
Aug 18, 1986Feb 04, 1990Aug 18, 1986 - Aug 16, 198752\n", + "
2\"Spain\"Arantxa Sánchez VicarioFeb 06, 1995Feb 19, 1995Feb 13, 1995Feb 26, 1995Feb 13, 1995 - Feb 19, 199517\n", + "
Feb 27, 1995Apr 09, 1995Mar 27, 1995Nov 05, 1995Mar 27, 1995 - Apr 09, 19952\n", + "
May 15, 1995Jun 11, 1995May 15, 1995 - Jun 11, 19954\n", + "
3\"Switzerland\"Martina HingisMar 31, 1997Oct 11, 1998Jun 08, 1998Aug 08, 1998Jun 08, 1998 - Aug 08, 1998829\n", + "
Aug 17, 1998Oct 25, 1998Aug 17, 1998 - Oct 11, 19988\n", + "
Feb 08, 1999Jul 04, 1999Jun 07, 1999Jul 04, 1999Jun 07, 1999 - Jul 04, 19994\n", + "
Aug 09, 1999Apr 02, 2000Aug 02, 1999Aug 22, 1999Aug 09, 1999 - Aug 22, 19992\n", + "
Jan 31, 2000Mar 19, 2000Jan 31, 2000 - Mar 19, 20007\n", + "
4\"UnitedLindsay DavenportApr 03, 2000May 07, 2000Apr 17, 2000May 07, 2000Apr 17, 2000 - May 07, 200033\n", + "
5\"Belgium\"Kim ClijstersAug 11, 2003Oct 19, 2003Aug 18, 2003Sep 07, 2003Aug 18, 2003 - Sep 07, 200333\n", + "
6\"UnitedSerena WilliamsNov 02, 2009Oct 10, 2010Jun 07, 2010Aug 01, 2010Jun 07, 2010 - Aug 01, 201088\n", + "
\n", + "

At any time[edit]

\n", + "

The below lists the players who were ranked number 1 in both singles and doubles at any time in their career:\n", + "

\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
No.PlayerFirst Date
Singles No.1
Last Date
Singles No.1
N. of Weeks
Singles No.1
First Date
Doubles No.1
Last Date
Doubles No.1
N. of Weeks
Doubles No.1\n", + "
1\"UnitedMartina NavratilovaJul 10, 1978Aug 16, 1987332Sep 04, 1984May 13, 1990237\n", + "
2\"Spain\"Arantxa Sánchez VicarioFeb 06, 1995Jun 11, 199512Oct 19, 1992Apr 06, 1997111\n", + "
3\"Switzerland\"Martina HingisMar 31, 1997Oct 14, 2001209Jun 08, 1998Mar 18, 201890\n", + "
4\"UnitedLindsay DavenportOct 12, 1998Jan 29, 200698Oct 20, 1997May 07, 200032\n", + "
5\"UnitedVenus WilliamsFeb 25, 2002Jul 07, 200211Jun 07, 2010Aug 01, 20108\n", + "
6\"UnitedSerena WilliamsJul 08, 2002May 14, 2017319Jun 07, 2010Aug 01, 20108\n", + "
7\"Belgium\"Kim ClijstersAug 11, 2003Feb 20, 201120Aug 04, 2003Sep 07, 20034\n", + "
\n", + "

Year End No. 1[edit]

\n", + "

The below lists the players who finished the year ranked number 1 in both singles and doubles:\n", + "

\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
No.PlayerYear\n", + "
1\"UnitedMartina Navratilova (2)1984\n", + "
1986\n", + "
\n", + "

Navratilova also finished number 1 in either ranking list for 8 consecutive seasons: 1982-83 - Singles, 1984 - Singles & Doubles, 1985- Singles, 1986- Singles & Doubles, 1987-89 - Doubles.\n", + "

No other player has managed to finish number 1 in singles and in doubles (same or different years).\n", + "

\n", + "

See also[edit]

\n", + "\n", + "

Notes and references[edit]

\n", + "
\n", + "
    \n", + "
  1. ^ \"WTA rankings\". Women's Tennis Association.\n", + "
  2. \n", + "
  3. ^ \"New Trophies For Rankings Anniversary\". WTA.\n", + "
  4. \n", + "
  5. ^ Rothenberg, Ben (30 May 2016). \"Points and Prize Money Mean More to Olympic Tennis Holdouts\". New York Times.\n", + "
  6. \n", + "
  7. ^ Collins, Bud (2010). The Bud Collins History of Tennis (2nd ed.). New York: New Chapter Press. p. 715. ISBN 978-0942257700.\n", + "
  8. \n", + "
  9. ^ \"2019 WTA Official Rulebook\" (PDF). WTA.\n", + "
  10. \n", + "
  11. ^ \"WTA Singles Rankings\". Women's Tennis Association.\n", + "
  12. \n", + "
  13. ^ \"WTA Doubles Rankings\". Women's Tennis Association.\n", + "
  14. \n", + "
  15. ^ \"WTA Tour All-Time Records\" (PDF). Women's Tennis Association. 2021. Retrieved 2021-08-20. Since the inception of computer singles rankings on November 3, 1975, the No.1 ranking has changed hands 101 times\n", + "
  16. \n", + "
  17. ^ http://wtafiles.wtatennis.com/pdf/publications/2021WTAMediaGuide/2021MG_AllTimeRecords_FINAL.pdf[bare URL PDF]\n", + "
  18. \n", + "
  19. ^ \"Happy Anniversary, Simo: Halep 'honored' by seven-year streak\". Women's Tennis Association. Retrieved 2021-05-17.\n", + "
  20. \n", + "
\n", + "

External links[edit]

\n", + "\n", + "
\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "
\n", + "
\n", + "
\n", + "

Navigation menu

\n", + "
\n", + "\n", + "
\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "\n", + "
\n", + "
\n", + "

\n", + "\n", + "

\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "
\n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
\n", + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "soup = BeautifulSoup(contenido_wta, \"html.parser\") \n", + "soup" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "75ffbee1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
WTA rankings (singles), as of 15 August 2022[update][6]\n", + "
No.\n", + " Player\n", + " Points\n", + " Move\n", + "
1\n", + " \"\" Iga Świątek (POL)8,501\"Steady\"\n", + "
2\n", + " \"\" Anett Kontaveit (EST)4,476\"Steady\"\n", + "
3\n", + " \"\" Maria Sakkari (GRE)4,190\"Increase\" 1\n", + "
4\n", + " \"\" Paula Badosa (ESP)4,155\"Decrease\" 1\n", + "
5\n", + " \"\" Ons Jabeur (TUN)3,920\"Steady\"\n", + "
6\n", + " \"\" Simona Halep (ROU)3,255\"Increase\" 9\n", + "
7\n", + " \"\" Aryna Sabalenka (BLR)3,121\"Decrease\" 1\n", + "
8\n", + " \"\" Jessica Pegula (USA)3,116\"Decrease\" 1\n", + "
9\n", + " \"\" Garbiñe Muguruza (ESP)2,990\"Decrease\" 1\n", + "
10\n", + " \"\" Daria Kasatkina (RUS)2,795\"Decrease\" 1\n", + "
11\n", + " \"\" Belinda Bencic (SUI)2,765\"Increase\" 1\n", + "
12\n", + " \"\" Coco Gauff (USA)2,746\"Decrease\" 1\n", + "
13\n", + " \"\" Emma Raducanu (GBR)2,742\"Decrease\" 3\n", + "
14\n", + " \"\" Leylah Fernandez (CAN)2,569\"Decrease\" 1\n", + "
15\n", + " \"\" Jeļena Ostapenko (LAT)2,361\"Increase\" 1\n", + "
16\n", + " \"\" Beatriz Haddad Maia (BRA)2,317\"Increase\" 8\n", + "
17\n", + " \"\" Karolína Plíšková (CZE)2,297\"Decrease\" 3\n", + "
18\n", + " \"\" Danielle Collins (USA)2,168\"Decrease\" 1\n", + "
19\n", + " \"\" Barbora Krejčíková (CZE)2,163\"Steady\"\n", + "
20\n", + " \"\" Veronika Kudermetova (RUS)2,161\"Decrease\" 2\n", + "
,\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
WTA rankings (doubles individual), as of 15 August 2022[update][7]\n", + "
No.\n", + " Player\n", + " Points\n", + " Move\n", + "
1\n", + " \"\" Coco Gauff (USA)5,945\"Increase\" 5\n", + "
2\n", + " \"\" Zhang Shuai (CHN)5,655\"Steady\"\n", + "
3\n", + " \"\" Kateřina Siniaková (CZE)5,615\"Steady\"\n", + "
4\n", + " \"\" Elise Mertens (BEL)5,580\"Decrease\" 3\n", + "
5\n", + " \"\" Veronika Kudermetova (RUS)4,985\"Decrease\" 1\n", + "
6\n", + " \"\" Gabriela Dabrowski (CAN)4,550\"Decrease\" 1\n", + "
7\n", + " \"\" Barbora Krejčíková (CZE)4,471\"Steady\"\n", + "
8\n", + " \"\" Jessica Pegula (USA)4,450\"Increase\" 4\n", + "
9\n", + " \"\" Samantha Stosur (AUS)4,071\"Decrease\" 1\n", + "
10\n", + " \"\" Ena Shibahara (JPN)3,890\"Decrease\" 1\n", + "
11\n", + " \"\" Shuko Aoyama (JPN)3,720\"Decrease\" 1\n", + "
12\n", + " \"\" Giuliana Olmos (MEX)3,680\"Increase\" 1\n", + "
13\n", + " \"\" Desirae Krawczyk (USA)3,670\"Decrease\" 2\n", + "
14\n", + " \"\" Yang Zhaoxuan (CHN)3,390\"Steady\"\n", + "
15\n", + " \"\" Jeļena Ostapenko (LAT)3,260\"Steady\"\n", + "
16\n", + " \"\" Xu Yifan (CHN)3,210\"Increase\" 1\n", + "
17\n", + " \"\" Lyudmyla Kichenok (UKR)3,165\"Decrease\" 1\n", + "
18\n", + " \"\" Demi Schuurs (NED)3,150\"Increase\" 1\n", + "
19\n", + " \"\" Storm Sanders (AUS)3,115\"Increase\" 1\n", + "
20\n", + " \"\" Catherine McNally (USA)3,105\"Decrease\" 2\n", + "
]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ranking_wta = soup.find_all(\"table\", class_=\"wikitable nowrap sortable\")\n", + "ranking_wta" + ] + }, + { + "cell_type": "markdown", + "id": "7360e3b3", + "metadata": {}, + "source": [ + "## 1. Singles" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "f9cd7587", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
WTA rankings (singles), as of 15 August 2022[update][6]\n", + "
No.\n", + "Player\n", + "Points\n", + "Move\n", + "
1\n", + "\"\" Iga Świątek (POL)8,501\"Steady\"\n", + "
2\n", + "\"\" Anett Kontaveit (EST)4,476\"Steady\"\n", + "
3\n", + "\"\" Maria Sakkari (GRE)4,190\"Increase\" 1\n", + "
4\n", + "\"\" Paula Badosa (ESP)4,155\"Decrease\" 1\n", + "
5\n", + "\"\" Ons Jabeur (TUN)3,920\"Steady\"\n", + "
6\n", + "\"\" Simona Halep (ROU)3,255\"Increase\" 9\n", + "
7\n", + "\"\" Aryna Sabalenka (BLR)3,121\"Decrease\" 1\n", + "
8\n", + "\"\" Jessica Pegula (USA)3,116\"Decrease\" 1\n", + "
9\n", + "\"\" Garbiñe Muguruza (ESP)2,990\"Decrease\" 1\n", + "
10\n", + "\"\" Daria Kasatkina (RUS)2,795\"Decrease\" 1\n", + "
11\n", + "\"\" Belinda Bencic (SUI)2,765\"Increase\" 1\n", + "
12\n", + "\"\" Coco Gauff (USA)2,746\"Decrease\" 1\n", + "
13\n", + "\"\" Emma Raducanu (GBR)2,742\"Decrease\" 3\n", + "
14\n", + "\"\" Leylah Fernandez (CAN)2,569\"Decrease\" 1\n", + "
15\n", + "\"\" Jeļena Ostapenko (LAT)2,361\"Increase\" 1\n", + "
16\n", + "\"\" Beatriz Haddad Maia (BRA)2,317\"Increase\" 8\n", + "
17\n", + "\"\" Karolína Plíšková (CZE)2,297\"Decrease\" 3\n", + "
18\n", + "\"\" Danielle Collins (USA)2,168\"Decrease\" 1\n", + "
19\n", + "\"\" Barbora Krejčíková (CZE)2,163\"Steady\"\n", + "
20\n", + "\"\" Veronika Kudermetova (RUS)2,161\"Decrease\" 2\n", + "
" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# there are 2 tables with the previous class: singles y doubles individual\n", + "\n", + "# first table: singles\n", + "ranking_single = ranking_wta[0]\n", + "ranking_single" + ] + }, + { + "cell_type": "markdown", + "id": "299ac57f", + "metadata": {}, + "source": [ + "### Ranking" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "474695a4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[WTA rankings (singles), as of 15 August 2022[update][6]\n", + " ,\n", + " No.\n", + " ,\n", + " Player\n", + " ,\n", + " Points\n", + " ,\n", + " Move\n", + " ,\n", + " 1\n", + " ,\n", + " 2\n", + " ,\n", + " 3\n", + " ,\n", + " 4\n", + " ,\n", + " 5\n", + " ,\n", + " 6\n", + " ,\n", + " 7\n", + " ,\n", + " 8\n", + " ,\n", + " 9\n", + " ,\n", + " 10\n", + " ,\n", + " 11\n", + " ,\n", + " 12\n", + " ,\n", + " 13\n", + " ,\n", + " 14\n", + " ,\n", + " 15\n", + " ,\n", + " 16\n", + " ,\n", + " 17\n", + " ,\n", + " 18\n", + " ,\n", + " 19\n", + " ,\n", + " 20\n", + " ]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "all_rankings = ranking_single.find_all('th')\n", + "all_rankings" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "bdab600e", + "metadata": {}, + "outputs": [], + "source": [ + "ranking_number = [number.text for number in all_rankings]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "7735d5ae", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['WTA rankings (singles), as of 15\\xa0August\\xa02022[update][6]',\n", + " 'No.',\n", + " 'Player',\n", + " 'Points',\n", + " 'Move†',\n", + " '1',\n", + " '2',\n", + " '3',\n", + " '4',\n", + " '5',\n", + " '6',\n", + " '7',\n", + " '8',\n", + " '9',\n", + " '10',\n", + " '11',\n", + " '12',\n", + " '13',\n", + " '14',\n", + " '15',\n", + " '16',\n", + " '17',\n", + " '18',\n", + " '19',\n", + " '20']" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ranking_number = [ranking_number.strip() for ranking_number in ranking_number]\n", + "ranking_number" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "71a2d445", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['1',\n", + " '2',\n", + " '3',\n", + " '4',\n", + " '5',\n", + " '6',\n", + " '7',\n", + " '8',\n", + " '9',\n", + " '10',\n", + " '11',\n", + " '12',\n", + " '13',\n", + " '14',\n", + " '15',\n", + " '16',\n", + " '17',\n", + " '18',\n", + " '19',\n", + " '20']" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "current_ranking = ranking_number[5:]\n", + "current_ranking" + ] + }, + { + "cell_type": "markdown", + "id": "6a7117b4", + "metadata": {}, + "source": [ + "### Player names" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "fe73ede0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[\"\" Iga Świątek (POL),\n", + " 8,501,\n", + " \"Steady\"\n", + " ,\n", + " \"\" Anett Kontaveit (EST),\n", + " 4,476,\n", + " \"Steady\"\n", + " ,\n", + " \"\" Maria Sakkari (GRE),\n", + " 4,190,\n", + " \"Increase\" 1\n", + " ,\n", + " \"\" Paula Badosa (ESP),\n", + " 4,155,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Ons Jabeur (TUN),\n", + " 3,920,\n", + " \"Steady\"\n", + " ,\n", + " \"\" Simona Halep (ROU),\n", + " 3,255,\n", + " \"Increase\" 9\n", + " ,\n", + " \"\" Aryna Sabalenka (BLR),\n", + " 3,121,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Jessica Pegula (USA),\n", + " 3,116,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Garbiñe Muguruza (ESP),\n", + " 2,990,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Daria Kasatkina (RUS),\n", + " 2,795,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Belinda Bencic (SUI),\n", + " 2,765,\n", + " \"Increase\" 1\n", + " ,\n", + " \"\" Coco Gauff (USA),\n", + " 2,746,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Emma Raducanu (GBR),\n", + " 2,742,\n", + " \"Decrease\" 3\n", + " ,\n", + " \"\" Leylah Fernandez (CAN),\n", + " 2,569,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Jeļena Ostapenko (LAT),\n", + " 2,361,\n", + " \"Increase\" 1\n", + " ,\n", + " \"\" Beatriz Haddad Maia (BRA),\n", + " 2,317,\n", + " \"Increase\" 8\n", + " ,\n", + " \"\" Karolína Plíšková (CZE),\n", + " 2,297,\n", + " \"Decrease\" 3\n", + " ,\n", + " \"\" Danielle Collins (USA),\n", + " 2,168,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Barbora Krejčíková (CZE),\n", + " 2,163,\n", + " \"Steady\"\n", + " ,\n", + " \"\" Veronika Kudermetova (RUS),\n", + " 2,161,\n", + " \"Decrease\" 2\n", + " ]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "all_ranking = ranking_single.find_all('td')\n", + "all_ranking" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "78633255", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['\\xa0Iga Świątek\\xa0(POL)',\n", + " '8,501',\n", + " '\\n',\n", + " '\\xa0Anett Kontaveit\\xa0(EST)',\n", + " '4,476',\n", + " '\\n',\n", + " '\\xa0Maria Sakkari\\xa0(GRE)',\n", + " '4,190',\n", + " ' 1\\n',\n", + " '\\xa0Paula Badosa\\xa0(ESP)',\n", + " '4,155',\n", + " ' 1\\n',\n", + " '\\xa0Ons Jabeur\\xa0(TUN)',\n", + " '3,920',\n", + " '\\n',\n", + " '\\xa0Simona Halep\\xa0(ROU)',\n", + " '3,255',\n", + " ' 9\\n',\n", + " '\\xa0Aryna Sabalenka\\xa0(BLR)',\n", + " '3,121',\n", + " ' 1\\n',\n", + " '\\xa0Jessica Pegula\\xa0(USA)',\n", + " '3,116',\n", + " ' 1\\n',\n", + " '\\xa0Garbiñe Muguruza\\xa0(ESP)',\n", + " '2,990',\n", + " ' 1\\n',\n", + " '\\xa0Daria Kasatkina\\xa0(RUS)',\n", + " '2,795',\n", + " ' 1\\n',\n", + " '\\xa0Belinda Bencic\\xa0(SUI)',\n", + " '2,765',\n", + " ' 1\\n',\n", + " '\\xa0Coco Gauff\\xa0(USA)',\n", + " '2,746',\n", + " ' 1\\n',\n", + " '\\xa0Emma Raducanu\\xa0(GBR)',\n", + " '2,742',\n", + " ' 3\\n',\n", + " '\\xa0Leylah Fernandez\\xa0(CAN)',\n", + " '2,569',\n", + " ' 1\\n',\n", + " '\\xa0Jeļena Ostapenko\\xa0(LAT)',\n", + " '2,361',\n", + " ' 1\\n',\n", + " '\\xa0Beatriz Haddad Maia\\xa0(BRA)',\n", + " '2,317',\n", + " ' 8\\n',\n", + " '\\xa0Karolína Plíšková\\xa0(CZE)',\n", + " '2,297',\n", + " ' 3\\n',\n", + " '\\xa0Danielle Collins\\xa0(USA)',\n", + " '2,168',\n", + " ' 1\\n',\n", + " '\\xa0Barbora Krejčíková\\xa0(CZE)',\n", + " '2,163',\n", + " '\\n',\n", + " '\\xa0Veronika Kudermetova\\xa0(RUS)',\n", + " '2,161',\n", + " ' 2\\n']" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ranking_name = [name.text for name in all_ranking]\n", + "ranking_name" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "0634d4ae", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Iga Świątek\\xa0(POL)',\n", + " '8,501',\n", + " '',\n", + " 'Anett Kontaveit\\xa0(EST)',\n", + " '4,476',\n", + " '',\n", + " 'Maria Sakkari\\xa0(GRE)',\n", + " '4,190',\n", + " '1',\n", + " 'Paula Badosa\\xa0(ESP)',\n", + " '4,155',\n", + " '1',\n", + " 'Ons Jabeur\\xa0(TUN)',\n", + " '3,920',\n", + " '',\n", + " 'Simona Halep\\xa0(ROU)',\n", + " '3,255',\n", + " '9',\n", + " 'Aryna Sabalenka\\xa0(BLR)',\n", + " '3,121',\n", + " '1',\n", + " 'Jessica Pegula\\xa0(USA)',\n", + " '3,116',\n", + " '1',\n", + " 'Garbiñe Muguruza\\xa0(ESP)',\n", + " '2,990',\n", + " '1',\n", + " 'Daria Kasatkina\\xa0(RUS)',\n", + " '2,795',\n", + " '1',\n", + " 'Belinda Bencic\\xa0(SUI)',\n", + " '2,765',\n", + " '1',\n", + " 'Coco Gauff\\xa0(USA)',\n", + " '2,746',\n", + " '1',\n", + " 'Emma Raducanu\\xa0(GBR)',\n", + " '2,742',\n", + " '3',\n", + " 'Leylah Fernandez\\xa0(CAN)',\n", + " '2,569',\n", + " '1',\n", + " 'Jeļena Ostapenko\\xa0(LAT)',\n", + " '2,361',\n", + " '1',\n", + " 'Beatriz Haddad Maia\\xa0(BRA)',\n", + " '2,317',\n", + " '8',\n", + " 'Karolína Plíšková\\xa0(CZE)',\n", + " '2,297',\n", + " '3',\n", + " 'Danielle Collins\\xa0(USA)',\n", + " '2,168',\n", + " '1',\n", + " 'Barbora Krejčíková\\xa0(CZE)',\n", + " '2,163',\n", + " '',\n", + " 'Veronika Kudermetova\\xa0(RUS)',\n", + " '2,161',\n", + " '2']" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ranking_name = [name_ranking.strip() for name_ranking in ranking_name]\n", + "ranking_name" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "41f9d15a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"['Iga Świątek\\\\xa0(POL)', '8,501', '', 'Anett Kontaveit\\\\xa0(EST)', '4,476', '', 'Maria Sakkari\\\\xa0(GRE)', '4,190', '1', 'Paula Badosa\\\\xa0(ESP)', '4,155', '1', 'Ons Jabeur\\\\xa0(TUN)', '3,920', '', 'Simona Halep\\\\xa0(ROU)', '3,255', '9', 'Aryna Sabalenka\\\\xa0(BLR)', '3,121', '1', 'Jessica Pegula\\\\xa0(USA)', '3,116', '1', 'Garbiñe Muguruza\\\\xa0(ESP)', '2,990', '1', 'Daria Kasatkina\\\\xa0(RUS)', '2,795', '1', 'Belinda Bencic\\\\xa0(SUI)', '2,765', '1', 'Coco Gauff\\\\xa0(USA)', '2,746', '1', 'Emma Raducanu\\\\xa0(GBR)', '2,742', '3', 'Leylah Fernandez\\\\xa0(CAN)', '2,569', '1', 'Jeļena Ostapenko\\\\xa0(LAT)', '2,361', '1', 'Beatriz Haddad Maia\\\\xa0(BRA)', '2,317', '8', 'Karolína Plíšková\\\\xa0(CZE)', '2,297', '3', 'Danielle Collins\\\\xa0(USA)', '2,168', '1', 'Barbora Krejčíková\\\\xa0(CZE)', '2,163', '', 'Veronika Kudermetova\\\\xa0(RUS)', '2,161', '2']\"" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "names_string = str(ranking_name)\n", + "names_string" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "4590f6cd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"['Iga Świątek(POL)', '8,501', '', 'Anett Kontaveit(EST)', '4,476', '', 'Maria Sakkari(GRE)', '4,190', '1', 'Paula Badosa(ESP)', '4,155', '1', 'Ons Jabeur(TUN)', '3,920', '', 'Simona Halep(ROU)', '3,255', '9', 'Aryna Sabalenka(BLR)', '3,121', '1', 'Jessica Pegula(USA)', '3,116', '1', 'Garbiñe Muguruza(ESP)', '2,990', '1', 'Daria Kasatkina(RUS)', '2,795', '1', 'Belinda Bencic(SUI)', '2,765', '1', 'Coco Gauff(USA)', '2,746', '1', 'Emma Raducanu(GBR)', '2,742', '3', 'Leylah Fernandez(CAN)', '2,569', '1', 'Jeļena Ostapenko(LAT)', '2,361', '1', 'Beatriz Haddad Maia(BRA)', '2,317', '8', 'Karolína Plíšková(CZE)', '2,297', '3', 'Danielle Collins(USA)', '2,168', '1', 'Barbora Krejčíková(CZE)', '2,163', '', 'Veronika Kudermetova(RUS)', '2,161', '2']\"" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "names_clean = names_string.replace('\\\\xa0', '')\n", + "names_clean" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "20242f09", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['Iga Świątek(POL)',\n", + " 'Anett Kontaveit(EST)',\n", + " 'Maria Sakkari(GRE)',\n", + " 'Paula Badosa(ESP)',\n", + " 'Ons Jabeur(TUN)',\n", + " 'Simona Halep(ROU)',\n", + " 'Aryna Sabalenka(BLR)',\n", + " 'Jessica Pegula(USA)',\n", + " 'Garbiñe Muguruza(ESP)',\n", + " 'Daria Kasatkina(RUS)',\n", + " 'Belinda Bencic(SUI)',\n", + " 'Coco Gauff(USA)',\n", + " 'Emma Raducanu(GBR)',\n", + " 'Leylah Fernandez(CAN)',\n", + " 'Jeļena Ostapenko(LAT)',\n", + " 'Beatriz Haddad Maia(BRA)',\n", + " 'Karolína Plíšková(CZE)',\n", + " 'Danielle Collins(USA)',\n", + " 'Barbora Krejčíková(CZE)',\n", + " 'Veronika Kudermetova(RUS)']" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pattern_names = r'[a-zA-Z].+?[)]'\n", + "\n", + "names_nacionality = re.findall(pattern_names, names_clean)\n", + "names_nacionality" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "6cb6cb50", + "metadata": {}, + "outputs": [], + "source": [ + "names_nacionality_string = str(names_nacionality)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "d14c3ee9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Iga Świątek',\n", + " 'Anett Kontaveit',\n", + " 'Maria Sakkari',\n", + " 'Paula Badosa',\n", + " 'Ons Jabeur',\n", + " 'Simona Halep',\n", + " 'Aryna Sabalenka',\n", + " 'Jessica Pegula',\n", + " 'Garbiñe Muguruza',\n", + " 'Daria Kasatkina',\n", + " 'Belinda Bencic',\n", + " 'Coco Gauff',\n", + " 'Emma Raducanu',\n", + " 'Leylah Fernandez',\n", + " 'Jeļena Ostapenko',\n", + " 'Beatriz Haddad',\n", + " 'Karolína Plíšková',\n", + " 'Danielle Collins',\n", + " 'Barbora Krejčíková',\n", + " 'Veronika Kudermetova']" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pattern_each_name = r'\\b[A-Z]+\\w+\\s+\\w.+?\\b'\n", + "\n", + "names_player = re.findall(pattern_each_name, names_nacionality_string)\n", + "names_player" + ] + }, + { + "cell_type": "markdown", + "id": "d80654ae", + "metadata": {}, + "source": [ + "### Nationality" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "c175a84b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['POL',\n", + " 'EST',\n", + " 'GRE',\n", + " 'ESP',\n", + " 'TUN',\n", + " 'ROU',\n", + " 'BLR',\n", + " 'USA',\n", + " 'ESP',\n", + " 'RUS',\n", + " 'SUI',\n", + " 'USA',\n", + " 'GBR',\n", + " 'CAN',\n", + " 'LAT',\n", + " 'BRA',\n", + " 'CZE',\n", + " 'USA',\n", + " 'CZE',\n", + " 'RUS']" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pattern_nac = r'[A-Z]+\\b'\n", + "nacionality = re.findall(pattern_nac, names_nacionality_string)\n", + "nacionality" + ] + }, + { + "cell_type": "markdown", + "id": "31ce8cd7", + "metadata": {}, + "source": [ + "### Current scores" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "66baffbf", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['8,501',\n", + " '4,476',\n", + " '4,190',\n", + " '4,155',\n", + " '3,920',\n", + " '3,255',\n", + " '3,121',\n", + " '3,116',\n", + " '2,990',\n", + " '2,795',\n", + " '2,765',\n", + " '2,746',\n", + " '2,742',\n", + " '2,569',\n", + " '2,361',\n", + " '2,317',\n", + " '2,297',\n", + " '2,168',\n", + " '2,163',\n", + " '2,161']" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pattern_scores = r'\\d{1}[,]\\d{3}'\n", + "\n", + "current_score = re.findall(pattern_scores, names_clean)\n", + "current_score" + ] + }, + { + "cell_type": "markdown", + "id": "f00d6e00", + "metadata": {}, + "source": [ + "DataFrame\n", + "----" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "a60d3897", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RankingName PlayerNacionalityCurrent Points
01Iga ŚwiątekPOL8,501
12Anett KontaveitEST4,476
23Maria SakkariGRE4,190
34Paula BadosaESP4,155
45Ons JabeurTUN3,920
56Simona HalepROU3,255
67Aryna SabalenkaBLR3,121
78Jessica PegulaUSA3,116
89Garbiñe MuguruzaESP2,990
910Daria KasatkinaRUS2,795
1011Belinda BencicSUI2,765
1112Coco GauffUSA2,746
1213Emma RaducanuGBR2,742
1314Leylah FernandezCAN2,569
1415Jeļena OstapenkoLAT2,361
1516Beatriz HaddadBRA2,317
1617Karolína PlíškováCZE2,297
1718Danielle CollinsUSA2,168
1819Barbora KrejčíkováCZE2,163
1920Veronika KudermetovaRUS2,161
\n", + "
" + ], + "text/plain": [ + " Ranking Name Player Nacionality Current Points\n", + "0 1 Iga Świątek POL 8,501\n", + "1 2 Anett Kontaveit EST 4,476\n", + "2 3 Maria Sakkari GRE 4,190\n", + "3 4 Paula Badosa ESP 4,155\n", + "4 5 Ons Jabeur TUN 3,920\n", + "5 6 Simona Halep ROU 3,255\n", + "6 7 Aryna Sabalenka BLR 3,121\n", + "7 8 Jessica Pegula USA 3,116\n", + "8 9 Garbiñe Muguruza ESP 2,990\n", + "9 10 Daria Kasatkina RUS 2,795\n", + "10 11 Belinda Bencic SUI 2,765\n", + "11 12 Coco Gauff USA 2,746\n", + "12 13 Emma Raducanu GBR 2,742\n", + "13 14 Leylah Fernandez CAN 2,569\n", + "14 15 Jeļena Ostapenko LAT 2,361\n", + "15 16 Beatriz Haddad BRA 2,317\n", + "16 17 Karolína Plíšková CZE 2,297\n", + "17 18 Danielle Collins USA 2,168\n", + "18 19 Barbora Krejčíková CZE 2,163\n", + "19 20 Veronika Kudermetova RUS 2,161" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_ranking_single = pd.DataFrame(list(zip(current_ranking, names_player, nacionality, current_score)),\n", + " columns=['Ranking', 'Name Player', 'Nacionality', 'Current Points'])\n", + "\n", + "df_ranking_single" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "ee138438", + "metadata": {}, + "outputs": [], + "source": [ + "# csv\n", + "\n", + "df_ranking_single.to_csv(r'csv/WebScraping_RankingSingle.csv', index=False)" + ] + }, + { + "cell_type": "markdown", + "id": "6f8cc59d", + "metadata": {}, + "source": [ + "------" + ] + }, + { + "cell_type": "markdown", + "id": "6fc2643b", + "metadata": {}, + "source": [ + "## 2. Doubles individual" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "1d36e267", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
WTA rankings (doubles individual), as of 15 August 2022[update][7]\n", + "
No.\n", + "Player\n", + "Points\n", + "Move\n", + "
1\n", + "\"\" Coco Gauff (USA)5,945\"Increase\" 5\n", + "
2\n", + "\"\" Zhang Shuai (CHN)5,655\"Steady\"\n", + "
3\n", + "\"\" Kateřina Siniaková (CZE)5,615\"Steady\"\n", + "
4\n", + "\"\" Elise Mertens (BEL)5,580\"Decrease\" 3\n", + "
5\n", + "\"\" Veronika Kudermetova (RUS)4,985\"Decrease\" 1\n", + "
6\n", + "\"\" Gabriela Dabrowski (CAN)4,550\"Decrease\" 1\n", + "
7\n", + "\"\" Barbora Krejčíková (CZE)4,471\"Steady\"\n", + "
8\n", + "\"\" Jessica Pegula (USA)4,450\"Increase\" 4\n", + "
9\n", + "\"\" Samantha Stosur (AUS)4,071\"Decrease\" 1\n", + "
10\n", + "\"\" Ena Shibahara (JPN)3,890\"Decrease\" 1\n", + "
11\n", + "\"\" Shuko Aoyama (JPN)3,720\"Decrease\" 1\n", + "
12\n", + "\"\" Giuliana Olmos (MEX)3,680\"Increase\" 1\n", + "
13\n", + "\"\" Desirae Krawczyk (USA)3,670\"Decrease\" 2\n", + "
14\n", + "\"\" Yang Zhaoxuan (CHN)3,390\"Steady\"\n", + "
15\n", + "\"\" Jeļena Ostapenko (LAT)3,260\"Steady\"\n", + "
16\n", + "\"\" Xu Yifan (CHN)3,210\"Increase\" 1\n", + "
17\n", + "\"\" Lyudmyla Kichenok (UKR)3,165\"Decrease\" 1\n", + "
18\n", + "\"\" Demi Schuurs (NED)3,150\"Increase\" 1\n", + "
19\n", + "\"\" Storm Sanders (AUS)3,115\"Increase\" 1\n", + "
20\n", + "\"\" Catherine McNally (USA)3,105\"Decrease\" 2\n", + "
" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ranking_doubles = ranking_wta[1]\n", + "ranking_doubles" + ] + }, + { + "cell_type": "markdown", + "id": "d488a641", + "metadata": {}, + "source": [ + "### Ranking" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "93fae6bd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['1',\n", + " '2',\n", + " '3',\n", + " '4',\n", + " '5',\n", + " '6',\n", + " '7',\n", + " '8',\n", + " '9',\n", + " '10',\n", + " '11',\n", + " '12',\n", + " '13',\n", + " '14',\n", + " '15',\n", + " '16',\n", + " '17',\n", + " '18',\n", + " '19',\n", + " '20']" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# same numeration (1-20) than single ranking\n", + "current_ranking_doubles = ranking_number[5:]\n", + "current_ranking_doubles" + ] + }, + { + "cell_type": "markdown", + "id": "0db30a55", + "metadata": {}, + "source": [ + "### Player names" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "87246c69", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[\"\" Coco Gauff (USA),\n", + " 5,945,\n", + " \"Increase\" 5\n", + " ,\n", + " \"\" Zhang Shuai (CHN),\n", + " 5,655,\n", + " \"Steady\"\n", + " ,\n", + " \"\" Kateřina Siniaková (CZE),\n", + " 5,615,\n", + " \"Steady\"\n", + " ,\n", + " \"\" Elise Mertens (BEL),\n", + " 5,580,\n", + " \"Decrease\" 3\n", + " ,\n", + " \"\" Veronika Kudermetova (RUS),\n", + " 4,985,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Gabriela Dabrowski (CAN),\n", + " 4,550,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Barbora Krejčíková (CZE),\n", + " 4,471,\n", + " \"Steady\"\n", + " ,\n", + " \"\" Jessica Pegula (USA),\n", + " 4,450,\n", + " \"Increase\" 4\n", + " ,\n", + " \"\" Samantha Stosur (AUS),\n", + " 4,071,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Ena Shibahara (JPN),\n", + " 3,890,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Shuko Aoyama (JPN),\n", + " 3,720,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Giuliana Olmos (MEX),\n", + " 3,680,\n", + " \"Increase\" 1\n", + " ,\n", + " \"\" Desirae Krawczyk (USA),\n", + " 3,670,\n", + " \"Decrease\" 2\n", + " ,\n", + " \"\" Yang Zhaoxuan (CHN),\n", + " 3,390,\n", + " \"Steady\"\n", + " ,\n", + " \"\" Jeļena Ostapenko (LAT),\n", + " 3,260,\n", + " \"Steady\"\n", + " ,\n", + " \"\" Xu Yifan (CHN),\n", + " 3,210,\n", + " \"Increase\" 1\n", + " ,\n", + " \"\" Lyudmyla Kichenok (UKR),\n", + " 3,165,\n", + " \"Decrease\" 1\n", + " ,\n", + " \"\" Demi Schuurs (NED),\n", + " 3,150,\n", + " \"Increase\" 1\n", + " ,\n", + " \"\" Storm Sanders (AUS),\n", + " 3,115,\n", + " \"Increase\" 1\n", + " ,\n", + " \"\" Catherine McNally (USA),\n", + " 3,105,\n", + " \"Decrease\" 2\n", + " ]" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "all_ranking_doubles = ranking_doubles.find_all('td')\n", + "all_ranking_doubles " + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "83bf74cf", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['\\xa0Coco Gauff\\xa0(USA)',\n", + " '5,945',\n", + " ' 5\\n',\n", + " '\\xa0Zhang Shuai\\xa0(CHN)',\n", + " '5,655',\n", + " '\\n',\n", + " '\\xa0Kateřina Siniaková\\xa0(CZE)',\n", + " '5,615',\n", + " '\\n',\n", + " '\\xa0Elise Mertens\\xa0(BEL)',\n", + " '5,580',\n", + " ' 3\\n',\n", + " '\\xa0Veronika Kudermetova\\xa0(RUS)',\n", + " '4,985',\n", + " ' 1\\n',\n", + " '\\xa0Gabriela Dabrowski\\xa0(CAN)',\n", + " '4,550',\n", + " ' 1\\n',\n", + " '\\xa0Barbora Krejčíková\\xa0(CZE)',\n", + " '4,471',\n", + " '\\n',\n", + " '\\xa0Jessica Pegula\\xa0(USA)',\n", + " '4,450',\n", + " ' 4\\n',\n", + " '\\xa0Samantha Stosur\\xa0(AUS)',\n", + " '4,071',\n", + " ' 1\\n',\n", + " '\\xa0Ena Shibahara\\xa0(JPN)',\n", + " '3,890',\n", + " ' 1\\n',\n", + " '\\xa0Shuko Aoyama\\xa0(JPN)',\n", + " '3,720',\n", + " ' 1\\n',\n", + " '\\xa0Giuliana Olmos\\xa0(MEX)',\n", + " '3,680',\n", + " ' 1\\n',\n", + " '\\xa0Desirae Krawczyk\\xa0(USA)',\n", + " '3,670',\n", + " ' 2\\n',\n", + " '\\xa0Yang Zhaoxuan\\xa0(CHN)',\n", + " '3,390',\n", + " '\\n',\n", + " '\\xa0Jeļena Ostapenko\\xa0(LAT)',\n", + " '3,260',\n", + " '\\n',\n", + " '\\xa0Xu Yifan\\xa0(CHN)',\n", + " '3,210',\n", + " ' 1\\n',\n", + " '\\xa0Lyudmyla Kichenok\\xa0(UKR)',\n", + " '3,165',\n", + " ' 1\\n',\n", + " '\\xa0Demi Schuurs\\xa0(NED)',\n", + " '3,150',\n", + " ' 1\\n',\n", + " '\\xa0Storm Sanders\\xa0(AUS)',\n", + " '3,115',\n", + " ' 1\\n',\n", + " '\\xa0Catherine McNally\\xa0(USA)',\n", + " '3,105',\n", + " ' 2\\n']" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ranking_name_doubles = [name.text for name in all_ranking_doubles]\n", + "ranking_name_doubles" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "09e73549", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['Coco Gauff\\xa0(USA)',\n", + " '5,945',\n", + " '5',\n", + " 'Zhang Shuai\\xa0(CHN)',\n", + " '5,655',\n", + " '',\n", + " 'Kateřina Siniaková\\xa0(CZE)',\n", + " '5,615',\n", + " '',\n", + " 'Elise Mertens\\xa0(BEL)',\n", + " '5,580',\n", + " '3',\n", + " 'Veronika Kudermetova\\xa0(RUS)',\n", + " '4,985',\n", + " '1',\n", + " 'Gabriela Dabrowski\\xa0(CAN)',\n", + " '4,550',\n", + " '1',\n", + " 'Barbora Krejčíková\\xa0(CZE)',\n", + " '4,471',\n", + " '',\n", + " 'Jessica Pegula\\xa0(USA)',\n", + " '4,450',\n", + " '4',\n", + " 'Samantha Stosur\\xa0(AUS)',\n", + " '4,071',\n", + " '1',\n", + " 'Ena Shibahara\\xa0(JPN)',\n", + " '3,890',\n", + " '1',\n", + " 'Shuko Aoyama\\xa0(JPN)',\n", + " '3,720',\n", + " '1',\n", + " 'Giuliana Olmos\\xa0(MEX)',\n", + " '3,680',\n", + " '1',\n", + " 'Desirae Krawczyk\\xa0(USA)',\n", + " '3,670',\n", + " '2',\n", + " 'Yang Zhaoxuan\\xa0(CHN)',\n", + " '3,390',\n", + " '',\n", + " 'Jeļena Ostapenko\\xa0(LAT)',\n", + " '3,260',\n", + " '',\n", + " 'Xu Yifan\\xa0(CHN)',\n", + " '3,210',\n", + " '1',\n", + " 'Lyudmyla Kichenok\\xa0(UKR)',\n", + " '3,165',\n", + " '1',\n", + " 'Demi Schuurs\\xa0(NED)',\n", + " '3,150',\n", + " '1',\n", + " 'Storm Sanders\\xa0(AUS)',\n", + " '3,115',\n", + " '1',\n", + " 'Catherine McNally\\xa0(USA)',\n", + " '3,105',\n", + " '2']" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ranking_name_doubles = [all_ranking_doubles.strip() for all_ranking_doubles in ranking_name_doubles]\n", + "ranking_name_doubles" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "68f9a21d", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "\"['Coco Gauff\\\\xa0(USA)', '5,945', '5', 'Zhang Shuai\\\\xa0(CHN)', '5,655', '', 'Kateřina Siniaková\\\\xa0(CZE)', '5,615', '', 'Elise Mertens\\\\xa0(BEL)', '5,580', '3', 'Veronika Kudermetova\\\\xa0(RUS)', '4,985', '1', 'Gabriela Dabrowski\\\\xa0(CAN)', '4,550', '1', 'Barbora Krejčíková\\\\xa0(CZE)', '4,471', '', 'Jessica Pegula\\\\xa0(USA)', '4,450', '4', 'Samantha Stosur\\\\xa0(AUS)', '4,071', '1', 'Ena Shibahara\\\\xa0(JPN)', '3,890', '1', 'Shuko Aoyama\\\\xa0(JPN)', '3,720', '1', 'Giuliana Olmos\\\\xa0(MEX)', '3,680', '1', 'Desirae Krawczyk\\\\xa0(USA)', '3,670', '2', 'Yang Zhaoxuan\\\\xa0(CHN)', '3,390', '', 'Jeļena Ostapenko\\\\xa0(LAT)', '3,260', '', 'Xu Yifan\\\\xa0(CHN)', '3,210', '1', 'Lyudmyla Kichenok\\\\xa0(UKR)', '3,165', '1', 'Demi Schuurs\\\\xa0(NED)', '3,150', '1', 'Storm Sanders\\\\xa0(AUS)', '3,115', '1', 'Catherine McNally\\\\xa0(USA)', '3,105', '2']\"" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "names_string_doubles = str(ranking_name_doubles)\n", + "names_string_doubles" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "f42fe22c", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "\"['Coco Gauff(USA)', '5,945', '5', 'Zhang Shuai(CHN)', '5,655', '', 'Kateřina Siniaková(CZE)', '5,615', '', 'Elise Mertens(BEL)', '5,580', '3', 'Veronika Kudermetova(RUS)', '4,985', '1', 'Gabriela Dabrowski(CAN)', '4,550', '1', 'Barbora Krejčíková(CZE)', '4,471', '', 'Jessica Pegula(USA)', '4,450', '4', 'Samantha Stosur(AUS)', '4,071', '1', 'Ena Shibahara(JPN)', '3,890', '1', 'Shuko Aoyama(JPN)', '3,720', '1', 'Giuliana Olmos(MEX)', '3,680', '1', 'Desirae Krawczyk(USA)', '3,670', '2', 'Yang Zhaoxuan(CHN)', '3,390', '', 'Jeļena Ostapenko(LAT)', '3,260', '', 'Xu Yifan(CHN)', '3,210', '1', 'Lyudmyla Kichenok(UKR)', '3,165', '1', 'Demi Schuurs(NED)', '3,150', '1', 'Storm Sanders(AUS)', '3,115', '1', 'Catherine McNally(USA)', '3,105', '2']\"" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "names_clean_doubles = names_string_doubles.replace('\\\\xa0', '')\n", + "names_clean_doubles" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "75fa2287", + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "['Coco Gauff(USA)',\n", + " 'Zhang Shuai(CHN)',\n", + " 'Kateřina Siniaková(CZE)',\n", + " 'Elise Mertens(BEL)',\n", + " 'Veronika Kudermetova(RUS)',\n", + " 'Gabriela Dabrowski(CAN)',\n", + " 'Barbora Krejčíková(CZE)',\n", + " 'Jessica Pegula(USA)',\n", + " 'Samantha Stosur(AUS)',\n", + " 'Ena Shibahara(JPN)',\n", + " 'Shuko Aoyama(JPN)',\n", + " 'Giuliana Olmos(MEX)',\n", + " 'Desirae Krawczyk(USA)',\n", + " 'Yang Zhaoxuan(CHN)',\n", + " 'Jeļena Ostapenko(LAT)',\n", + " 'Xu Yifan(CHN)',\n", + " 'Lyudmyla Kichenok(UKR)',\n", + " 'Demi Schuurs(NED)',\n", + " 'Storm Sanders(AUS)',\n", + " 'Catherine McNally(USA)']" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pattern_names = r'[a-zA-Z].+?[)]'\n", + "\n", + "names_nacionality_doubles = re.findall(pattern_names, names_clean_doubles)\n", + "names_nacionality_doubles" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "b6b806e2", + "metadata": {}, + "outputs": [], + "source": [ + "names_nacionality_doubles_string = str(names_nacionality_doubles)" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "af6e8464", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['Coco Gauff',\n", + " 'Zhang Shuai',\n", + " 'Kateřina Siniaková',\n", + " 'Elise Mertens',\n", + " 'Veronika Kudermetova',\n", + " 'Gabriela Dabrowski',\n", + " 'Barbora Krejčíková',\n", + " 'Jessica Pegula',\n", + " 'Samantha Stosur',\n", + " 'Ena Shibahara',\n", + " 'Shuko Aoyama',\n", + " 'Giuliana Olmos',\n", + " 'Desirae Krawczyk',\n", + " 'Yang Zhaoxuan',\n", + " 'Jeļena Ostapenko',\n", + " 'Xu Yifan',\n", + " 'Lyudmyla Kichenok',\n", + " 'Demi Schuurs',\n", + " 'Storm Sanders',\n", + " 'Catherine McNally']" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pattern_each_name = r'\\b[A-Z]+\\w+\\s+\\w.+?\\b'\n", + "\n", + "names_player_doubles = re.findall(pattern_each_name, names_nacionality_doubles_string)\n", + "names_player_doubles" + ] + }, + { + "cell_type": "markdown", + "id": "a7ad7017", + "metadata": {}, + "source": [ + "### Nationality" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "e2122f78", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['USA',\n", + " 'CHN',\n", + " 'CZE',\n", + " 'BEL',\n", + " 'RUS',\n", + " 'CAN',\n", + " 'CZE',\n", + " 'USA',\n", + " 'AUS',\n", + " 'JPN',\n", + " 'JPN',\n", + " 'MEX',\n", + " 'USA',\n", + " 'CHN',\n", + " 'LAT',\n", + " 'CHN',\n", + " 'UKR',\n", + " 'NED',\n", + " 'AUS',\n", + " 'USA']" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pattern_nac = r'[A-Z]+\\b'\n", + "nacionality_doubles = re.findall(pattern_nac, names_nacionality_doubles_string)\n", + "nacionality_doubles" + ] + }, + { + "cell_type": "markdown", + "id": "b927b44a", + "metadata": {}, + "source": [ + "### Current scores" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "dd87292d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['5,945',\n", + " '5,655',\n", + " '5,615',\n", + " '5,580',\n", + " '4,985',\n", + " '4,550',\n", + " '4,471',\n", + " '4,450',\n", + " '4,071',\n", + " '3,890',\n", + " '3,720',\n", + " '3,680',\n", + " '3,670',\n", + " '3,390',\n", + " '3,260',\n", + " '3,210',\n", + " '3,165',\n", + " '3,150',\n", + " '3,115',\n", + " '3,105']" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pattern_scores = r'\\d{1}[,]\\d{3}'\n", + "\n", + "current_score_doubles = re.findall(pattern_scores, names_clean_doubles)\n", + "current_score_doubles" + ] + }, + { + "cell_type": "markdown", + "id": "c90ef784", + "metadata": {}, + "source": [ + "DataFrame\n", + "----" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "3ea54392", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RankingName PlayerNacionalityCurrent Points
01Coco GauffUSA5,945
12Zhang ShuaiCHN5,655
23Kateřina SiniakováCZE5,615
34Elise MertensBEL5,580
45Veronika KudermetovaRUS4,985
56Gabriela DabrowskiCAN4,550
67Barbora KrejčíkováCZE4,471
78Jessica PegulaUSA4,450
89Samantha StosurAUS4,071
910Ena ShibaharaJPN3,890
1011Shuko AoyamaJPN3,720
1112Giuliana OlmosMEX3,680
1213Desirae KrawczykUSA3,670
1314Yang ZhaoxuanCHN3,390
1415Jeļena OstapenkoLAT3,260
1516Xu YifanCHN3,210
1617Lyudmyla KichenokUKR3,165
1718Demi SchuursNED3,150
1819Storm SandersAUS3,115
1920Catherine McNallyUSA3,105
\n", + "
" + ], + "text/plain": [ + " Ranking Name Player Nacionality Current Points\n", + "0 1 Coco Gauff USA 5,945\n", + "1 2 Zhang Shuai CHN 5,655\n", + "2 3 Kateřina Siniaková CZE 5,615\n", + "3 4 Elise Mertens BEL 5,580\n", + "4 5 Veronika Kudermetova RUS 4,985\n", + "5 6 Gabriela Dabrowski CAN 4,550\n", + "6 7 Barbora Krejčíková CZE 4,471\n", + "7 8 Jessica Pegula USA 4,450\n", + "8 9 Samantha Stosur AUS 4,071\n", + "9 10 Ena Shibahara JPN 3,890\n", + "10 11 Shuko Aoyama JPN 3,720\n", + "11 12 Giuliana Olmos MEX 3,680\n", + "12 13 Desirae Krawczyk USA 3,670\n", + "13 14 Yang Zhaoxuan CHN 3,390\n", + "14 15 Jeļena Ostapenko LAT 3,260\n", + "15 16 Xu Yifan CHN 3,210\n", + "16 17 Lyudmyla Kichenok UKR 3,165\n", + "17 18 Demi Schuurs NED 3,150\n", + "18 19 Storm Sanders AUS 3,115\n", + "19 20 Catherine McNally USA 3,105" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_ranking_doubles = pd.DataFrame(list(zip(current_ranking_doubles, names_player_doubles, nacionality_doubles, current_score_doubles)),\n", + " columns=['Ranking', 'Name Player', 'Nacionality', 'Current Points'])\n", + "\n", + "df_ranking_doubles" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "id": "d4df139f", + "metadata": {}, + "outputs": [], + "source": [ + "# csv\n", + "\n", + "df_ranking_doubles.to_csv(r'csv/WebScraping_RankingDoubles.csv', index=False)" + ] + }, + { + "cell_type": "markdown", + "id": "8cd9ea4e", + "metadata": {}, + "source": [ + "------" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/csv/.DS_Store b/csv/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0