diff --git a/01_Billboard.ipynb b/01_Billboard.ipynb
index 779a38c..ce5ea35 100644
--- a/01_Billboard.ipynb
+++ b/01_Billboard.ipynb
@@ -2,7 +2,6 @@
"cells": [
{
"cell_type": "markdown",
- "id": "adequate-aurora",
"metadata": {
"toc": true
},
@@ -13,7 +12,6 @@
},
{
"cell_type": "markdown",
- "id": "together-terminology",
"metadata": {},
"source": [
"## Import libraries"
@@ -22,7 +20,6 @@
{
"cell_type": "code",
"execution_count": 1,
- "id": "little-prophet",
"metadata": {},
"outputs": [],
"source": [
@@ -33,7 +30,6 @@
},
{
"cell_type": "markdown",
- "id": "political-wright",
"metadata": {},
"source": [
"## Store the hot-100 songs list from billboard url in a variable"
@@ -41,8 +37,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "promotional-algorithm",
+ "execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
@@ -51,7 +46,6 @@
},
{
"cell_type": "markdown",
- "id": "indian-fossil",
"metadata": {},
"source": [
"## Download html with a get request"
@@ -59,17 +53,29 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "civic-broad",
+ "execution_count": 3,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "200"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
+ "get = requests.get(url)\n",
+ "get.status_code\n",
+ "\n",
"# 200 status code means OK!"
]
},
{
"cell_type": "markdown",
- "id": "arbitrary-patrick",
"metadata": {},
"source": [
"## Parse html (create the 'soup')"
@@ -77,15 +83,15 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "revised-digest",
+ "execution_count": 4,
"metadata": {},
"outputs": [],
- "source": []
+ "source": [
+ "soup = BeautifulSoup(get.content, \"html.parser\")"
+ ]
},
{
"cell_type": "markdown",
- "id": "damaged-watts",
"metadata": {},
"source": [
"## Retrieve/extract the desired info"
@@ -93,25 +99,28 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "falling-chambers",
+ "execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# song titles\n",
+ "song_titles = soup.find_all(\"span\", class_=\"chart-element__information__song text--truncate color--primary\")\n",
"\n",
"# artists\n",
+ "artists = soup.find_all(\"span\", class_=\"chart-element__information__artist text--truncate color--secondary\")\n",
"\n",
"# last week\n",
+ "last_week_ranks = soup.find_all(\"span\", class_= \"chart-element__meta text--center color--secondary text--last\")\n",
"\n",
"# peak rank\n",
+ "peak_ranks = soup.find_all(\"span\", class_= \"chart-element__meta text--center color--secondary text--peak\")\n",
"\n",
- "# weeks on chart\n"
+ "# weeks on chart\n",
+ "weeks_on_chart = soup.find_all(\"span\", class_= \"chart-element__meta text--center color--secondary text--week\")\n"
]
},
{
"cell_type": "markdown",
- "id": "employed-chemistry",
"metadata": {},
"source": [
"## Get the text"
@@ -119,15 +128,794 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "amateur-protocol",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# function to return just the text from each of the html variables from above\n",
+ "# also takes a list of the html variables so I don't have to apply the function to each one individually\n",
+ "\n",
+ "def text_getter(list_of_html_elements):\n",
+ " for element in list_of_html_elements:\n",
+ " for datapoint in range(len(element)):\n",
+ " element[datapoint] = element[datapoint].get_text()\n",
+ " return(list_of_html_elements)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
"metadata": {},
"outputs": [],
- "source": []
+ "source": [
+ "# list of the above variables \n",
+ "\n",
+ "lsts = [song_titles, artists, last_week_ranks, peak_ranks, weeks_on_chart]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[['My Universe',\n",
+ " 'Stay',\n",
+ " 'Industry Baby',\n",
+ " 'Way 2 Sexy',\n",
+ " 'Fancy Like',\n",
+ " 'Bad Habits',\n",
+ " 'Good 4 U',\n",
+ " 'Kiss Me More',\n",
+ " 'Knife Talk',\n",
+ " 'Levitating',\n",
+ " 'Essence',\n",
+ " 'Save Your Tears',\n",
+ " 'Montero (Call Me By Your Name)',\n",
+ " 'Shivers',\n",
+ " 'Heat Waves',\n",
+ " 'Need To Know',\n",
+ " 'Girls Want Girls',\n",
+ " 'You Right',\n",
+ " \"Beggin'\",\n",
+ " 'Wockesha',\n",
+ " \"If I Didn't Love You\",\n",
+ " 'Take My Breath',\n",
+ " 'Fair Trade',\n",
+ " 'Thats What I Want',\n",
+ " 'Traitor',\n",
+ " 'Cold Beer Calling My Name',\n",
+ " 'Chasing After You',\n",
+ " 'Bad Morning',\n",
+ " 'Pepas',\n",
+ " 'Deja Vu',\n",
+ " 'Happier Than Ever',\n",
+ " 'Your Heart',\n",
+ " 'Leave The Door Open',\n",
+ " 'Hurricane',\n",
+ " 'A-O-K',\n",
+ " 'Butter',\n",
+ " 'On My Side',\n",
+ " 'Too Easy',\n",
+ " 'Leave Before You Love Me',\n",
+ " 'No Where',\n",
+ " 'Peaches',\n",
+ " 'Family Ties',\n",
+ " \"Memory I Don't Mess With\",\n",
+ " 'Late At Night',\n",
+ " 'Things A Man Oughta Know',\n",
+ " 'Cold Heart (PNAU Remix)',\n",
+ " 'Meet Me At Our Spot',\n",
+ " 'Life Support',\n",
+ " 'I Was On A Boat That Day',\n",
+ " 'Love Nwantiti (Ah Ah Ah)',\n",
+ " 'Wild Side',\n",
+ " 'Whole Lotta Money',\n",
+ " 'Hold Me Down',\n",
+ " 'Champagne Poetry',\n",
+ " 'Buy Dirt',\n",
+ " 'Have Mercy',\n",
+ " 'Love Again',\n",
+ " 'Nevada',\n",
+ " '50 Shots',\n",
+ " 'No Friends In The Industry',\n",
+ " 'Smoke Strong',\n",
+ " 'Break Or Make Me',\n",
+ " 'You Time',\n",
+ " 'Gyalis',\n",
+ " 'Cold As You',\n",
+ " 'My Boy',\n",
+ " 'Sincerely',\n",
+ " \"Drunk (And I Don't Wanna Go Home)\",\n",
+ " \"I Can't Take It Back\",\n",
+ " 'Waves',\n",
+ " 'Sharing Locations',\n",
+ " 'In The Bible',\n",
+ " 'Thot Shit',\n",
+ " 'Rumors',\n",
+ " 'Woman',\n",
+ " \"Thinking 'Bout You\",\n",
+ " 'Baddest',\n",
+ " '2055',\n",
+ " 'Memory',\n",
+ " 'Forgiato',\n",
+ " 'You Should Probably Leave',\n",
+ " \"Drinkin' Beer. Talkin' God. Amen.\",\n",
+ " 'Rich Shit',\n",
+ " 'TSU',\n",
+ " 'Volvi',\n",
+ " 'Todo de Ti',\n",
+ " 'Love All',\n",
+ " 'N 2 Deep',\n",
+ " 'Yonaguni',\n",
+ " 'Knowing You',\n",
+ " 'For Tonight',\n",
+ " 'Baddest Thing',\n",
+ " 'Summer Of Love',\n",
+ " 'Get Into It (Yuh)',\n",
+ " 'Same Boat',\n",
+ " 'Pipe Down',\n",
+ " \"Papi's Home\",\n",
+ " 'Chosen',\n",
+ " 'Toxic Punk',\n",
+ " 'Moon'],\n",
+ " ['Coldplay x BTS',\n",
+ " 'The Kid LAROI & Justin Bieber',\n",
+ " 'Lil Nas X & Jack Harlow',\n",
+ " 'Drake Featuring Future & Young Thug',\n",
+ " 'Walker Hayes',\n",
+ " 'Ed Sheeran',\n",
+ " 'Olivia Rodrigo',\n",
+ " 'Doja Cat Featuring SZA',\n",
+ " 'Drake Featuring 21 Savage & Project Pat',\n",
+ " 'Dua Lipa',\n",
+ " 'Wizkid Featuring Justin Bieber & Tems',\n",
+ " 'The Weeknd & Ariana Grande',\n",
+ " 'Lil Nas X',\n",
+ " 'Ed Sheeran',\n",
+ " 'Glass Animals',\n",
+ " 'Doja Cat',\n",
+ " 'Drake Featuring Lil Baby',\n",
+ " 'Doja Cat & The Weeknd',\n",
+ " 'Maneskin',\n",
+ " 'Moneybagg Yo',\n",
+ " 'Jason Aldean & Carrie Underwood',\n",
+ " 'The Weeknd',\n",
+ " 'Drake Featuring Travis Scott',\n",
+ " 'Lil Nas X',\n",
+ " 'Olivia Rodrigo',\n",
+ " 'Jameson Rodgers Featuring Luke Combs',\n",
+ " 'Ryan Hurd With Maren Morris',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Farruko',\n",
+ " 'Olivia Rodrigo',\n",
+ " 'Billie Eilish',\n",
+ " 'Joyner Lucas & J. Cole',\n",
+ " 'Silk Sonic (Bruno Mars & Anderson .Paak)',\n",
+ " 'Kanye West',\n",
+ " 'Tai Verdes',\n",
+ " 'BTS',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Gunna & Future',\n",
+ " 'Marshmello X Jonas Brothers',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Justin Bieber Featuring Daniel Caesar & Giveon',\n",
+ " 'Baby Keem & Kendrick Lamar',\n",
+ " 'Lee Brice',\n",
+ " 'Roddy Ricch',\n",
+ " 'Lainey Wilson',\n",
+ " 'Elton John & Dua Lipa',\n",
+ " 'THE ANXIETY: WILLOW & Tyler Cole',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Old Dominion',\n",
+ " 'CKay',\n",
+ " 'Normani Featuring Cardi B',\n",
+ " 'BIA Featuring Nicki Minaj',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Drake',\n",
+ " 'Jordan Davis Featuring Luke Bryan',\n",
+ " 'Chloe',\n",
+ " 'Dua Lipa',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Drake',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Scotty McCreery',\n",
+ " 'Capella Grey',\n",
+ " 'Luke Combs',\n",
+ " 'Elvie Shane',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Elle King & Miranda Lambert',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Luke Bryan',\n",
+ " 'Meek Mill Featuring Lil Baby & Lil Durk',\n",
+ " 'Drake Featuring Lil Durk & Giveon',\n",
+ " 'Megan Thee Stallion',\n",
+ " 'Lizzo Featuring Cardi B',\n",
+ " 'Doja Cat',\n",
+ " 'Dustin Lynch Featuring Lauren Alaina Or MacKenzie Porter',\n",
+ " 'Yung Bleu, Chris Brown & 2 Chainz',\n",
+ " 'Sleepy Hallow',\n",
+ " 'Kane Brown X blackbear',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Chris Stapleton',\n",
+ " 'Chase Rice Featuring Florida Georgia Line',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Drake',\n",
+ " 'Aventura x Bad Bunny',\n",
+ " 'Rauw Alejandro',\n",
+ " 'Drake Featuring JAY-Z',\n",
+ " 'Drake Featuring Future',\n",
+ " 'Bad Bunny',\n",
+ " 'Kenny Chesney',\n",
+ " 'Giveon',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Shawn Mendes & Tainy',\n",
+ " 'Doja Cat',\n",
+ " 'Zac Brown Band',\n",
+ " 'Drake',\n",
+ " 'Drake',\n",
+ " 'Blxst & Tyga Featuring Ty Dolla $ign',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Kanye West'],\n",
+ " ['-',\n",
+ " '1',\n",
+ " '2',\n",
+ " '3',\n",
+ " '5',\n",
+ " '4',\n",
+ " '6',\n",
+ " '7',\n",
+ " '8',\n",
+ " '11',\n",
+ " '14',\n",
+ " '12',\n",
+ " '9',\n",
+ " '17',\n",
+ " '16',\n",
+ " '18',\n",
+ " '13',\n",
+ " '19',\n",
+ " '20',\n",
+ " '35',\n",
+ " '22',\n",
+ " '21',\n",
+ " '15',\n",
+ " '10',\n",
+ " '25',\n",
+ " '29',\n",
+ " '32',\n",
+ " '-',\n",
+ " '27',\n",
+ " '23',\n",
+ " '28',\n",
+ " '-',\n",
+ " '33',\n",
+ " '31',\n",
+ " '39',\n",
+ " '24',\n",
+ " '71',\n",
+ " '-',\n",
+ " '26',\n",
+ " '-',\n",
+ " '36',\n",
+ " '38',\n",
+ " '54',\n",
+ " '45',\n",
+ " '34',\n",
+ " '74',\n",
+ " '44',\n",
+ " '79',\n",
+ " '53',\n",
+ " '80',\n",
+ " '52',\n",
+ " '58',\n",
+ " '-',\n",
+ " '30',\n",
+ " '55',\n",
+ " '56',\n",
+ " '51',\n",
+ " '-',\n",
+ " '-',\n",
+ " '40',\n",
+ " '-',\n",
+ " '-',\n",
+ " '50',\n",
+ " '64',\n",
+ " '69',\n",
+ " '67',\n",
+ " '-',\n",
+ " '70',\n",
+ " '-',\n",
+ " '60',\n",
+ " '61',\n",
+ " '43',\n",
+ " '49',\n",
+ " '46',\n",
+ " '62',\n",
+ " '81',\n",
+ " '78',\n",
+ " '65',\n",
+ " '73',\n",
+ " '-',\n",
+ " '83',\n",
+ " '77',\n",
+ " '-',\n",
+ " '48',\n",
+ " '75',\n",
+ " '82',\n",
+ " '57',\n",
+ " '59',\n",
+ " '85',\n",
+ " '96',\n",
+ " '-',\n",
+ " '-',\n",
+ " '87',\n",
+ " '84',\n",
+ " '98',\n",
+ " '68',\n",
+ " '66',\n",
+ " '-',\n",
+ " '-',\n",
+ " '76'],\n",
+ " ['1',\n",
+ " '1',\n",
+ " '2',\n",
+ " '1',\n",
+ " '5',\n",
+ " '2',\n",
+ " '1',\n",
+ " '3',\n",
+ " '4',\n",
+ " '2',\n",
+ " '11',\n",
+ " '1',\n",
+ " '1',\n",
+ " '14',\n",
+ " '15',\n",
+ " '14',\n",
+ " '2',\n",
+ " '11',\n",
+ " '19',\n",
+ " '20',\n",
+ " '15',\n",
+ " '6',\n",
+ " '3',\n",
+ " '10',\n",
+ " '9',\n",
+ " '26',\n",
+ " '27',\n",
+ " '28',\n",
+ " '26',\n",
+ " '3',\n",
+ " '11',\n",
+ " '32',\n",
+ " '1',\n",
+ " '6',\n",
+ " '35',\n",
+ " '1',\n",
+ " '37',\n",
+ " '38',\n",
+ " '19',\n",
+ " '40',\n",
+ " '1',\n",
+ " '18',\n",
+ " '43',\n",
+ " '20',\n",
+ " '32',\n",
+ " '46',\n",
+ " '44',\n",
+ " '48',\n",
+ " '49',\n",
+ " '50',\n",
+ " '14',\n",
+ " '16',\n",
+ " '53',\n",
+ " '4',\n",
+ " '51',\n",
+ " '28',\n",
+ " '51',\n",
+ " '58',\n",
+ " '59',\n",
+ " '11',\n",
+ " '61',\n",
+ " '62',\n",
+ " '50',\n",
+ " '64',\n",
+ " '65',\n",
+ " '66',\n",
+ " '67',\n",
+ " '53',\n",
+ " '69',\n",
+ " '24',\n",
+ " '22',\n",
+ " '7',\n",
+ " '16',\n",
+ " '4',\n",
+ " '62',\n",
+ " '76',\n",
+ " '77',\n",
+ " '51',\n",
+ " '50',\n",
+ " '80',\n",
+ " '63',\n",
+ " '24',\n",
+ " '83',\n",
+ " '9',\n",
+ " '22',\n",
+ " '32',\n",
+ " '10',\n",
+ " '12',\n",
+ " '10',\n",
+ " '87',\n",
+ " '91',\n",
+ " '92',\n",
+ " '48',\n",
+ " '68',\n",
+ " '95',\n",
+ " '14',\n",
+ " '8',\n",
+ " '98',\n",
+ " '99',\n",
+ " '17'],\n",
+ " ['1',\n",
+ " '12',\n",
+ " '10',\n",
+ " '4',\n",
+ " '15',\n",
+ " '14',\n",
+ " '20',\n",
+ " '25',\n",
+ " '4',\n",
+ " '52',\n",
+ " '13',\n",
+ " '42',\n",
+ " '27',\n",
+ " '3',\n",
+ " '37',\n",
+ " '16',\n",
+ " '4',\n",
+ " '14',\n",
+ " '14',\n",
+ " '23',\n",
+ " '10',\n",
+ " '8',\n",
+ " '4',\n",
+ " '2',\n",
+ " '19',\n",
+ " '13',\n",
+ " '22',\n",
+ " '1',\n",
+ " '10',\n",
+ " '26',\n",
+ " '9',\n",
+ " '1',\n",
+ " '30',\n",
+ " '5',\n",
+ " '13',\n",
+ " '19',\n",
+ " '2',\n",
+ " '1',\n",
+ " '19',\n",
+ " '1',\n",
+ " '28',\n",
+ " '5',\n",
+ " '10',\n",
+ " '17',\n",
+ " '20',\n",
+ " '4',\n",
+ " '3',\n",
+ " '3',\n",
+ " '13',\n",
+ " '2',\n",
+ " '11',\n",
+ " '12',\n",
+ " '1',\n",
+ " '4',\n",
+ " '8',\n",
+ " '3',\n",
+ " '11',\n",
+ " '1',\n",
+ " '1',\n",
+ " '4',\n",
+ " '1',\n",
+ " '1',\n",
+ " '9',\n",
+ " '9',\n",
+ " '9',\n",
+ " '14',\n",
+ " '1',\n",
+ " '23',\n",
+ " '1',\n",
+ " '15',\n",
+ " '5',\n",
+ " '4',\n",
+ " '16',\n",
+ " '7',\n",
+ " '9',\n",
+ " '7',\n",
+ " '9',\n",
+ " '11',\n",
+ " '12',\n",
+ " '1',\n",
+ " '13',\n",
+ " '18',\n",
+ " '1',\n",
+ " '4',\n",
+ " '9',\n",
+ " '18',\n",
+ " '4',\n",
+ " '4',\n",
+ " '17',\n",
+ " '7',\n",
+ " '1',\n",
+ " '1',\n",
+ " '6',\n",
+ " '8',\n",
+ " '2',\n",
+ " '4',\n",
+ " '4',\n",
+ " '1',\n",
+ " '1',\n",
+ " '5']]"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "text_getter(lsts)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['1',\n",
+ " '1',\n",
+ " '2',\n",
+ " '1',\n",
+ " '5',\n",
+ " '2',\n",
+ " '1',\n",
+ " '3',\n",
+ " '4',\n",
+ " '2',\n",
+ " '11',\n",
+ " '1',\n",
+ " '1',\n",
+ " '14',\n",
+ " '15',\n",
+ " '14',\n",
+ " '2',\n",
+ " '11',\n",
+ " '19',\n",
+ " '20',\n",
+ " '15',\n",
+ " '6',\n",
+ " '3',\n",
+ " '10',\n",
+ " '9',\n",
+ " '26',\n",
+ " '27',\n",
+ " '28',\n",
+ " '26',\n",
+ " '3',\n",
+ " '11',\n",
+ " '32',\n",
+ " '1',\n",
+ " '6',\n",
+ " '35',\n",
+ " '1',\n",
+ " '37',\n",
+ " '38',\n",
+ " '19',\n",
+ " '40',\n",
+ " '1',\n",
+ " '18',\n",
+ " '43',\n",
+ " '20',\n",
+ " '32',\n",
+ " '46',\n",
+ " '44',\n",
+ " '48',\n",
+ " '49',\n",
+ " '50',\n",
+ " '14',\n",
+ " '16',\n",
+ " '53',\n",
+ " '4',\n",
+ " '51',\n",
+ " '28',\n",
+ " '51',\n",
+ " '58',\n",
+ " '59',\n",
+ " '11',\n",
+ " '61',\n",
+ " '62',\n",
+ " '50',\n",
+ " '64',\n",
+ " '65',\n",
+ " '66',\n",
+ " '67',\n",
+ " '53',\n",
+ " '69',\n",
+ " '24',\n",
+ " '22',\n",
+ " '7',\n",
+ " '16',\n",
+ " '4',\n",
+ " '62',\n",
+ " '76',\n",
+ " '77',\n",
+ " '51',\n",
+ " '50',\n",
+ " '80',\n",
+ " '63',\n",
+ " '24',\n",
+ " '83',\n",
+ " '9',\n",
+ " '22',\n",
+ " '32',\n",
+ " '10',\n",
+ " '12',\n",
+ " '10',\n",
+ " '87',\n",
+ " '91',\n",
+ " '92',\n",
+ " '48',\n",
+ " '68',\n",
+ " '95',\n",
+ " '14',\n",
+ " '8',\n",
+ " '98',\n",
+ " '99',\n",
+ " '17']"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# testing a variable to see if the function worked\n",
+ "\n",
+ "peak_ranks"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['Coldplay x BTS',\n",
+ " 'The Kid LAROI & Justin Bieber',\n",
+ " 'Lil Nas X & Jack Harlow',\n",
+ " 'Drake Featuring Future & Young Thug',\n",
+ " 'Walker Hayes',\n",
+ " 'Ed Sheeran',\n",
+ " 'Olivia Rodrigo',\n",
+ " 'Doja Cat Featuring SZA',\n",
+ " 'Drake Featuring 21 Savage & Project Pat',\n",
+ " 'Dua Lipa',\n",
+ " 'Wizkid Featuring Justin Bieber & Tems',\n",
+ " 'The Weeknd & Ariana Grande',\n",
+ " 'Lil Nas X',\n",
+ " 'Ed Sheeran',\n",
+ " 'Glass Animals',\n",
+ " 'Doja Cat',\n",
+ " 'Drake Featuring Lil Baby',\n",
+ " 'Doja Cat & The Weeknd',\n",
+ " 'Maneskin',\n",
+ " 'Moneybagg Yo',\n",
+ " 'Jason Aldean & Carrie Underwood',\n",
+ " 'The Weeknd',\n",
+ " 'Drake Featuring Travis Scott',\n",
+ " 'Lil Nas X',\n",
+ " 'Olivia Rodrigo',\n",
+ " 'Jameson Rodgers Featuring Luke Combs',\n",
+ " 'Ryan Hurd With Maren Morris',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Farruko',\n",
+ " 'Olivia Rodrigo',\n",
+ " 'Billie Eilish',\n",
+ " 'Joyner Lucas & J. Cole',\n",
+ " 'Silk Sonic (Bruno Mars & Anderson .Paak)',\n",
+ " 'Kanye West',\n",
+ " 'Tai Verdes',\n",
+ " 'BTS',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Gunna & Future',\n",
+ " 'Marshmello X Jonas Brothers',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Justin Bieber Featuring Daniel Caesar & Giveon',\n",
+ " 'Baby Keem & Kendrick Lamar',\n",
+ " 'Lee Brice',\n",
+ " 'Roddy Ricch',\n",
+ " 'Lainey Wilson',\n",
+ " 'Elton John & Dua Lipa',\n",
+ " 'THE ANXIETY: WILLOW & Tyler Cole',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Old Dominion',\n",
+ " 'CKay',\n",
+ " 'Normani Featuring Cardi B',\n",
+ " 'BIA Featuring Nicki Minaj',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Drake',\n",
+ " 'Jordan Davis Featuring Luke Bryan',\n",
+ " 'Chloe',\n",
+ " 'Dua Lipa',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Drake',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Scotty McCreery',\n",
+ " 'Capella Grey',\n",
+ " 'Luke Combs',\n",
+ " 'Elvie Shane',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Elle King & Miranda Lambert',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Luke Bryan',\n",
+ " 'Meek Mill Featuring Lil Baby & Lil Durk',\n",
+ " 'Drake Featuring Lil Durk & Giveon',\n",
+ " 'Megan Thee Stallion',\n",
+ " 'Lizzo Featuring Cardi B',\n",
+ " 'Doja Cat',\n",
+ " 'Dustin Lynch Featuring Lauren Alaina Or MacKenzie Porter',\n",
+ " 'Yung Bleu, Chris Brown & 2 Chainz',\n",
+ " 'Sleepy Hallow',\n",
+ " 'Kane Brown X blackbear',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Chris Stapleton',\n",
+ " 'Chase Rice Featuring Florida Georgia Line',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Drake',\n",
+ " 'Aventura x Bad Bunny',\n",
+ " 'Rauw Alejandro',\n",
+ " 'Drake Featuring JAY-Z',\n",
+ " 'Drake Featuring Future',\n",
+ " 'Bad Bunny',\n",
+ " 'Kenny Chesney',\n",
+ " 'Giveon',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Shawn Mendes & Tainy',\n",
+ " 'Doja Cat',\n",
+ " 'Zac Brown Band',\n",
+ " 'Drake',\n",
+ " 'Drake',\n",
+ " 'Blxst & Tyga Featuring Ty Dolla $ign',\n",
+ " 'YoungBoy Never Broke Again',\n",
+ " 'Kanye West']"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# testing a variable to see if the function worked\n",
+ "\n",
+ "artists"
+ ]
},
{
"cell_type": "markdown",
- "id": "every-degree",
"metadata": {},
"source": [
"## Build a dataframe"
@@ -135,17 +923,192 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "external-instrumentation",
+ "execution_count": 11,
"metadata": {},
"outputs": [],
- "source": []
+ "source": [
+ "charts = pd.DataFrame(\n",
+ " {\"song_titles\": song_titles,\n",
+ " \"artist\": artists,\n",
+ " \"last_week_rank\": last_week_ranks,\n",
+ " \"peak_rank\": peak_ranks,\n",
+ " \"weeks_on_chart\": weeks_on_chart}\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " song_titles | \n",
+ " artist | \n",
+ " last_week_rank | \n",
+ " peak_rank | \n",
+ " weeks_on_chart | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " My Universe | \n",
+ " Coldplay x BTS | \n",
+ " - | \n",
+ " 1 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " Stay | \n",
+ " The Kid LAROI & Justin Bieber | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 12 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Industry Baby | \n",
+ " Lil Nas X & Jack Harlow | \n",
+ " 2 | \n",
+ " 2 | \n",
+ " 10 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Way 2 Sexy | \n",
+ " Drake Featuring Future & Young Thug | \n",
+ " 3 | \n",
+ " 1 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " Fancy Like | \n",
+ " Walker Hayes | \n",
+ " 5 | \n",
+ " 5 | \n",
+ " 15 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 95 | \n",
+ " Pipe Down | \n",
+ " Drake | \n",
+ " 68 | \n",
+ " 14 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 96 | \n",
+ " Papi's Home | \n",
+ " Drake | \n",
+ " 66 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " | 97 | \n",
+ " Chosen | \n",
+ " Blxst & Tyga Featuring Ty Dolla $ign | \n",
+ " - | \n",
+ " 98 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 98 | \n",
+ " Toxic Punk | \n",
+ " YoungBoy Never Broke Again | \n",
+ " - | \n",
+ " 99 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " | 99 | \n",
+ " Moon | \n",
+ " Kanye West | \n",
+ " 76 | \n",
+ " 17 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
100 rows × 5 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " song_titles artist last_week_rank \\\n",
+ "0 My Universe Coldplay x BTS - \n",
+ "1 Stay The Kid LAROI & Justin Bieber 1 \n",
+ "2 Industry Baby Lil Nas X & Jack Harlow 2 \n",
+ "3 Way 2 Sexy Drake Featuring Future & Young Thug 3 \n",
+ "4 Fancy Like Walker Hayes 5 \n",
+ ".. ... ... ... \n",
+ "95 Pipe Down Drake 68 \n",
+ "96 Papi's Home Drake 66 \n",
+ "97 Chosen Blxst & Tyga Featuring Ty Dolla $ign - \n",
+ "98 Toxic Punk YoungBoy Never Broke Again - \n",
+ "99 Moon Kanye West 76 \n",
+ "\n",
+ " peak_rank weeks_on_chart \n",
+ "0 1 1 \n",
+ "1 1 12 \n",
+ "2 2 10 \n",
+ "3 1 4 \n",
+ "4 5 15 \n",
+ ".. ... ... \n",
+ "95 14 4 \n",
+ "96 8 4 \n",
+ "97 98 1 \n",
+ "98 99 1 \n",
+ "99 17 5 \n",
+ "\n",
+ "[100 rows x 5 columns]"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "charts"
+ ]
}
],
"metadata": {
+ "interpreter": {
+ "hash": "576841b4f7799d251ae57aad53f0bddb5c298a2c04b91f5151e4f2b208165af8"
+ },
"kernelspec": {
- "display_name": "Python 3",
- "language": "python",
+ "display_name": "Python 3.8.8 64-bit ('base': conda)",
"name": "python3"
},
"language_info": {
@@ -158,7 +1121,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5"
+ "version": "3.8.8"
},
"toc": {
"base_numbering": 1,
diff --git a/02_Further_questions.ipynb b/02_Further_questions.ipynb
index 66fb224..779d211 100644
--- a/02_Further_questions.ipynb
+++ b/02_Further_questions.ipynb
@@ -2,7 +2,6 @@
"cells": [
{
"cell_type": "markdown",
- "id": "classified-start",
"metadata": {
"toc": true
},
@@ -13,15 +12,24 @@
},
{
"cell_type": "markdown",
- "id": "cellular-poster",
"metadata": {},
"source": [
"As you've seen, scraping the internet is a skill that can get you all sorts of information. Here are some little challenges to gain more experience in the field"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from bs4 import BeautifulSoup\n",
+ "import requests\n",
+ "import pandas as pd"
+ ]
+ },
{
"cell_type": "markdown",
- "id": "express-introduction",
"metadata": {},
"source": [
"### Retrieve an arbitrary Wikipedia page of \"Python\" and create a list of links on that page"
@@ -29,17 +37,346 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "appreciated-bubble",
+ "execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"url ='https://en.wikipedia.org/wiki/Python'"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "200"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "get = requests.get(url)\n",
+ "get.status_code"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "soup = BeautifulSoup(get.content, \"html.parser\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[Jump to navigation,\n",
+ " Jump to search,\n",
+ " Python,\n",
+ " python,\n",
+ " Pythonidae,\n",
+ " edit,\n",
+ " Python (programming language),\n",
+ " CMU Common Lisp,\n",
+ " PERQ 3,\n",
+ " edit,\n",
+ " Python of Aenus,\n",
+ " Python (painter),\n",
+ " Python of Byzantium,\n",
+ " Python of Catana,\n",
+ " Python Anghelo,\n",
+ " edit,\n",
+ " Python (Efteling),\n",
+ " Python (Busch Gardens Tampa Bay),\n",
+ " Python (Coney Island, Cincinnati, Ohio),\n",
+ " edit,\n",
+ " Python (automobile maker),\n",
+ " Python (Ford prototype),\n",
+ " edit,\n",
+ " Python (missile),\n",
+ " Python (nuclear primary),\n",
+ " Colt Python,\n",
+ " edit,\n",
+ " PYTHON,\n",
+ " Python (mythology),\n",
+ " Monty Python,\n",
+ " Python (Monty) Pictures,\n",
+ " edit,\n",
+ " Cython,\n",
+ " Pyton,\n",
+ " Pithon,\n",
+ " disambiguation,\n",
+ " internal link,\n",
+ " https://en.wikipedia.org/w/index.php?title=Python&oldid=1048703433,\n",
+ " Categories,\n",
+ " Disambiguation pages,\n",
+ " Human name disambiguation pages,\n",
+ " Disambiguation pages with given-name-holder lists,\n",
+ " Disambiguation pages with short descriptions,\n",
+ " Short description is different from Wikidata,\n",
+ " All article disambiguation pages,\n",
+ " All disambiguation pages,\n",
+ " Animal common name disambiguation pages,\n",
+ " Talk,\n",
+ " Contributions,\n",
+ " Create account,\n",
+ " Log in,\n",
+ " Article,\n",
+ " Talk,\n",
+ " Read,\n",
+ " Edit,\n",
+ " View history,\n",
+ " Main page,\n",
+ " Contents,\n",
+ " Current events,\n",
+ " Random article,\n",
+ " About Wikipedia,\n",
+ " Contact us,\n",
+ " Donate,\n",
+ " Help,\n",
+ " Learn to edit,\n",
+ " Community portal,\n",
+ " Recent changes,\n",
+ " Upload file,\n",
+ " What links here,\n",
+ " Related changes,\n",
+ " Upload file,\n",
+ " Special pages,\n",
+ " Permanent link,\n",
+ " Page information,\n",
+ " Cite this page,\n",
+ " Wikidata item,\n",
+ " Download as PDF,\n",
+ " Printable version,\n",
+ " Wikimedia Commons,\n",
+ " Afrikaans,\n",
+ " Alemannisch,\n",
+ " العربية,\n",
+ " Azərbaycanca,\n",
+ " বাংলা,\n",
+ " Беларуская,\n",
+ " Български,\n",
+ " Čeština,\n",
+ " Dansk,\n",
+ " Deutsch,\n",
+ " Esperanto,\n",
+ " Euskara,\n",
+ " فارسی,\n",
+ " Français,\n",
+ " 한국어,\n",
+ " Hrvatski,\n",
+ " Ido,\n",
+ " Bahasa Indonesia,\n",
+ " Interlingua,\n",
+ " Íslenska,\n",
+ " Italiano,\n",
+ " עברית,\n",
+ " ქართული,\n",
+ " Kongo,\n",
+ " Latina,\n",
+ " Lëtzebuergesch,\n",
+ " Magyar,\n",
+ " मराठी,\n",
+ " Nederlands,\n",
+ " 日本語,\n",
+ " Norsk bokmål,\n",
+ " Polski,\n",
+ " Português,\n",
+ " Русский,\n",
+ " Slovenčina,\n",
+ " Српски / srpski,\n",
+ " Srpskohrvatski / српскохрватски,\n",
+ " Suomi,\n",
+ " Svenska,\n",
+ " ไทย,\n",
+ " Türkçe,\n",
+ " Українська,\n",
+ " اردو,\n",
+ " Tiếng Việt,\n",
+ " 中文,\n",
+ " Edit links,\n",
+ " Creative Commons Attribution-ShareAlike License,\n",
+ " Terms of Use,\n",
+ " Privacy Policy,\n",
+ " Wikimedia Foundation, Inc.,\n",
+ " Privacy policy,\n",
+ " About Wikipedia,\n",
+ " Disclaimers,\n",
+ " Contact Wikipedia,\n",
+ " Mobile view,\n",
+ " Developers,\n",
+ " Statistics,\n",
+ " Cookie statement]"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "wiki_data = soup.find_all(\"a\", href=True, text=True)\n",
+ "wiki_data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "names = []\n",
+ "urls = []\n",
+ "\n",
+ "for x in soup.find_all('a', href=True):\n",
+ " urls.append(x['href'])\n",
+ " names.append(x.text) "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "wiki_df = pd.DataFrame(\n",
+ " {\"names\": names,\n",
+ " \"links\": urls,\n",
+ " }\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " names | \n",
+ " links | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " Jump to navigation | \n",
+ " #mw-head | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " Jump to search | \n",
+ " #searchInput | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Python | \n",
+ " https://en.wiktionary.org/wiki/Python | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " python | \n",
+ " https://en.wiktionary.org/wiki/python | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " Pythonidae | \n",
+ " /wiki/Pythonidae | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 146 | \n",
+ " Developers | \n",
+ " https://www.mediawiki.org/wiki/Special:MyLangu... | \n",
+ "
\n",
+ " \n",
+ " | 147 | \n",
+ " Statistics | \n",
+ " https://stats.wikimedia.org/#/en.wikipedia.org | \n",
+ "
\n",
+ " \n",
+ " | 148 | \n",
+ " Cookie statement | \n",
+ " https://foundation.wikimedia.org/wiki/Cookie_s... | \n",
+ "
\n",
+ " \n",
+ " | 149 | \n",
+ " | \n",
+ " https://wikimediafoundation.org/ | \n",
+ "
\n",
+ " \n",
+ " | 150 | \n",
+ " | \n",
+ " https://www.mediawiki.org/ | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
151 rows × 2 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " names links\n",
+ "0 Jump to navigation #mw-head\n",
+ "1 Jump to search #searchInput\n",
+ "2 Python https://en.wiktionary.org/wiki/Python\n",
+ "3 python https://en.wiktionary.org/wiki/python\n",
+ "4 Pythonidae /wiki/Pythonidae\n",
+ ".. ... ...\n",
+ "146 Developers https://www.mediawiki.org/wiki/Special:MyLangu...\n",
+ "147 Statistics https://stats.wikimedia.org/#/en.wikipedia.org\n",
+ "148 Cookie statement https://foundation.wikimedia.org/wiki/Cookie_s...\n",
+ "149 https://wikimediafoundation.org/\n",
+ "150 https://www.mediawiki.org/\n",
+ "\n",
+ "[151 rows x 2 columns]"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "wiki_df"
+ ]
+ },
{
"cell_type": "markdown",
- "id": "relevant-performer",
"metadata": {},
"source": [
"### Find the number of titles that have changed in the United States Code since its last release point"
@@ -47,17 +384,71 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "scenic-surgeon",
+ "execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"url = 'http://uscode.house.gov/download/download.shtml'"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "200"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "get = requests.get(url)\n",
+ "get.status_code"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "soup = BeautifulSoup(get.content, \"html.parser\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "changes_in_law = soup.find_all(\"div\", class_=\"usctitlechanged\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "8\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(len(changes_in_law))"
+ ]
+ },
{
"cell_type": "markdown",
- "id": "acute-necessity",
"metadata": {},
"source": [
"### Create a Python list with the top ten FBI's Most Wanted names"
@@ -65,17 +456,155 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "starting-blackberry",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "url = 'https://www.fbi.gov/wanted/topten'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "200"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "get = requests.get(url)\n",
+ "get.status_code"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
- "url = 'https://www.fbi.gov/wanted/topten"
+ "soup = BeautifulSoup(get.content, \"html.parser\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ,\n",
+ " ]"
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "most_wanted = soup.find_all(\"h3\", class_='title')\n",
+ "most_wanted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['\\nJASON DEREK BROWN\\n',\n",
+ " '\\nALEXIS FLORES\\n',\n",
+ " '\\nJOSE RODOLFO VILLARREAL-HERNANDEZ\\n',\n",
+ " '\\nOCTAVIANO JUAREZ-CORRO\\n',\n",
+ " '\\nEUGENE PALMER\\n',\n",
+ " '\\nRAFAEL CARO-QUINTERO\\n',\n",
+ " '\\nBHADRESHKUMAR CHETANBHAI PATEL\\n',\n",
+ " '\\nALEJANDRO ROSALES CASTILLO\\n',\n",
+ " '\\nROBERT WILLIAM FISHER\\n',\n",
+ " '\\nARNOLDO JIMENEZ\\n']"
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "lst = [name.get_text() for name in most_wanted]\n",
+ "lst"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['JASON DEREK BROWN',\n",
+ " 'ALEXIS FLORES',\n",
+ " 'JOSE RODOLFO VILLARREAL-HERNANDEZ',\n",
+ " 'OCTAVIANO JUAREZ-CORRO',\n",
+ " 'EUGENE PALMER',\n",
+ " 'RAFAEL CARO-QUINTERO',\n",
+ " 'BHADRESHKUMAR CHETANBHAI PATEL',\n",
+ " 'ALEJANDRO ROSALES CASTILLO',\n",
+ " 'ROBERT WILLIAM FISHER',\n",
+ " 'ARNOLDO JIMENEZ']"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "most_wanted_names = [element.strip() for element in lst]\n",
+ "most_wanted_names\n"
]
},
{
"cell_type": "markdown",
- "id": "joined-induction",
"metadata": {},
"source": [
"### Display the 20 latest earthquakes info (date, time, latitude, longitude and region name) by the EMSC as a pandas dataframe"
@@ -83,17 +612,1407 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "copyrighted-taiwan",
+ "execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"url = 'https://www.emsc-csem.org/Earthquake/'"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "200"
+ ]
+ },
+ "execution_count": 21,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "get = requests.get(url)\n",
+ "get.status_code"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "soup = BeautifulSoup(get.content, \"html.parser\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['2021-10-08 10:44:08.8',\n",
+ " '2021-10-08 10:34:32.0',\n",
+ " '2021-10-08 10:26:26.6',\n",
+ " '2021-10-08 10:22:05.6',\n",
+ " '2021-10-08 10:05:03.3',\n",
+ " '2021-10-08 10:04:53.2',\n",
+ " '2021-10-08 09:59:29.0',\n",
+ " '2021-10-08 09:58:56.0',\n",
+ " '2021-10-08 09:57:59.9',\n",
+ " '2021-10-08 09:52:26.4',\n",
+ " '2021-10-08 09:43:41.8',\n",
+ " '2021-10-08 09:41:48.0',\n",
+ " '2021-10-08 09:31:20.3',\n",
+ " '2021-10-08 09:30:00.4',\n",
+ " '2021-10-08 09:27:58.6',\n",
+ " '2021-10-08 09:27:56.0',\n",
+ " '2021-10-08 09:26:38.8',\n",
+ " '2021-10-08 09:24:35.1',\n",
+ " '2021-10-08 09:23:56.6',\n",
+ " '2021-10-08 09:15:40.1',\n",
+ " '2021-10-08 09:09:40.3',\n",
+ " '2021-10-08 09:08:49.8',\n",
+ " '2021-10-08 08:53:08.0',\n",
+ " '2021-10-08 08:42:56.1',\n",
+ " '2021-10-08 08:41:42.0',\n",
+ " '2021-10-08 08:41:38.2',\n",
+ " '2021-10-08 08:35:14.6',\n",
+ " '2021-10-08 08:11:04.8',\n",
+ " '2021-10-08 07:54:07.2',\n",
+ " '2021-10-08 07:42:11.0',\n",
+ " '2021-10-08 07:22:57.0',\n",
+ " '2021-10-08 07:19:53.8',\n",
+ " '2021-10-08 07:11:07.3',\n",
+ " '2021-10-08 07:03:22.8',\n",
+ " '2021-10-08 06:57:38.0',\n",
+ " '2021-10-08 06:56:23.0',\n",
+ " '2021-10-08 06:49:01.6',\n",
+ " '2021-10-08 06:47:22.0',\n",
+ " '2021-10-08 06:43:07.6',\n",
+ " '2021-10-08 06:37:33.7',\n",
+ " '2021-10-08 06:36:19.0',\n",
+ " '2021-10-08 06:32:54.0',\n",
+ " '2021-10-08 06:29:26.4',\n",
+ " '2021-10-08 06:26:50.5',\n",
+ " '2021-10-08 06:25:28.4',\n",
+ " '2021-10-08 06:25:04.3',\n",
+ " '2021-10-08 06:17:54.8',\n",
+ " '2021-10-08 06:17:08.4',\n",
+ " '2021-10-08 06:05:06.5',\n",
+ " '2021-10-08 06:02:09.0']"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# date & time have the same tag in html so first i will make a list of all the dates & times\n",
+ "# in the original text there are some symbols (\\xa0) which i replaced with the .replace() function\n",
+ "date_time = [x.a.get_text().replace('\\xa0', ' ') for x in soup.find_all(\"td\", class_='tabev6')]\n",
+ "date_time"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['28.58',\n",
+ " '17.83',\n",
+ " '1.39',\n",
+ " '122.54',\n",
+ " '28.56',\n",
+ " '17.85',\n",
+ " '19.16',\n",
+ " '155.47',\n",
+ " '28.55',\n",
+ " '17.82',\n",
+ " '4.47',\n",
+ " '95.33',\n",
+ " '15.65',\n",
+ " '71.91',\n",
+ " '5.83',\n",
+ " '124.54',\n",
+ " '35.40',\n",
+ " '3.69',\n",
+ " '19.16',\n",
+ " '155.47',\n",
+ " '42.41',\n",
+ " '2.32',\n",
+ " '14.10',\n",
+ " '74.49',\n",
+ " '34.88',\n",
+ " '97.67',\n",
+ " '62.92',\n",
+ " '150.89',\n",
+ " '49.15',\n",
+ " '124.84',\n",
+ " '15.64',\n",
+ " '71.92',\n",
+ " '28.56',\n",
+ " '17.83',\n",
+ " '43.17',\n",
+ " '0.71',\n",
+ " '28.58',\n",
+ " '17.86',\n",
+ " '37.82',\n",
+ " '27.01',\n",
+ " '28.55',\n",
+ " '17.84',\n",
+ " '44.13',\n",
+ " '12.15',\n",
+ " '15.88',\n",
+ " '95.20',\n",
+ " '28.55',\n",
+ " '17.86',\n",
+ " '0.11',\n",
+ " '122.35',\n",
+ " '37.63',\n",
+ " '1.71',\n",
+ " '19.12',\n",
+ " '67.63',\n",
+ " '38.06',\n",
+ " '42.82',\n",
+ " '17.89',\n",
+ " '66.96',\n",
+ " '13.86',\n",
+ " '120.49',\n",
+ " '16.15',\n",
+ " '73.75',\n",
+ " '28.36',\n",
+ " '13.98',\n",
+ " '31.66',\n",
+ " '104.39',\n",
+ " '28.56',\n",
+ " '17.84',\n",
+ " '19.18',\n",
+ " '155.49',\n",
+ " '14.47',\n",
+ " '83.09',\n",
+ " '28.56',\n",
+ " '17.84',\n",
+ " '38.97',\n",
+ " '26.03',\n",
+ " '23.92',\n",
+ " '66.77',\n",
+ " '28.56',\n",
+ " '17.85',\n",
+ " '19.19',\n",
+ " '155.47',\n",
+ " '19.22',\n",
+ " '155.43',\n",
+ " '28.56',\n",
+ " '17.84',\n",
+ " '35.20',\n",
+ " '25.22',\n",
+ " '28.56',\n",
+ " '17.85',\n",
+ " '19.21',\n",
+ " '155.48',\n",
+ " '37.26',\n",
+ " '179.79',\n",
+ " '28.58',\n",
+ " '17.84',\n",
+ " '28.57',\n",
+ " '17.83',\n",
+ " '3.97',\n",
+ " '96.71']"
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# the latitude and longtitude are saved in the same tag in html (tabev2) so first save both to one list\n",
+ "\n",
+ "latitude_longtitude = [x.get_text().replace('\\xa0', '') for x in soup.find_all(\"td\", class_='tabev1')] \n",
+ "latitude_longtitude"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['N',\n",
+ " 'W',\n",
+ " '2.5',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " '3.1',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.8',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.4',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.7',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " '5.2',\n",
+ " 'S',\n",
+ " 'W',\n",
+ " '3.6',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " '3.0',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.5',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.4',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " '3.9',\n",
+ " 'S',\n",
+ " 'W',\n",
+ " '4.1',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.2',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.6',\n",
+ " 'S',\n",
+ " 'E',\n",
+ " '4.6',\n",
+ " 'S',\n",
+ " 'W',\n",
+ " '4.0',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.9',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '1.5',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.4',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " '2.2',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.4',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " '2.1',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '4.1',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.9',\n",
+ " 'S',\n",
+ " 'E',\n",
+ " '3.0',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '1.7',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '3.4',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " '2.1',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.6',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " '3.1',\n",
+ " 'S',\n",
+ " 'W',\n",
+ " '4.0',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.6',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.6',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '3.3',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.0',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '4.6',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '3.8',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " '3.0',\n",
+ " 'S',\n",
+ " 'W',\n",
+ " '4.5',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.7',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.0',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.2',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '3.3',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " '3.6',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.9',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '3.7',\n",
+ " 'S',\n",
+ " 'E',\n",
+ " '3.1',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.8',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " '2.2',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " '2.7']"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# this gets the direction (north, south etc) for the latitude and longtitude\n",
+ "direction = [x.get_text().replace('\\xa0', '') for x in soup.find_all(\"td\", class_='tabev2')] \n",
+ "direction"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'S',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'S',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'S',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'S',\n",
+ " 'E',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'W',\n",
+ " 'N',\n",
+ " 'E']"
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# removing the float digits from the list because we only need the direction\n",
+ "\n",
+ "import re\n",
+ "\n",
+ "pattern = \"(\\d+\\.\\d+)\"\n",
+ "\n",
+ "direction_new = [re.sub(pattern,\"\", x) for x in direction]\n",
+ "\n",
+ "while(\"\" in direction_new):\n",
+ " direction_new.remove(\"\")\n",
+ "\n",
+ "direction_new"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['CANARY ISLANDS, SPAIN REGION',\n",
+ " 'MINAHASA, SULAWESI, INDONESIA',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'ISLAND OF HAWAII, HAWAII',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'NORTHERN SUMATRA, INDONESIA',\n",
+ " 'SOUTHERN PERU',\n",
+ " 'MINDANAO, PHILIPPINES',\n",
+ " 'STRAIT OF GIBRALTAR',\n",
+ " 'ISLAND OF HAWAII, HAWAII',\n",
+ " 'PYRENEES',\n",
+ " 'CENTRAL PERU',\n",
+ " 'OKLAHOMA',\n",
+ " 'CENTRAL ALASKA',\n",
+ " 'WESTERN INDIAN-ANTARCTIC RIDGE',\n",
+ " 'SOUTHERN PERU',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'PYRENEES',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'WESTERN TURKEY',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'NORTHERN ITALY',\n",
+ " 'OFFSHORE OAXACA, MEXICO',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'SULAWESI, INDONESIA',\n",
+ " 'SPAIN',\n",
+ " 'PUERTO RICO REGION',\n",
+ " 'EASTERN TURKEY',\n",
+ " 'PUERTO RICO REGION',\n",
+ " 'MINDORO, PHILIPPINES',\n",
+ " 'NEAR COAST OF SOUTHERN PERU',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'WESTERN TEXAS',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'ISLAND OF HAWAII, HAWAII',\n",
+ " 'NICARAGUA',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'NEAR THE COAST OF WESTERN TURKEY',\n",
+ " 'JUJUY, ARGENTINA',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'ISLAND OF HAWAII, HAWAII',\n",
+ " 'ISLAND OF HAWAII, HAWAII',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'CRETE, GREECE',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'ISLAND OF HAWAII, HAWAII',\n",
+ " 'OFF E. COAST OF N. ISLAND, N.Z.',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'CANARY ISLANDS, SPAIN REGION',\n",
+ " 'NORTHERN SUMATRA, INDONESIA']"
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "region_name = [x.get_text().replace('\\xa0', '') for x in soup.find_all(\"td\", class_='tb_region')] \n",
+ "region_name"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# this function splits a list into 2 lists with every other element going into 1 of the new lists\n",
+ "\n",
+ "def every_second_element(values):\n",
+ "\n",
+ " first_values = []\n",
+ " second_values = []\n",
+ "\n",
+ " for index in range(0, len(values), 2):\n",
+ " first_values.append(values[index])\n",
+ "\n",
+ " for index in range(1, len(values), 2):\n",
+ " second_values.append(values[index])\n",
+ "\n",
+ " return first_values, second_values "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# apply function to latitude and longtitude so we have 2 seperate lists\n",
+ "\n",
+ "latitude, longtitude = every_second_element(latitude_longtitude)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# apply function to latitude and longtitude direction list so we have 2 seperate lists\n",
+ "\n",
+ "latitude_direction, longtitude_direction = every_second_element(direction_new)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['10:44:08.8',\n",
+ " '10:34:32.0',\n",
+ " '10:26:26.6',\n",
+ " '10:22:05.6',\n",
+ " '10:05:03.3',\n",
+ " '10:04:53.2',\n",
+ " '09:59:29.0',\n",
+ " '09:58:56.0',\n",
+ " '09:57:59.9',\n",
+ " '09:52:26.4',\n",
+ " '09:43:41.8',\n",
+ " '09:41:48.0',\n",
+ " '09:31:20.3',\n",
+ " '09:30:00.4',\n",
+ " '09:27:58.6',\n",
+ " '09:27:56.0',\n",
+ " '09:26:38.8',\n",
+ " '09:24:35.1',\n",
+ " '09:23:56.6',\n",
+ " '09:15:40.1',\n",
+ " '09:09:40.3',\n",
+ " '09:08:49.8',\n",
+ " '08:53:08.0',\n",
+ " '08:42:56.1',\n",
+ " '08:41:42.0',\n",
+ " '08:41:38.2',\n",
+ " '08:35:14.6',\n",
+ " '08:11:04.8',\n",
+ " '07:54:07.2',\n",
+ " '07:42:11.0',\n",
+ " '07:22:57.0',\n",
+ " '07:19:53.8',\n",
+ " '07:11:07.3',\n",
+ " '07:03:22.8',\n",
+ " '06:57:38.0',\n",
+ " '06:56:23.0',\n",
+ " '06:49:01.6',\n",
+ " '06:47:22.0',\n",
+ " '06:43:07.6',\n",
+ " '06:37:33.7',\n",
+ " '06:36:19.0',\n",
+ " '06:32:54.0',\n",
+ " '06:29:26.4',\n",
+ " '06:26:50.5',\n",
+ " '06:25:28.4',\n",
+ " '06:25:04.3',\n",
+ " '06:17:54.8',\n",
+ " '06:17:08.4',\n",
+ " '06:05:06.5',\n",
+ " '06:02:09.0']"
+ ]
+ },
+ "execution_count": 31,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# date & time is one list so this just splits the date/time and appends the date to a new date list and time to a new time list\n",
+ "\n",
+ "date = []\n",
+ "time = []\n",
+ "\n",
+ "for x in date_time:\n",
+ " x = x.split()\n",
+ " date.append(x[0])\n",
+ " time.append(x[1])\n",
+ "time"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# dataframe\n",
+ "\n",
+ "earthquakes = pd.DataFrame(\n",
+ " {\"date\": date,\n",
+ " \"time\": time,\n",
+ " \"latitude\": latitude,\n",
+ " \"latitude_direction\": latitude_direction,\n",
+ " \"longtitude\": longtitude,\n",
+ " \"longtitude_direction\": longtitude_direction,\n",
+ " \"region\": region_name\n",
+ " }\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " date | \n",
+ " time | \n",
+ " latitude | \n",
+ " latitude_direction | \n",
+ " longtitude | \n",
+ " longtitude_direction | \n",
+ " region | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 2021-10-08 | \n",
+ " 10:44:08.8 | \n",
+ " 28.58 | \n",
+ " N | \n",
+ " 17.83 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 2021-10-08 | \n",
+ " 10:34:32.0 | \n",
+ " 1.39 | \n",
+ " N | \n",
+ " 122.54 | \n",
+ " E | \n",
+ " MINAHASA, SULAWESI, INDONESIA | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 2021-10-08 | \n",
+ " 10:26:26.6 | \n",
+ " 28.56 | \n",
+ " N | \n",
+ " 17.85 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 2021-10-08 | \n",
+ " 10:22:05.6 | \n",
+ " 19.16 | \n",
+ " N | \n",
+ " 155.47 | \n",
+ " W | \n",
+ " ISLAND OF HAWAII, HAWAII | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 2021-10-08 | \n",
+ " 10:05:03.3 | \n",
+ " 28.55 | \n",
+ " N | \n",
+ " 17.82 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " 2021-10-08 | \n",
+ " 10:04:53.2 | \n",
+ " 4.47 | \n",
+ " N | \n",
+ " 95.33 | \n",
+ " E | \n",
+ " NORTHERN SUMATRA, INDONESIA | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 2021-10-08 | \n",
+ " 09:59:29.0 | \n",
+ " 15.65 | \n",
+ " S | \n",
+ " 71.91 | \n",
+ " W | \n",
+ " SOUTHERN PERU | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " 2021-10-08 | \n",
+ " 09:58:56.0 | \n",
+ " 5.83 | \n",
+ " N | \n",
+ " 124.54 | \n",
+ " E | \n",
+ " MINDANAO, PHILIPPINES | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " 2021-10-08 | \n",
+ " 09:57:59.9 | \n",
+ " 35.40 | \n",
+ " N | \n",
+ " 3.69 | \n",
+ " W | \n",
+ " STRAIT OF GIBRALTAR | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " 2021-10-08 | \n",
+ " 09:52:26.4 | \n",
+ " 19.16 | \n",
+ " N | \n",
+ " 155.47 | \n",
+ " W | \n",
+ " ISLAND OF HAWAII, HAWAII | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " 2021-10-08 | \n",
+ " 09:43:41.8 | \n",
+ " 42.41 | \n",
+ " N | \n",
+ " 2.32 | \n",
+ " E | \n",
+ " PYRENEES | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " 2021-10-08 | \n",
+ " 09:41:48.0 | \n",
+ " 14.10 | \n",
+ " S | \n",
+ " 74.49 | \n",
+ " W | \n",
+ " CENTRAL PERU | \n",
+ "
\n",
+ " \n",
+ " | 12 | \n",
+ " 2021-10-08 | \n",
+ " 09:31:20.3 | \n",
+ " 34.88 | \n",
+ " N | \n",
+ " 97.67 | \n",
+ " W | \n",
+ " OKLAHOMA | \n",
+ "
\n",
+ " \n",
+ " | 13 | \n",
+ " 2021-10-08 | \n",
+ " 09:30:00.4 | \n",
+ " 62.92 | \n",
+ " N | \n",
+ " 150.89 | \n",
+ " W | \n",
+ " CENTRAL ALASKA | \n",
+ "
\n",
+ " \n",
+ " | 14 | \n",
+ " 2021-10-08 | \n",
+ " 09:27:58.6 | \n",
+ " 49.15 | \n",
+ " S | \n",
+ " 124.84 | \n",
+ " E | \n",
+ " WESTERN INDIAN-ANTARCTIC RIDGE | \n",
+ "
\n",
+ " \n",
+ " | 15 | \n",
+ " 2021-10-08 | \n",
+ " 09:27:56.0 | \n",
+ " 15.64 | \n",
+ " S | \n",
+ " 71.92 | \n",
+ " W | \n",
+ " SOUTHERN PERU | \n",
+ "
\n",
+ " \n",
+ " | 16 | \n",
+ " 2021-10-08 | \n",
+ " 09:26:38.8 | \n",
+ " 28.56 | \n",
+ " N | \n",
+ " 17.83 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 17 | \n",
+ " 2021-10-08 | \n",
+ " 09:24:35.1 | \n",
+ " 43.17 | \n",
+ " N | \n",
+ " 0.71 | \n",
+ " W | \n",
+ " PYRENEES | \n",
+ "
\n",
+ " \n",
+ " | 18 | \n",
+ " 2021-10-08 | \n",
+ " 09:23:56.6 | \n",
+ " 28.58 | \n",
+ " N | \n",
+ " 17.86 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 19 | \n",
+ " 2021-10-08 | \n",
+ " 09:15:40.1 | \n",
+ " 37.82 | \n",
+ " N | \n",
+ " 27.01 | \n",
+ " E | \n",
+ " WESTERN TURKEY | \n",
+ "
\n",
+ " \n",
+ " | 20 | \n",
+ " 2021-10-08 | \n",
+ " 09:09:40.3 | \n",
+ " 28.55 | \n",
+ " N | \n",
+ " 17.84 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 21 | \n",
+ " 2021-10-08 | \n",
+ " 09:08:49.8 | \n",
+ " 44.13 | \n",
+ " N | \n",
+ " 12.15 | \n",
+ " E | \n",
+ " NORTHERN ITALY | \n",
+ "
\n",
+ " \n",
+ " | 22 | \n",
+ " 2021-10-08 | \n",
+ " 08:53:08.0 | \n",
+ " 15.88 | \n",
+ " N | \n",
+ " 95.20 | \n",
+ " W | \n",
+ " OFFSHORE OAXACA, MEXICO | \n",
+ "
\n",
+ " \n",
+ " | 23 | \n",
+ " 2021-10-08 | \n",
+ " 08:42:56.1 | \n",
+ " 28.55 | \n",
+ " N | \n",
+ " 17.86 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 24 | \n",
+ " 2021-10-08 | \n",
+ " 08:41:42.0 | \n",
+ " 0.11 | \n",
+ " S | \n",
+ " 122.35 | \n",
+ " E | \n",
+ " SULAWESI, INDONESIA | \n",
+ "
\n",
+ " \n",
+ " | 25 | \n",
+ " 2021-10-08 | \n",
+ " 08:41:38.2 | \n",
+ " 37.63 | \n",
+ " N | \n",
+ " 1.71 | \n",
+ " W | \n",
+ " SPAIN | \n",
+ "
\n",
+ " \n",
+ " | 26 | \n",
+ " 2021-10-08 | \n",
+ " 08:35:14.6 | \n",
+ " 19.12 | \n",
+ " N | \n",
+ " 67.63 | \n",
+ " W | \n",
+ " PUERTO RICO REGION | \n",
+ "
\n",
+ " \n",
+ " | 27 | \n",
+ " 2021-10-08 | \n",
+ " 08:11:04.8 | \n",
+ " 38.06 | \n",
+ " N | \n",
+ " 42.82 | \n",
+ " E | \n",
+ " EASTERN TURKEY | \n",
+ "
\n",
+ " \n",
+ " | 28 | \n",
+ " 2021-10-08 | \n",
+ " 07:54:07.2 | \n",
+ " 17.89 | \n",
+ " N | \n",
+ " 66.96 | \n",
+ " W | \n",
+ " PUERTO RICO REGION | \n",
+ "
\n",
+ " \n",
+ " | 29 | \n",
+ " 2021-10-08 | \n",
+ " 07:42:11.0 | \n",
+ " 13.86 | \n",
+ " N | \n",
+ " 120.49 | \n",
+ " E | \n",
+ " MINDORO, PHILIPPINES | \n",
+ "
\n",
+ " \n",
+ " | 30 | \n",
+ " 2021-10-08 | \n",
+ " 07:22:57.0 | \n",
+ " 16.15 | \n",
+ " S | \n",
+ " 73.75 | \n",
+ " W | \n",
+ " NEAR COAST OF SOUTHERN PERU | \n",
+ "
\n",
+ " \n",
+ " | 31 | \n",
+ " 2021-10-08 | \n",
+ " 07:19:53.8 | \n",
+ " 28.36 | \n",
+ " N | \n",
+ " 13.98 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 32 | \n",
+ " 2021-10-08 | \n",
+ " 07:11:07.3 | \n",
+ " 31.66 | \n",
+ " N | \n",
+ " 104.39 | \n",
+ " W | \n",
+ " WESTERN TEXAS | \n",
+ "
\n",
+ " \n",
+ " | 33 | \n",
+ " 2021-10-08 | \n",
+ " 07:03:22.8 | \n",
+ " 28.56 | \n",
+ " N | \n",
+ " 17.84 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 34 | \n",
+ " 2021-10-08 | \n",
+ " 06:57:38.0 | \n",
+ " 19.18 | \n",
+ " N | \n",
+ " 155.49 | \n",
+ " W | \n",
+ " ISLAND OF HAWAII, HAWAII | \n",
+ "
\n",
+ " \n",
+ " | 35 | \n",
+ " 2021-10-08 | \n",
+ " 06:56:23.0 | \n",
+ " 14.47 | \n",
+ " N | \n",
+ " 83.09 | \n",
+ " W | \n",
+ " NICARAGUA | \n",
+ "
\n",
+ " \n",
+ " | 36 | \n",
+ " 2021-10-08 | \n",
+ " 06:49:01.6 | \n",
+ " 28.56 | \n",
+ " N | \n",
+ " 17.84 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 37 | \n",
+ " 2021-10-08 | \n",
+ " 06:47:22.0 | \n",
+ " 38.97 | \n",
+ " N | \n",
+ " 26.03 | \n",
+ " E | \n",
+ " NEAR THE COAST OF WESTERN TURKEY | \n",
+ "
\n",
+ " \n",
+ " | 38 | \n",
+ " 2021-10-08 | \n",
+ " 06:43:07.6 | \n",
+ " 23.92 | \n",
+ " S | \n",
+ " 66.77 | \n",
+ " W | \n",
+ " JUJUY, ARGENTINA | \n",
+ "
\n",
+ " \n",
+ " | 39 | \n",
+ " 2021-10-08 | \n",
+ " 06:37:33.7 | \n",
+ " 28.56 | \n",
+ " N | \n",
+ " 17.85 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 40 | \n",
+ " 2021-10-08 | \n",
+ " 06:36:19.0 | \n",
+ " 19.19 | \n",
+ " N | \n",
+ " 155.47 | \n",
+ " W | \n",
+ " ISLAND OF HAWAII, HAWAII | \n",
+ "
\n",
+ " \n",
+ " | 41 | \n",
+ " 2021-10-08 | \n",
+ " 06:32:54.0 | \n",
+ " 19.22 | \n",
+ " N | \n",
+ " 155.43 | \n",
+ " W | \n",
+ " ISLAND OF HAWAII, HAWAII | \n",
+ "
\n",
+ " \n",
+ " | 42 | \n",
+ " 2021-10-08 | \n",
+ " 06:29:26.4 | \n",
+ " 28.56 | \n",
+ " N | \n",
+ " 17.84 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 43 | \n",
+ " 2021-10-08 | \n",
+ " 06:26:50.5 | \n",
+ " 35.20 | \n",
+ " N | \n",
+ " 25.22 | \n",
+ " E | \n",
+ " CRETE, GREECE | \n",
+ "
\n",
+ " \n",
+ " | 44 | \n",
+ " 2021-10-08 | \n",
+ " 06:25:28.4 | \n",
+ " 28.56 | \n",
+ " N | \n",
+ " 17.85 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 45 | \n",
+ " 2021-10-08 | \n",
+ " 06:25:04.3 | \n",
+ " 19.21 | \n",
+ " N | \n",
+ " 155.48 | \n",
+ " W | \n",
+ " ISLAND OF HAWAII, HAWAII | \n",
+ "
\n",
+ " \n",
+ " | 46 | \n",
+ " 2021-10-08 | \n",
+ " 06:17:54.8 | \n",
+ " 37.26 | \n",
+ " S | \n",
+ " 179.79 | \n",
+ " E | \n",
+ " OFF E. COAST OF N. ISLAND, N.Z. | \n",
+ "
\n",
+ " \n",
+ " | 47 | \n",
+ " 2021-10-08 | \n",
+ " 06:17:08.4 | \n",
+ " 28.58 | \n",
+ " N | \n",
+ " 17.84 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 48 | \n",
+ " 2021-10-08 | \n",
+ " 06:05:06.5 | \n",
+ " 28.57 | \n",
+ " N | \n",
+ " 17.83 | \n",
+ " W | \n",
+ " CANARY ISLANDS, SPAIN REGION | \n",
+ "
\n",
+ " \n",
+ " | 49 | \n",
+ " 2021-10-08 | \n",
+ " 06:02:09.0 | \n",
+ " 3.97 | \n",
+ " N | \n",
+ " 96.71 | \n",
+ " E | \n",
+ " NORTHERN SUMATRA, INDONESIA | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " date time latitude latitude_direction longtitude \\\n",
+ "0 2021-10-08 10:44:08.8 28.58 N 17.83 \n",
+ "1 2021-10-08 10:34:32.0 1.39 N 122.54 \n",
+ "2 2021-10-08 10:26:26.6 28.56 N 17.85 \n",
+ "3 2021-10-08 10:22:05.6 19.16 N 155.47 \n",
+ "4 2021-10-08 10:05:03.3 28.55 N 17.82 \n",
+ "5 2021-10-08 10:04:53.2 4.47 N 95.33 \n",
+ "6 2021-10-08 09:59:29.0 15.65 S 71.91 \n",
+ "7 2021-10-08 09:58:56.0 5.83 N 124.54 \n",
+ "8 2021-10-08 09:57:59.9 35.40 N 3.69 \n",
+ "9 2021-10-08 09:52:26.4 19.16 N 155.47 \n",
+ "10 2021-10-08 09:43:41.8 42.41 N 2.32 \n",
+ "11 2021-10-08 09:41:48.0 14.10 S 74.49 \n",
+ "12 2021-10-08 09:31:20.3 34.88 N 97.67 \n",
+ "13 2021-10-08 09:30:00.4 62.92 N 150.89 \n",
+ "14 2021-10-08 09:27:58.6 49.15 S 124.84 \n",
+ "15 2021-10-08 09:27:56.0 15.64 S 71.92 \n",
+ "16 2021-10-08 09:26:38.8 28.56 N 17.83 \n",
+ "17 2021-10-08 09:24:35.1 43.17 N 0.71 \n",
+ "18 2021-10-08 09:23:56.6 28.58 N 17.86 \n",
+ "19 2021-10-08 09:15:40.1 37.82 N 27.01 \n",
+ "20 2021-10-08 09:09:40.3 28.55 N 17.84 \n",
+ "21 2021-10-08 09:08:49.8 44.13 N 12.15 \n",
+ "22 2021-10-08 08:53:08.0 15.88 N 95.20 \n",
+ "23 2021-10-08 08:42:56.1 28.55 N 17.86 \n",
+ "24 2021-10-08 08:41:42.0 0.11 S 122.35 \n",
+ "25 2021-10-08 08:41:38.2 37.63 N 1.71 \n",
+ "26 2021-10-08 08:35:14.6 19.12 N 67.63 \n",
+ "27 2021-10-08 08:11:04.8 38.06 N 42.82 \n",
+ "28 2021-10-08 07:54:07.2 17.89 N 66.96 \n",
+ "29 2021-10-08 07:42:11.0 13.86 N 120.49 \n",
+ "30 2021-10-08 07:22:57.0 16.15 S 73.75 \n",
+ "31 2021-10-08 07:19:53.8 28.36 N 13.98 \n",
+ "32 2021-10-08 07:11:07.3 31.66 N 104.39 \n",
+ "33 2021-10-08 07:03:22.8 28.56 N 17.84 \n",
+ "34 2021-10-08 06:57:38.0 19.18 N 155.49 \n",
+ "35 2021-10-08 06:56:23.0 14.47 N 83.09 \n",
+ "36 2021-10-08 06:49:01.6 28.56 N 17.84 \n",
+ "37 2021-10-08 06:47:22.0 38.97 N 26.03 \n",
+ "38 2021-10-08 06:43:07.6 23.92 S 66.77 \n",
+ "39 2021-10-08 06:37:33.7 28.56 N 17.85 \n",
+ "40 2021-10-08 06:36:19.0 19.19 N 155.47 \n",
+ "41 2021-10-08 06:32:54.0 19.22 N 155.43 \n",
+ "42 2021-10-08 06:29:26.4 28.56 N 17.84 \n",
+ "43 2021-10-08 06:26:50.5 35.20 N 25.22 \n",
+ "44 2021-10-08 06:25:28.4 28.56 N 17.85 \n",
+ "45 2021-10-08 06:25:04.3 19.21 N 155.48 \n",
+ "46 2021-10-08 06:17:54.8 37.26 S 179.79 \n",
+ "47 2021-10-08 06:17:08.4 28.58 N 17.84 \n",
+ "48 2021-10-08 06:05:06.5 28.57 N 17.83 \n",
+ "49 2021-10-08 06:02:09.0 3.97 N 96.71 \n",
+ "\n",
+ " longtitude_direction region \n",
+ "0 W CANARY ISLANDS, SPAIN REGION \n",
+ "1 E MINAHASA, SULAWESI, INDONESIA \n",
+ "2 W CANARY ISLANDS, SPAIN REGION \n",
+ "3 W ISLAND OF HAWAII, HAWAII \n",
+ "4 W CANARY ISLANDS, SPAIN REGION \n",
+ "5 E NORTHERN SUMATRA, INDONESIA \n",
+ "6 W SOUTHERN PERU \n",
+ "7 E MINDANAO, PHILIPPINES \n",
+ "8 W STRAIT OF GIBRALTAR \n",
+ "9 W ISLAND OF HAWAII, HAWAII \n",
+ "10 E PYRENEES \n",
+ "11 W CENTRAL PERU \n",
+ "12 W OKLAHOMA \n",
+ "13 W CENTRAL ALASKA \n",
+ "14 E WESTERN INDIAN-ANTARCTIC RIDGE \n",
+ "15 W SOUTHERN PERU \n",
+ "16 W CANARY ISLANDS, SPAIN REGION \n",
+ "17 W PYRENEES \n",
+ "18 W CANARY ISLANDS, SPAIN REGION \n",
+ "19 E WESTERN TURKEY \n",
+ "20 W CANARY ISLANDS, SPAIN REGION \n",
+ "21 E NORTHERN ITALY \n",
+ "22 W OFFSHORE OAXACA, MEXICO \n",
+ "23 W CANARY ISLANDS, SPAIN REGION \n",
+ "24 E SULAWESI, INDONESIA \n",
+ "25 W SPAIN \n",
+ "26 W PUERTO RICO REGION \n",
+ "27 E EASTERN TURKEY \n",
+ "28 W PUERTO RICO REGION \n",
+ "29 E MINDORO, PHILIPPINES \n",
+ "30 W NEAR COAST OF SOUTHERN PERU \n",
+ "31 W CANARY ISLANDS, SPAIN REGION \n",
+ "32 W WESTERN TEXAS \n",
+ "33 W CANARY ISLANDS, SPAIN REGION \n",
+ "34 W ISLAND OF HAWAII, HAWAII \n",
+ "35 W NICARAGUA \n",
+ "36 W CANARY ISLANDS, SPAIN REGION \n",
+ "37 E NEAR THE COAST OF WESTERN TURKEY \n",
+ "38 W JUJUY, ARGENTINA \n",
+ "39 W CANARY ISLANDS, SPAIN REGION \n",
+ "40 W ISLAND OF HAWAII, HAWAII \n",
+ "41 W ISLAND OF HAWAII, HAWAII \n",
+ "42 W CANARY ISLANDS, SPAIN REGION \n",
+ "43 E CRETE, GREECE \n",
+ "44 W CANARY ISLANDS, SPAIN REGION \n",
+ "45 W ISLAND OF HAWAII, HAWAII \n",
+ "46 E OFF E. COAST OF N. ISLAND, N.Z. \n",
+ "47 W CANARY ISLANDS, SPAIN REGION \n",
+ "48 W CANARY ISLANDS, SPAIN REGION \n",
+ "49 E NORTHERN SUMATRA, INDONESIA "
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "earthquakes"
+ ]
+ },
{
"cell_type": "markdown",
- "id": "dominican-defeat",
"metadata": {},
"source": [
"### List all language names and number of related articles in the order they appear in [wikipedia.org](wikipedia.org)"
@@ -101,17 +2020,289 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "metric-vertex",
+ "execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"url = 'https://www.wikipedia.org/'"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "200"
+ ]
+ },
+ "execution_count": 35,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "get = requests.get(url)\n",
+ "get.status_code"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "soup = BeautifulSoup(get.content, \"html.parser\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[English,\n",
+ " 日本語,\n",
+ " Español,\n",
+ " Deutsch,\n",
+ " Русский,\n",
+ " Français,\n",
+ " 中文,\n",
+ " Italiano,\n",
+ " Português,\n",
+ " Polski]"
+ ]
+ },
+ "execution_count": 37,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# this gets us all the languages from the main wikipedia page\n",
+ "\n",
+ "language_info = soup.find_all(\"strong\", class_=False)\n",
+ "language_info\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['English',\n",
+ " '日本語',\n",
+ " 'Español',\n",
+ " 'Deutsch',\n",
+ " 'Русский',\n",
+ " 'Français',\n",
+ " '中文',\n",
+ " 'Italiano',\n",
+ " 'Português',\n",
+ " 'Polski']"
+ ]
+ },
+ "execution_count": 38,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# remove strong tag and just get the text\n",
+ "\n",
+ "languages = []\n",
+ "for item in language_info:\n",
+ " languages.append(item.get_text())\n",
+ "\n",
+ "languages"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[6 383 000+ articles,\n",
+ " 1 292 000+ 記事,\n",
+ " 1 717 000+ artículos,\n",
+ " 2 617 000+ Artikel,\n",
+ " 1 756 000+ статей,\n",
+ " 2 362 000+ articles,\n",
+ " 1 231 000+ 條目,\n",
+ " 1 718 000+ voci,\n",
+ " 1 074 000+ artigos,\n",
+ " 1 490 000+ haseł]"
+ ]
+ },
+ "execution_count": 39,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "number_of_articles = soup.find_all(\"small\", class_=False)\n",
+ "number_of_articles\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['6383000+ articles',\n",
+ " '1292000+ 記事',\n",
+ " '1717000+ artículos',\n",
+ " '2617000+ Artikel',\n",
+ " '1756000+ статей',\n",
+ " '2362000+ articles',\n",
+ " '1231000+ 條目',\n",
+ " '1718000+ voci',\n",
+ " '1074000+ artigos',\n",
+ " '1490000+ haseł']"
+ ]
+ },
+ "execution_count": 40,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "article_count = []\n",
+ "for item in number_of_articles:\n",
+ " article_count.append(item.get_text().replace('\\xa0', ''))\n",
+ "\n",
+ "article_count"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " language | \n",
+ " number_of_articles | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " English | \n",
+ " 6383000+ articles | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 日本語 | \n",
+ " 1292000+ 記事 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Español | \n",
+ " 1717000+ artículos | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Deutsch | \n",
+ " 2617000+ Artikel | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " Русский | \n",
+ " 1756000+ статей | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " Français | \n",
+ " 2362000+ articles | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " 中文 | \n",
+ " 1231000+ 條目 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " Italiano | \n",
+ " 1718000+ voci | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " Português | \n",
+ " 1074000+ artigos | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " Polski | \n",
+ " 1490000+ haseł | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " language number_of_articles\n",
+ "0 English 6383000+ articles\n",
+ "1 日本語 1292000+ 記事\n",
+ "2 Español 1717000+ artículos\n",
+ "3 Deutsch 2617000+ Artikel\n",
+ "4 Русский 1756000+ статей\n",
+ "5 Français 2362000+ articles\n",
+ "6 中文 1231000+ 條目\n",
+ "7 Italiano 1718000+ voci\n",
+ "8 Português 1074000+ artigos\n",
+ "9 Polski 1490000+ haseł"
+ ]
+ },
+ "execution_count": 41,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "wikipedia_languages = pd.DataFrame(\n",
+ " {\"language\" : languages,\n",
+ " \"number_of_articles\" : article_count}\n",
+ "\n",
+ ")\n",
+ "\n",
+ "wikipedia_languages"
+ ]
+ },
{
"cell_type": "markdown",
- "id": "split-cartridge",
"metadata": {},
"source": [
"### A list with the different kind of datasets available in [data.gov.uk](data.gov.uk)\n"
@@ -119,17 +2310,269 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "actual-parallel",
+ "execution_count": 42,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "url = 'https://data.gov.uk/'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "200"
+ ]
+ },
+ "execution_count": 43,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "get = requests.get(url)\n",
+ "get.status_code"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "soup = BeautifulSoup(get.content, \"html.parser\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# get title and info of the different datasets\n",
+ "\n",
+ "title = soup.find_all(\"h3\", class_=\"govuk-heading-s dgu-topics__heading\")\n",
+ "\n",
+ "info = soup.find_all(\"p\", class_=\"govuk-body\", href=False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[We use cookies to collect information about how you use data.gov.uk. We use this information to make the website work as well as possible.
,\n",
+ " Small businesses, industry, imports, exports and trade
,\n",
+ " Courts, police, prison, offenders, borders and immigration
,\n",
+ " Armed forces, health and safety, search and rescue
,\n",
+ " Students, training, qualifications and the National Curriculum
,\n",
+ " Weather, flooding, rivers, air quality, geology and agriculture
,\n",
+ " Staff numbers and pay, local councillors and department business plans
,\n",
+ " Includes all payments by government departments over £25,000
,\n",
+ " Includes smoking, drugs, alcohol, medicine performance and hospitals
,\n",
+ " Addresses, boundaries, land ownership, aerial photographs, seabed and land terrain
,\n",
+ " Employment, benefits, household finances, poverty and population
,\n",
+ " Includes housing, urban planning, leisure, waste and energy, consumption
,\n",
+ " Airports, roads, freight, electric vehicles, parking, buses and footpaths
,\n",
+ " Cost, usage, completion rate, digital take-up, satisfaction
,\n",
+ " Trusted data that is referenced and shared across government departments
]"
+ ]
+ },
+ "execution_count": 46,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# the first element in this list is not necessary for our dataframe so will remove it later\n",
+ "\n",
+ "info"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
"metadata": {},
"outputs": [],
"source": [
- "url = 'https://data.gov.uk/"
+ "# function to get the text from the above lists \n",
+ "\n",
+ "def text_get(values):\n",
+ "\n",
+ " new_list = []\n",
+ "\n",
+ " for x in values:\n",
+ " new_list.append(x.get_text())\n",
+ " \n",
+ " return new_list"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " department | \n",
+ " description | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " Business and economy | \n",
+ " Small businesses, industry, imports, exports a... | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " Crime and justice | \n",
+ " Courts, police, prison, offenders, borders and... | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " Defence | \n",
+ " Armed forces, health and safety, search and re... | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Education | \n",
+ " Students, training, qualifications and the Nat... | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " Environment | \n",
+ " Weather, flooding, rivers, air quality, geolog... | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " Government | \n",
+ " Staff numbers and pay, local councillors and d... | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " Government spending | \n",
+ " Includes all payments by government department... | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " Health | \n",
+ " Includes smoking, drugs, alcohol, medicine per... | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " Mapping | \n",
+ " Addresses, boundaries, land ownership, aerial ... | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " Society | \n",
+ " Employment, benefits, household finances, pove... | \n",
+ "
\n",
+ " \n",
+ " | 10 | \n",
+ " Towns and cities | \n",
+ " Includes housing, urban planning, leisure, was... | \n",
+ "
\n",
+ " \n",
+ " | 11 | \n",
+ " Transport | \n",
+ " Airports, roads, freight, electric vehicles, p... | \n",
+ "
\n",
+ " \n",
+ " | 12 | \n",
+ " Digital service performance | \n",
+ " Cost, usage, completion rate, digital take-up,... | \n",
+ "
\n",
+ " \n",
+ " | 13 | \n",
+ " Government reference data | \n",
+ " Trusted data that is referenced and shared acr... | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " department \\\n",
+ "0 Business and economy \n",
+ "1 Crime and justice \n",
+ "2 Defence \n",
+ "3 Education \n",
+ "4 Environment \n",
+ "5 Government \n",
+ "6 Government spending \n",
+ "7 Health \n",
+ "8 Mapping \n",
+ "9 Society \n",
+ "10 Towns and cities \n",
+ "11 Transport \n",
+ "12 Digital service performance \n",
+ "13 Government reference data \n",
+ "\n",
+ " description \n",
+ "0 Small businesses, industry, imports, exports a... \n",
+ "1 Courts, police, prison, offenders, borders and... \n",
+ "2 Armed forces, health and safety, search and re... \n",
+ "3 Students, training, qualifications and the Nat... \n",
+ "4 Weather, flooding, rivers, air quality, geolog... \n",
+ "5 Staff numbers and pay, local councillors and d... \n",
+ "6 Includes all payments by government department... \n",
+ "7 Includes smoking, drugs, alcohol, medicine per... \n",
+ "8 Addresses, boundaries, land ownership, aerial ... \n",
+ "9 Employment, benefits, household finances, pove... \n",
+ "10 Includes housing, urban planning, leisure, was... \n",
+ "11 Airports, roads, freight, electric vehicles, p... \n",
+ "12 Cost, usage, completion rate, digital take-up,... \n",
+ "13 Trusted data that is referenced and shared acr... "
+ ]
+ },
+ "execution_count": 48,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# pandas dataframe with the department name and info\n",
+ "\n",
+ "gov_uk = pd.DataFrame(\n",
+ " {\"department\": text_get(title),\n",
+ " \"description\": text_get(info[1:])\n",
+ " }\n",
+ ")\n",
+ "\n",
+ "\n",
+ "gov_uk"
]
},
{
"cell_type": "markdown",
- "id": "potential-malpractice",
"metadata": {},
"source": [
"### Display the top 10 languages by number of native speakers stored in a pandas dataframe"
@@ -137,19 +2580,2150 @@
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "adaptive-calculator",
+ "execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"url = 'https://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers'"
]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "200"
+ ]
+ },
+ "execution_count": 50,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "get = requests.get(url)\n",
+ "get.status_code"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "soup = BeautifulSoup(get.content, \"html.parser\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[1\n",
+ " | ,\n",
+ " Mandarin Chinese\n",
+ " | ,\n",
+ " 918\n",
+ " | ,\n",
+ " 11.922%\n",
+ " | ,\n",
+ " Sino-Tibetan\n",
+ " | ,\n",
+ " Sinitic\n",
+ " | ,\n",
+ " 2\n",
+ " | ,\n",
+ " Spanish\n",
+ " | ,\n",
+ " 480\n",
+ " | ,\n",
+ " 5.994%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Romance\n",
+ " | ,\n",
+ " 3\n",
+ " | ,\n",
+ " English\n",
+ " | ,\n",
+ " 379\n",
+ " | ,\n",
+ " 4.922%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Germanic\n",
+ " | ,\n",
+ " 4\n",
+ " | ,\n",
+ " Hindi (sanskritised Hindustani)[9]\n",
+ " | ,\n",
+ " 341\n",
+ " | ,\n",
+ " 4.429%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 5\n",
+ " | ,\n",
+ " Bengali\n",
+ " | ,\n",
+ " 300\n",
+ " | ,\n",
+ " 4.000%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 6\n",
+ " | ,\n",
+ " Portuguese\n",
+ " | ,\n",
+ " 221\n",
+ " | ,\n",
+ " 2.870%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Romance\n",
+ " | ,\n",
+ " 7\n",
+ " | ,\n",
+ " Russian\n",
+ " | ,\n",
+ " 154\n",
+ " | ,\n",
+ " 2.000%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Balto-Slavic\n",
+ " | ,\n",
+ " 8\n",
+ " | ,\n",
+ " Japanese\n",
+ " | ,\n",
+ " 128\n",
+ " | ,\n",
+ " 1.662%\n",
+ " | ,\n",
+ " Japonic\n",
+ " | ,\n",
+ " Japanese\n",
+ " | ,\n",
+ " 9\n",
+ " | ,\n",
+ " Western Punjabi[10]\n",
+ " | ,\n",
+ " 92.7\n",
+ " | ,\n",
+ " 1.204%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 10\n",
+ " | ,\n",
+ " Marathi\n",
+ " | ,\n",
+ " 83.1\n",
+ " | ,\n",
+ " 1.079%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 11\n",
+ " | ,\n",
+ " Telugu\n",
+ " | ,\n",
+ " 82.0\n",
+ " | ,\n",
+ " 1.065%\n",
+ " | ,\n",
+ " Dravidian\n",
+ " | ,\n",
+ " South-Central\n",
+ " | ,\n",
+ " 12\n",
+ " | ,\n",
+ " Wu Chinese\n",
+ " | ,\n",
+ " 81.4\n",
+ " | ,\n",
+ " 1.057%\n",
+ " | ,\n",
+ " Sino-Tibetan\n",
+ " | ,\n",
+ " Sinitic\n",
+ " | ,\n",
+ " 13\n",
+ " | ,\n",
+ " Turkish\n",
+ " | ,\n",
+ " 79.4\n",
+ " | ,\n",
+ " 1.031%\n",
+ " | ,\n",
+ " Turkic\n",
+ " | ,\n",
+ " Oghuz\n",
+ " | ,\n",
+ " 14\n",
+ " | ,\n",
+ " Korean\n",
+ " | ,\n",
+ " 77.3\n",
+ " | ,\n",
+ " 1.004%\n",
+ " | ,\n",
+ " Koreanic\n",
+ " | ,\n",
+ " language isolate\n",
+ " | ,\n",
+ " 15\n",
+ " | ,\n",
+ " French\n",
+ " | ,\n",
+ " 77.2\n",
+ " | ,\n",
+ " 1.003%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Romance\n",
+ " | ,\n",
+ " 16\n",
+ " | ,\n",
+ " German (only Standard German)\n",
+ " | ,\n",
+ " 76.1\n",
+ " | ,\n",
+ " 0.988%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Germanic\n",
+ " | ,\n",
+ " 17\n",
+ " | ,\n",
+ " Vietnamese\n",
+ " | ,\n",
+ " 76.0\n",
+ " | ,\n",
+ " 0.987%\n",
+ " | ,\n",
+ " Austroasiatic\n",
+ " | ,\n",
+ " Vietic\n",
+ " | ,\n",
+ " 18\n",
+ " | ,\n",
+ " Tamil\n",
+ " | ,\n",
+ " 75.0\n",
+ " | ,\n",
+ " 0.974%\n",
+ " | ,\n",
+ " Dravidian\n",
+ " | ,\n",
+ " South\n",
+ " | ,\n",
+ " 19\n",
+ " | ,\n",
+ " Yue Chinese\n",
+ " | ,\n",
+ " 73.1\n",
+ " | ,\n",
+ " 0.949%\n",
+ " | ,\n",
+ " Sino-Tibetan\n",
+ " | ,\n",
+ " Sinitic\n",
+ " | ,\n",
+ " 20\n",
+ " | ,\n",
+ " Urdu (persianised Hindustani)[9]\n",
+ " | ,\n",
+ " 68.6\n",
+ " | ,\n",
+ " 0.891%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 21\n",
+ " | ,\n",
+ " Javanese\n",
+ " | ,\n",
+ " 68.3\n",
+ " | ,\n",
+ " 0.887%\n",
+ " | ,\n",
+ " Austronesian\n",
+ " | ,\n",
+ " Malayo-Polynesian\n",
+ " | ,\n",
+ " 22\n",
+ " | ,\n",
+ " Italian\n",
+ " | ,\n",
+ " 64.8\n",
+ " | ,\n",
+ " 0.842%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Romance\n",
+ " | ,\n",
+ " 23\n",
+ " | ,\n",
+ " Egyptian Arabic\n",
+ " | ,\n",
+ " 64.6\n",
+ " | ,\n",
+ " 0.839%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 24\n",
+ " | ,\n",
+ " Gujarati\n",
+ " | ,\n",
+ " 56.4\n",
+ " | ,\n",
+ " 0.732%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 25\n",
+ " | ,\n",
+ " Iranian Persian\n",
+ " | ,\n",
+ " 52.8\n",
+ " | ,\n",
+ " 0.686%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Iranian\n",
+ " | ,\n",
+ " 26\n",
+ " | ,\n",
+ " Bhojpuri\n",
+ " | ,\n",
+ " 52.2\n",
+ " | ,\n",
+ " 0.678%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 27\n",
+ " | ,\n",
+ " Southern Min\n",
+ " | ,\n",
+ " 50.1\n",
+ " | ,\n",
+ " 0.651%\n",
+ " | ,\n",
+ " Sino-Tibetan\n",
+ " | ,\n",
+ " Sinitic\n",
+ " | ,\n",
+ " 28\n",
+ " | ,\n",
+ " Hakka\n",
+ " | ,\n",
+ " 48.2\n",
+ " | ,\n",
+ " 0.626%\n",
+ " | ,\n",
+ " Sino-Tibetan\n",
+ " | ,\n",
+ " Sinitic\n",
+ " | ,\n",
+ " 29\n",
+ " | ,\n",
+ " Jin Chinese\n",
+ " | ,\n",
+ " 46.9\n",
+ " | ,\n",
+ " 0.609%\n",
+ " | ,\n",
+ " Sino-Tibetan\n",
+ " | ,\n",
+ " Sinitic\n",
+ " | ,\n",
+ " 30\n",
+ " | ,\n",
+ " Hausa\n",
+ " | ,\n",
+ " 43.9\n",
+ " | ,\n",
+ " 0.570%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Chadic\n",
+ " | ,\n",
+ " 31\n",
+ " | ,\n",
+ " Kannada\n",
+ " | ,\n",
+ " 43.6\n",
+ " | ,\n",
+ " 0.566%\n",
+ " | ,\n",
+ " Dravidian\n",
+ " | ,\n",
+ " South\n",
+ " | ,\n",
+ " 32\n",
+ " | ,\n",
+ " Indonesian\n",
+ " | ,\n",
+ " 43.4\n",
+ " | ,\n",
+ " 0.564%\n",
+ " | ,\n",
+ " Austronesian\n",
+ " | ,\n",
+ " Malayo-Polynesian\n",
+ " | ,\n",
+ " 33\n",
+ " | ,\n",
+ " Polish\n",
+ " | ,\n",
+ " 39.7\n",
+ " | ,\n",
+ " 0.516%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Balto-Slavic\n",
+ " | ,\n",
+ " 34\n",
+ " | ,\n",
+ " Yoruba\n",
+ " | ,\n",
+ " 37.8\n",
+ " | ,\n",
+ " 0.491%\n",
+ " | ,\n",
+ " Niger–Congo\n",
+ " | ,\n",
+ " Volta–Niger\n",
+ " | ,\n",
+ " 35\n",
+ " | ,\n",
+ " Xiang Chinese\n",
+ " | ,\n",
+ " 37.3\n",
+ " | ,\n",
+ " 0.484%\n",
+ " | ,\n",
+ " Sino-Tibetan\n",
+ " | ,\n",
+ " Sinitic\n",
+ " | ,\n",
+ " 36\n",
+ " | ,\n",
+ " Malayalam\n",
+ " | ,\n",
+ " 37.1\n",
+ " | ,\n",
+ " 0.482%\n",
+ " | ,\n",
+ " Dravidian\n",
+ " | ,\n",
+ " South\n",
+ " | ,\n",
+ " 37\n",
+ " | ,\n",
+ " Odia\n",
+ " | ,\n",
+ " 34.5\n",
+ " | ,\n",
+ " 0.448%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 38\n",
+ " | ,\n",
+ " Maithili\n",
+ " | ,\n",
+ " 33.9\n",
+ " | ,\n",
+ " 0.440%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 39\n",
+ " | ,\n",
+ " Burmese\n",
+ " | ,\n",
+ " 32.9\n",
+ " | ,\n",
+ " 0.427%\n",
+ " | ,\n",
+ " Sino-Tibetan\n",
+ " | ,\n",
+ " Lolo-Burmese\n",
+ " | ,\n",
+ " 40\n",
+ " | ,\n",
+ " Eastern Punjabi[10]\n",
+ " | ,\n",
+ " 32.6\n",
+ " | ,\n",
+ " 0.423%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 41\n",
+ " | ,\n",
+ " Sunda\n",
+ " | ,\n",
+ " 32.4\n",
+ " | ,\n",
+ " 0.421%\n",
+ " | ,\n",
+ " Austronesian\n",
+ " | ,\n",
+ " Malayo-Polynesian\n",
+ " | ,\n",
+ " 42\n",
+ " | ,\n",
+ " Sudanese Arabic\n",
+ " | ,\n",
+ " 31.9\n",
+ " | ,\n",
+ " 0.414%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 43\n",
+ " | ,\n",
+ " Algerian Arabic\n",
+ " | ,\n",
+ " 29.4\n",
+ " | ,\n",
+ " 0.382%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 44\n",
+ " | ,\n",
+ " Moroccan Arabic\n",
+ " | ,\n",
+ " 27.5\n",
+ " | ,\n",
+ " 0.357%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 45\n",
+ " | ,\n",
+ " Ukrainian\n",
+ " | ,\n",
+ " 27.3\n",
+ " | ,\n",
+ " 0.355%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Balto-Slavic\n",
+ " | ,\n",
+ " 46\n",
+ " | ,\n",
+ " Igbo\n",
+ " | ,\n",
+ " 27.0\n",
+ " | ,\n",
+ " 0.351%\n",
+ " | ,\n",
+ " Niger–Congo\n",
+ " | ,\n",
+ " Volta–Niger\n",
+ " | ,\n",
+ " 47\n",
+ " | ,\n",
+ " Northern Uzbek\n",
+ " | ,\n",
+ " 25.1\n",
+ " | ,\n",
+ " 0.326%\n",
+ " | ,\n",
+ " Turkic\n",
+ " | ,\n",
+ " Karluk\n",
+ " | ,\n",
+ " 48\n",
+ " | ,\n",
+ " Sindhi\n",
+ " | ,\n",
+ " 24.6\n",
+ " | ,\n",
+ " 0.319%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 49\n",
+ " | ,\n",
+ " North Levantine Arabic\n",
+ " | ,\n",
+ " 24.6\n",
+ " | ,\n",
+ " 0.319%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 50\n",
+ " | ,\n",
+ " Romanian\n",
+ " | ,\n",
+ " 24.3\n",
+ " | ,\n",
+ " 0.316%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Romance\n",
+ " | ,\n",
+ " 51\n",
+ " | ,\n",
+ " Tagalog\n",
+ " | ,\n",
+ " 23.6\n",
+ " | ,\n",
+ " 0.306%\n",
+ " | ,\n",
+ " Austronesian\n",
+ " | ,\n",
+ " Malayo-Polynesian\n",
+ " | ,\n",
+ " 52\n",
+ " | ,\n",
+ " Dutch\n",
+ " | ,\n",
+ " 23.1\n",
+ " | ,\n",
+ " 0.300%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Germanic\n",
+ " | ,\n",
+ " 53\n",
+ " | ,\n",
+ " Saʽidi Arabic\n",
+ " | ,\n",
+ " 22.4\n",
+ " | ,\n",
+ " 0.291%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 54\n",
+ " | ,\n",
+ " Gan Chinese\n",
+ " | ,\n",
+ " 22.1\n",
+ " | ,\n",
+ " 0.287%\n",
+ " | ,\n",
+ " Sino-Tibetan\n",
+ " | ,\n",
+ " Sinitic\n",
+ " | ,\n",
+ " 55\n",
+ " | ,\n",
+ " Amharic\n",
+ " | ,\n",
+ " 21.9\n",
+ " | ,\n",
+ " 0.284%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 56\n",
+ " | ,\n",
+ " Northern Pashto\n",
+ " | ,\n",
+ " 20.9\n",
+ " | ,\n",
+ " 0.271%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Iranian\n",
+ " | ,\n",
+ " 57\n",
+ " | ,\n",
+ " Magahi\n",
+ " | ,\n",
+ " 20.7\n",
+ " | ,\n",
+ " 0.269%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 58\n",
+ " | ,\n",
+ " Thai\n",
+ " | ,\n",
+ " 20.7\n",
+ " | ,\n",
+ " 0.269%\n",
+ " | ,\n",
+ " Kra–Dai\n",
+ " | ,\n",
+ " Tai\n",
+ " | ,\n",
+ " 59\n",
+ " | ,\n",
+ " Saraiki\n",
+ " | ,\n",
+ " 20.0\n",
+ " | ,\n",
+ " 0.260%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 60\n",
+ " | ,\n",
+ " Khmer\n",
+ " | ,\n",
+ " 16.6\n",
+ " | ,\n",
+ " 0.216%\n",
+ " | ,\n",
+ " Austroasiatic\n",
+ " | ,\n",
+ " Khmer\n",
+ " | ,\n",
+ " 61\n",
+ " | ,\n",
+ " Chhattisgarhi\n",
+ " | ,\n",
+ " 16.3\n",
+ " | ,\n",
+ " 0.212%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 62\n",
+ " | ,\n",
+ " Somali\n",
+ " | ,\n",
+ " 16.2\n",
+ " | ,\n",
+ " 0.210%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Cushitic\n",
+ " | ,\n",
+ " 63\n",
+ " | ,\n",
+ " Malaysian (Malaysian Malay)\n",
+ " | ,\n",
+ " 16.1\n",
+ " | ,\n",
+ " 0.209%\n",
+ " | ,\n",
+ " Austronesian\n",
+ " | ,\n",
+ " Malayo-Polynesian\n",
+ " | ,\n",
+ " 64\n",
+ " | ,\n",
+ " Cebuano\n",
+ " | ,\n",
+ " 15.9\n",
+ " | ,\n",
+ " 0.206%\n",
+ " | ,\n",
+ " Austronesian\n",
+ " | ,\n",
+ " Malayo-Polynesian\n",
+ " | ,\n",
+ " 65\n",
+ " | ,\n",
+ " Nepali\n",
+ " | ,\n",
+ " 15.8\n",
+ " | ,\n",
+ " 0.205%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 66\n",
+ " | ,\n",
+ " Mesopotamian Arabic\n",
+ " | ,\n",
+ " 15.7\n",
+ " | ,\n",
+ " 0.204%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 67\n",
+ " | ,\n",
+ " Assamese\n",
+ " | ,\n",
+ " 15.3\n",
+ " | ,\n",
+ " 0.199%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 68\n",
+ " | ,\n",
+ " Sinhalese\n",
+ " | ,\n",
+ " 15.3\n",
+ " | ,\n",
+ " 0.199%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 69\n",
+ " | ,\n",
+ " Northern Kurdish\n",
+ " | ,\n",
+ " 14.6\n",
+ " | ,\n",
+ " 0.190%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Iranian\n",
+ " | ,\n",
+ " 70\n",
+ " | ,\n",
+ " Hejazi Arabic\n",
+ " | ,\n",
+ " 14.5\n",
+ " | ,\n",
+ " 0.188%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 71\n",
+ " | ,\n",
+ " Nigerian Fulfulde\n",
+ " | ,\n",
+ " 14.5\n",
+ " | ,\n",
+ " 0.188%\n",
+ " | ,\n",
+ " Niger–Congo\n",
+ " | ,\n",
+ " Senegambian\n",
+ " | ,\n",
+ " 72\n",
+ " | ,\n",
+ " Bavarian\n",
+ " | ,\n",
+ " 14.1\n",
+ " | ,\n",
+ " 0.183%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Germanic\n",
+ " | ,\n",
+ " 73\n",
+ " | ,\n",
+ " South Azerbaijani\n",
+ " | ,\n",
+ " 13.8\n",
+ " | ,\n",
+ " 0.179%\n",
+ " | ,\n",
+ " Turkic\n",
+ " | ,\n",
+ " Oghuz\n",
+ " | ,\n",
+ " 74\n",
+ " | ,\n",
+ " Greek\n",
+ " | ,\n",
+ " 13.1\n",
+ " | ,\n",
+ " 0.170%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Hellenic\n",
+ " | ,\n",
+ " 75\n",
+ " | ,\n",
+ " Chittagonian\n",
+ " | ,\n",
+ " 13.0\n",
+ " | ,\n",
+ " 0.169%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 76\n",
+ " | ,\n",
+ " Kazakh\n",
+ " | ,\n",
+ " 12.9\n",
+ " | ,\n",
+ " 0.168%\n",
+ " | ,\n",
+ " Turkic\n",
+ " | ,\n",
+ " Kipchak\n",
+ " | ,\n",
+ " 77\n",
+ " | ,\n",
+ " Deccan\n",
+ " | ,\n",
+ " 12.8\n",
+ " | ,\n",
+ " 0.166%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 78\n",
+ " | ,\n",
+ " Hungarian\n",
+ " | ,\n",
+ " 12.6\n",
+ " | ,\n",
+ " 0.164%\n",
+ " | ,\n",
+ " Uralic\n",
+ " | ,\n",
+ " Finno-Ugric\n",
+ " | ,\n",
+ " 79\n",
+ " | ,\n",
+ " Kinyarwanda\n",
+ " | ,\n",
+ " 12.1\n",
+ " | ,\n",
+ " 0.157%\n",
+ " | ,\n",
+ " Niger–Congo\n",
+ " | ,\n",
+ " Bantu\n",
+ " | ,\n",
+ " 80\n",
+ " | ,\n",
+ " Zulu\n",
+ " | ,\n",
+ " 12.1\n",
+ " | ,\n",
+ " 0.157%\n",
+ " | ,\n",
+ " Niger–Congo\n",
+ " | ,\n",
+ " Bantu\n",
+ " | ,\n",
+ " 81\n",
+ " | ,\n",
+ " South Levantine Arabic\n",
+ " | ,\n",
+ " 11.6\n",
+ " | ,\n",
+ " 0.151%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 82\n",
+ " | ,\n",
+ " Tunisian Arabic\n",
+ " | ,\n",
+ " 11.6\n",
+ " | ,\n",
+ " 0.151%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 83\n",
+ " | ,\n",
+ " Sanaani Spoken Arabic\n",
+ " | ,\n",
+ " 11.4\n",
+ " | ,\n",
+ " 0.148%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 84\n",
+ " | ,\n",
+ " Northern Min\n",
+ " | ,\n",
+ " 11.0\n",
+ " | ,\n",
+ " 0.143%\n",
+ " | ,\n",
+ " Sino-Tibetan\n",
+ " | ,\n",
+ " Sinitic\n",
+ " | ,\n",
+ " 85\n",
+ " | ,\n",
+ " Southern Pashto\n",
+ " | ,\n",
+ " 10.9\n",
+ " | ,\n",
+ " 0.142%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Iranian\n",
+ " | ,\n",
+ " 86\n",
+ " | ,\n",
+ " Rundi\n",
+ " | ,\n",
+ " 10.8\n",
+ " | ,\n",
+ " 0.140%\n",
+ " | ,\n",
+ " Niger–Congo\n",
+ " | ,\n",
+ " Bantu\n",
+ " | ,\n",
+ " 87\n",
+ " | ,\n",
+ " Czech\n",
+ " | ,\n",
+ " 10.7\n",
+ " | ,\n",
+ " 0.139%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Balto-Slavic\n",
+ " | ,\n",
+ " 88\n",
+ " | ,\n",
+ " Taʽizzi-Adeni Arabic\n",
+ " | ,\n",
+ " 10.5\n",
+ " | ,\n",
+ " 0.136%\n",
+ " | ,\n",
+ " Afroasiatic\n",
+ " | ,\n",
+ " Semitic\n",
+ " | ,\n",
+ " 89\n",
+ " | ,\n",
+ " Uyghur\n",
+ " | ,\n",
+ " 10.4\n",
+ " | ,\n",
+ " 0.135%\n",
+ " | ,\n",
+ " Turkic\n",
+ " | ,\n",
+ " Karluk\n",
+ " | ,\n",
+ " 90\n",
+ " | ,\n",
+ " Eastern Min\n",
+ " | ,\n",
+ " 10.3\n",
+ " | ,\n",
+ " 0.134%\n",
+ " | ,\n",
+ " Sino-Tibetan\n",
+ " | ,\n",
+ " Sinitic\n",
+ " | ,\n",
+ " 91\n",
+ " | ,\n",
+ " Sylheti\n",
+ " | ,\n",
+ " 10.3\n",
+ " | ,\n",
+ " 0.134%\n",
+ " | ,\n",
+ " Indo-European\n",
+ " | ,\n",
+ " Indo-Aryan\n",
+ " | ,\n",
+ " 1 | ,\n",
+ " Mandarin (entire branch) | ,\n",
+ " 935 (955) | ,\n",
+ " 14.1%\n",
+ " | ,\n",
+ " 2 | ,\n",
+ " Spanish | ,\n",
+ " 390 (405) | ,\n",
+ " 5.85%\n",
+ " | ,\n",
+ " 3 | ,\n",
+ " English | ,\n",
+ " 365 (360) | ,\n",
+ " 5.52%\n",
+ " | ,\n",
+ " 4 | ,\n",
+ " Hindi[a] | ,\n",
+ " 295 (310) | ,\n",
+ " 4.46%\n",
+ " | ,\n",
+ " 5 | ,\n",
+ " Arabic | ,\n",
+ " 280 (295) | ,\n",
+ " 4.23%\n",
+ " | ,\n",
+ " 6 | ,\n",
+ " Portuguese | ,\n",
+ " 205 (215) | ,\n",
+ " 3.08%\n",
+ " | ,\n",
+ " 7 | ,\n",
+ " Bengali | ,\n",
+ " 200 (205) | ,\n",
+ " 3.05%\n",
+ " | ,\n",
+ " 8 | ,\n",
+ " Russian | ,\n",
+ " 160 (155) | ,\n",
+ " 2.42%\n",
+ " | ,\n",
+ " 9 | ,\n",
+ " Japanese | ,\n",
+ " 125 (125) | ,\n",
+ " 1.92%\n",
+ " | ,\n",
+ " 10 | ,\n",
+ " Punjabi | ,\n",
+ " 95 (100) | ,\n",
+ " 1.44%\n",
+ " | ,\n",
+ " 11 | ,\n",
+ " German | ,\n",
+ " 92 (95) | ,\n",
+ " 1.39%\n",
+ " | ,\n",
+ " 12 | ,\n",
+ " Javanese | ,\n",
+ " 82 | ,\n",
+ " 1.25%\n",
+ " | ,\n",
+ " 13 | ,\n",
+ " Wu (inc. Shanghainese) | ,\n",
+ " 80 | ,\n",
+ " 1.20%\n",
+ " | ,\n",
+ " 14 | ,\n",
+ " Malay (inc. Indonesian and Malaysian) | ,\n",
+ " 77 | ,\n",
+ " 1.16%\n",
+ " | ,\n",
+ " 15 | ,\n",
+ " Telugu | ,\n",
+ " 76 | ,\n",
+ " 1.15%\n",
+ " | ,\n",
+ " 16 | ,\n",
+ " Vietnamese | ,\n",
+ " 76 | ,\n",
+ " 1.14%\n",
+ " | ,\n",
+ " 17 | ,\n",
+ " Korean | ,\n",
+ " 76 | ,\n",
+ " 1.14%\n",
+ " | ,\n",
+ " 18 | ,\n",
+ " French | ,\n",
+ " 75 | ,\n",
+ " 1.12%\n",
+ " | ,\n",
+ " 19 | ,\n",
+ " Marathi | ,\n",
+ " 73 | ,\n",
+ " 1.10%\n",
+ " | ,\n",
+ " 20 | ,\n",
+ " Tamil | ,\n",
+ " 70 | ,\n",
+ " 1.06%\n",
+ " | ,\n",
+ " 21 | ,\n",
+ " Urdu | ,\n",
+ " 66 | ,\n",
+ " 0.99%\n",
+ " | ,\n",
+ " 22 | ,\n",
+ " Turkish | ,\n",
+ " 63 | ,\n",
+ " 0.95%\n",
+ " | ,\n",
+ " 23 | ,\n",
+ " Italian | ,\n",
+ " 59 | ,\n",
+ " 0.90%\n",
+ " | ,\n",
+ " 24 | ,\n",
+ " Yue (inc. Cantonese) | ,\n",
+ " 59 | ,\n",
+ " 0.89%\n",
+ " | ,\n",
+ " 25 | ,\n",
+ " Thai | ,\n",
+ " 56 | ,\n",
+ " 0.85%\n",
+ " | ,\n",
+ " 26 | ,\n",
+ " Gujarati | ,\n",
+ " 49 | ,\n",
+ " 0.74%\n",
+ " | ,\n",
+ " 27 | ,\n",
+ " Jin | ,\n",
+ " 48 | ,\n",
+ " 0.72%\n",
+ " | ,\n",
+ " 28 | ,\n",
+ " Southern Min (inc. Hokkien and Teochew) | ,\n",
+ " 47 | ,\n",
+ " 0.71%\n",
+ " | ,\n",
+ " 29 | ,\n",
+ " Persian | ,\n",
+ " 45 | ,\n",
+ " 0.68%\n",
+ " | ,\n",
+ " 30 | ,\n",
+ " Polish | ,\n",
+ " 40 | ,\n",
+ " 0.61%\n",
+ " | ,\n",
+ " 31 | ,\n",
+ " Pashto | ,\n",
+ " 39 | ,\n",
+ " 0.58%\n",
+ " | ,\n",
+ " 32 | ,\n",
+ " Kannada | ,\n",
+ " 38 | ,\n",
+ " 0.58%\n",
+ " | ,\n",
+ " 33 | ,\n",
+ " Xiang | ,\n",
+ " 38 | ,\n",
+ " 0.58%\n",
+ " | ,\n",
+ " 34 | ,\n",
+ " Malayalam | ,\n",
+ " 38 | ,\n",
+ " 0.57%\n",
+ " | ,\n",
+ " 35 | ,\n",
+ " Sundanese | ,\n",
+ " 38 | ,\n",
+ " 0.57%\n",
+ " | ,\n",
+ " 36 | ,\n",
+ " Hausa | ,\n",
+ " 34 | ,\n",
+ " 0.52%\n",
+ " | ,\n",
+ " 37 | ,\n",
+ " Odia (Oriya) | ,\n",
+ " 33 | ,\n",
+ " 0.50%\n",
+ " | ,\n",
+ " 38 | ,\n",
+ " Burmese | ,\n",
+ " 33 | ,\n",
+ " 0.50%\n",
+ " | ,\n",
+ " 39 | ,\n",
+ " Hakka | ,\n",
+ " 31 | ,\n",
+ " 0.46%\n",
+ " | ,\n",
+ " 40 | ,\n",
+ " Ukrainian | ,\n",
+ " 30 | ,\n",
+ " 0.46%\n",
+ " | ,\n",
+ " 41 | ,\n",
+ " Bhojpuri | ,\n",
+ " 29[b] | ,\n",
+ " 0.43%\n",
+ " | ,\n",
+ " 42 | ,\n",
+ " Tagalog (Filipino) | ,\n",
+ " 28 | ,\n",
+ " 0.42%\n",
+ " | ,\n",
+ " 43 | ,\n",
+ " Yoruba | ,\n",
+ " 28 | ,\n",
+ " 0.42%\n",
+ " | ,\n",
+ " 44 | ,\n",
+ " Maithili | ,\n",
+ " 27[b] | ,\n",
+ " 0.41%\n",
+ " | ,\n",
+ " 45 | ,\n",
+ " Uzbek | ,\n",
+ " 26 | ,\n",
+ " 0.39%\n",
+ " | ,\n",
+ " 46 | ,\n",
+ " Sindhi | ,\n",
+ " 26 | ,\n",
+ " 0.39%\n",
+ " | ,\n",
+ " 47 | ,\n",
+ " Amharic | ,\n",
+ " 25 | ,\n",
+ " 0.37%\n",
+ " | ,\n",
+ " 48 | ,\n",
+ " Fula | ,\n",
+ " 24 | ,\n",
+ " 0.37%\n",
+ " | ,\n",
+ " 49 | ,\n",
+ " Romanian | ,\n",
+ " 24 | ,\n",
+ " 0.37%\n",
+ " | ,\n",
+ " 50 | ,\n",
+ " Oromo | ,\n",
+ " 24 | ,\n",
+ " 0.36%\n",
+ " | ,\n",
+ " 51 | ,\n",
+ " Igbo | ,\n",
+ " 24 | ,\n",
+ " 0.36%\n",
+ " | ,\n",
+ " 52 | ,\n",
+ " Azerbaijani | ,\n",
+ " 23 | ,\n",
+ " 0.34%\n",
+ " | ,\n",
+ " 53 | ,\n",
+ " Awadhi | ,\n",
+ " 22[b] | ,\n",
+ " 0.33%\n",
+ " | ,\n",
+ " 54 | ,\n",
+ " Gan | ,\n",
+ " 22 | ,\n",
+ " 0.33%\n",
+ " | ,\n",
+ " 55 | ,\n",
+ " Cebuano (Visayan) | ,\n",
+ " 21 | ,\n",
+ " 0.32%\n",
+ " | ,\n",
+ " 56 | ,\n",
+ " Dutch | ,\n",
+ " 21 | ,\n",
+ " 0.32%\n",
+ " | ,\n",
+ " 57 | ,\n",
+ " Kurdish | ,\n",
+ " 21 | ,\n",
+ " 0.31%\n",
+ " | ,\n",
+ " 58 | ,\n",
+ " Serbo-Croatian | ,\n",
+ " 19 | ,\n",
+ " 0.28%\n",
+ " | ,\n",
+ " 59 | ,\n",
+ " Malagasy | ,\n",
+ " 18 | ,\n",
+ " 0.28%\n",
+ " | ,\n",
+ " 60 | ,\n",
+ " Saraiki | ,\n",
+ " 17[c] | ,\n",
+ " 0.26%\n",
+ " | ,\n",
+ " 61 | ,\n",
+ " Nepali | ,\n",
+ " 17 | ,\n",
+ " 0.25%\n",
+ " | ,\n",
+ " 62 | ,\n",
+ " Sinhala | ,\n",
+ " 16 | ,\n",
+ " 0.25%\n",
+ " | ,\n",
+ " 63 | ,\n",
+ " Chittagonian | ,\n",
+ " 16 | ,\n",
+ " 0.24%\n",
+ " | ,\n",
+ " 64 | ,\n",
+ " Zhuang | ,\n",
+ " 16 | ,\n",
+ " 0.24%\n",
+ " | ,\n",
+ " 65 | ,\n",
+ " Khmer | ,\n",
+ " 16 | ,\n",
+ " 0.24%\n",
+ " | ,\n",
+ " 66 | ,\n",
+ " Turkmen | ,\n",
+ " 16 | ,\n",
+ " 0.24%\n",
+ " | ,\n",
+ " 67 | ,\n",
+ " Assamese | ,\n",
+ " 15 | ,\n",
+ " 0.23%\n",
+ " | ,\n",
+ " 68 | ,\n",
+ " Madurese | ,\n",
+ " 15 | ,\n",
+ " 0.23%\n",
+ " | ,\n",
+ " 69 | ,\n",
+ " Somali | ,\n",
+ " 15 | ,\n",
+ " 0.22%\n",
+ " | ,\n",
+ " 70 | ,\n",
+ " Marwari | ,\n",
+ " 14[b] | ,\n",
+ " 0.21%\n",
+ " | ,\n",
+ " 71 | ,\n",
+ " Magahi | ,\n",
+ " 14[b] | ,\n",
+ " 0.21%\n",
+ " | ,\n",
+ " 72 | ,\n",
+ " Haryanvi | ,\n",
+ " 14[b] | ,\n",
+ " 0.21%\n",
+ " | ,\n",
+ " 73 | ,\n",
+ " Hungarian | ,\n",
+ " 13 | ,\n",
+ " 0.19%\n",
+ " | ,\n",
+ " 74 | ,\n",
+ " Chhattisgarhi | ,\n",
+ " 12[b] | ,\n",
+ " 0.19%\n",
+ " | ,\n",
+ " 75 | ,\n",
+ " Greek | ,\n",
+ " 12 | ,\n",
+ " 0.18%\n",
+ " | ,\n",
+ " 76 | ,\n",
+ " Chewa | ,\n",
+ " 12 | ,\n",
+ " 0.17%\n",
+ " | ,\n",
+ " 77 | ,\n",
+ " Deccan | ,\n",
+ " 11 | ,\n",
+ " 0.17%\n",
+ " | ,\n",
+ " 78 | ,\n",
+ " Akan | ,\n",
+ " 11 | ,\n",
+ " 0.17%\n",
+ " | ,\n",
+ " 79 | ,\n",
+ " Kazakh | ,\n",
+ " 11 | ,\n",
+ " 0.17%\n",
+ " | ,\n",
+ " 80 | ,\n",
+ " Northern Min[disputed – discuss] | ,\n",
+ " 10.9 | ,\n",
+ " 0.16%\n",
+ " | ,\n",
+ " 81 | ,\n",
+ " Sylheti | ,\n",
+ " 10.7 | ,\n",
+ " 0.16%\n",
+ " | ,\n",
+ " 82 | ,\n",
+ " Zulu | ,\n",
+ " 10.4 | ,\n",
+ " 0.16%\n",
+ " | ,\n",
+ " 83 | ,\n",
+ " Czech | ,\n",
+ " 10.0 | ,\n",
+ " 0.15%\n",
+ " | ,\n",
+ " 84 | ,\n",
+ " Kinyarwanda | ,\n",
+ " 9.8 | ,\n",
+ " 0.15%\n",
+ " | ,\n",
+ " 85 | ,\n",
+ " Dhundhari | ,\n",
+ " 9.6[b] | ,\n",
+ " 0.15%\n",
+ " | ,\n",
+ " 86 | ,\n",
+ " Haitian Creole | ,\n",
+ " 9.6 | ,\n",
+ " 0.15%\n",
+ " | ,\n",
+ " 87 | ,\n",
+ " Eastern Min (inc. Fuzhou dialect) | ,\n",
+ " 9.5 | ,\n",
+ " 0.14%\n",
+ " | ,\n",
+ " 88 | ,\n",
+ " Ilocano | ,\n",
+ " 9.1 | ,\n",
+ " 0.14%\n",
+ " | ,\n",
+ " 89 | ,\n",
+ " Quechua | ,\n",
+ " 8.9 | ,\n",
+ " 0.13%\n",
+ " | ,\n",
+ " 90 | ,\n",
+ " Kirundi | ,\n",
+ " 8.8 | ,\n",
+ " 0.13%\n",
+ " | ,\n",
+ " 91 | ,\n",
+ " Swedish | ,\n",
+ " 8.7 | ,\n",
+ " 0.13%\n",
+ " | ,\n",
+ " 92 | ,\n",
+ " Hmong | ,\n",
+ " 8.4 | ,\n",
+ " 0.13%\n",
+ " | ,\n",
+ " 93 | ,\n",
+ " Shona | ,\n",
+ " 8.3 | ,\n",
+ " 0.13%\n",
+ " | ,\n",
+ " 94 | ,\n",
+ " Uyghur | ,\n",
+ " 8.2 | ,\n",
+ " 0.12%\n",
+ " | ,\n",
+ " 95 | ,\n",
+ " Hiligaynon/Ilonggo (Visayan) | ,\n",
+ " 8.2 | ,\n",
+ " 0.12%\n",
+ " | ,\n",
+ " 96 | ,\n",
+ " Mossi | ,\n",
+ " 7.6 | ,\n",
+ " 0.11%\n",
+ " | ,\n",
+ " 97 | ,\n",
+ " Xhosa | ,\n",
+ " 7.6 | ,\n",
+ " 0.11%\n",
+ " | ,\n",
+ " 98 | ,\n",
+ " Belarusian | ,\n",
+ " 7.6[d] | ,\n",
+ " 0.11%\n",
+ " | ,\n",
+ " 99 | ,\n",
+ " Balochi | ,\n",
+ " 7.6 | ,\n",
+ " 0.11%\n",
+ " | ,\n",
+ " 100 | ,\n",
+ " Konkani | ,\n",
+ " 7.4 | ,\n",
+ " 0.11%\n",
+ " | ,\n",
+ " | ,\n",
+ " 5,610 | ,\n",
+ " 85%\n",
+ " | ]"
+ ]
+ },
+ "execution_count": 52,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# this gets us the language and amount of speakers\n",
+ "\n",
+ "info = soup.find_all(\"td\", class_=False)\n",
+ "info\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['Mandarin Chinese',\n",
+ " 'Spanish',\n",
+ " 'English',\n",
+ " 'Hindi (sanskritised Hindustani)[9]',\n",
+ " 'Bengali',\n",
+ " 'Portuguese',\n",
+ " 'Russian',\n",
+ " 'Japanese',\n",
+ " 'Western Punjabi[10]',\n",
+ " 'Marathi',\n",
+ " 'Telugu',\n",
+ " 'Wu Chinese',\n",
+ " 'Turkish',\n",
+ " 'Korean',\n",
+ " 'French',\n",
+ " 'German (only Standard German)',\n",
+ " 'Vietnamese',\n",
+ " 'Tamil',\n",
+ " 'Yue Chinese',\n",
+ " 'Urdu (persianised Hindustani)[9]',\n",
+ " 'Javanese',\n",
+ " 'Italian',\n",
+ " 'Egyptian Arabic',\n",
+ " 'Gujarati',\n",
+ " 'Iranian Persian',\n",
+ " 'Bhojpuri',\n",
+ " 'Southern Min',\n",
+ " 'Hakka',\n",
+ " 'Jin Chinese',\n",
+ " 'Hausa',\n",
+ " 'Kannada',\n",
+ " 'Indonesian',\n",
+ " 'Polish',\n",
+ " 'Yoruba',\n",
+ " 'Xiang Chinese',\n",
+ " 'Malayalam',\n",
+ " 'Odia',\n",
+ " 'Maithili',\n",
+ " 'Burmese',\n",
+ " 'Eastern Punjabi[10]',\n",
+ " 'Sunda',\n",
+ " 'Sudanese Arabic',\n",
+ " 'Algerian Arabic',\n",
+ " 'Moroccan Arabic',\n",
+ " 'Ukrainian',\n",
+ " 'Igbo',\n",
+ " 'Northern Uzbek',\n",
+ " 'Sindhi',\n",
+ " 'North Levantine Arabic',\n",
+ " 'Romanian',\n",
+ " 'Tagalog',\n",
+ " 'Dutch',\n",
+ " 'Saʽidi Arabic',\n",
+ " 'Gan Chinese',\n",
+ " 'Amharic',\n",
+ " 'Northern Pashto',\n",
+ " 'Magahi',\n",
+ " 'Thai',\n",
+ " 'Saraiki',\n",
+ " 'Khmer',\n",
+ " 'Chhattisgarhi',\n",
+ " 'Somali',\n",
+ " 'Malaysian (Malaysian Malay)',\n",
+ " 'Cebuano',\n",
+ " 'Nepali',\n",
+ " 'Mesopotamian Arabic',\n",
+ " 'Assamese',\n",
+ " 'Sinhalese',\n",
+ " 'Northern Kurdish',\n",
+ " 'Hejazi Arabic',\n",
+ " 'Nigerian Fulfulde',\n",
+ " 'Bavarian',\n",
+ " 'South Azerbaijani',\n",
+ " 'Greek',\n",
+ " 'Chittagonian',\n",
+ " 'Kazakh',\n",
+ " 'Deccan',\n",
+ " 'Hungarian',\n",
+ " 'Kinyarwanda',\n",
+ " 'Zulu',\n",
+ " 'South Levantine Arabic',\n",
+ " 'Tunisian Arabic',\n",
+ " 'Sanaani Spoken Arabic',\n",
+ " 'Northern Min',\n",
+ " 'Southern Pashto',\n",
+ " 'Rundi',\n",
+ " 'Czech',\n",
+ " 'Taʽizzi-Adeni Arabic',\n",
+ " 'Uyghur',\n",
+ " 'Eastern Min',\n",
+ " 'Sylheti',\n",
+ " 'Mandarin (entire branch)',\n",
+ " '5.85%',\n",
+ " 'Hindi[a]',\n",
+ " '4.23%',\n",
+ " 'Bengali',\n",
+ " '2.42%',\n",
+ " 'Punjabi',\n",
+ " '1.39%',\n",
+ " 'Wu (inc. Shanghainese)',\n",
+ " '1.16%',\n",
+ " 'Vietnamese',\n",
+ " '1.14%',\n",
+ " 'Marathi',\n",
+ " '1.06%',\n",
+ " 'Turkish',\n",
+ " '0.90%',\n",
+ " 'Thai',\n",
+ " '0.74%',\n",
+ " 'Southern Min (inc. Hokkien and Teochew)',\n",
+ " '0.68%',\n",
+ " 'Pashto',\n",
+ " '0.58%',\n",
+ " 'Malayalam',\n",
+ " '0.57%',\n",
+ " 'Odia (Oriya)',\n",
+ " '0.50%',\n",
+ " 'Ukrainian',\n",
+ " '0.43%',\n",
+ " 'Yoruba',\n",
+ " '0.41%',\n",
+ " 'Sindhi',\n",
+ " '0.37%',\n",
+ " 'Romanian',\n",
+ " '0.36%',\n",
+ " 'Azerbaijani',\n",
+ " '0.33%',\n",
+ " 'Cebuano (Visayan)',\n",
+ " '0.32%',\n",
+ " 'Serbo-Croatian',\n",
+ " '0.28%',\n",
+ " 'Nepali',\n",
+ " '0.25%',\n",
+ " 'Zhuang',\n",
+ " '0.24%',\n",
+ " 'Assamese',\n",
+ " '0.23%',\n",
+ " 'Marwari',\n",
+ " '0.21%',\n",
+ " 'Hungarian',\n",
+ " '0.19%',\n",
+ " 'Chewa',\n",
+ " '0.17%',\n",
+ " 'Kazakh',\n",
+ " '0.16%',\n",
+ " 'Zulu',\n",
+ " '0.15%',\n",
+ " 'Dhundhari',\n",
+ " '0.15%',\n",
+ " 'Ilocano',\n",
+ " '0.13%',\n",
+ " 'Swedish',\n",
+ " '0.13%',\n",
+ " 'Uyghur',\n",
+ " '0.12%',\n",
+ " 'Xhosa',\n",
+ " '0.11%',\n",
+ " 'Konkani']"
+ ]
+ },
+ "execution_count": 53,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# here we can extract the language name from the above list\n",
+ "\n",
+ "languages = []\n",
+ "\n",
+ "for x in range(1,len(info), 6):\n",
+ " languages.append(info[x].get_text().strip())\n",
+ "\n",
+ "languages"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "['918',\n",
+ " '480',\n",
+ " '379',\n",
+ " '341',\n",
+ " '300',\n",
+ " '221',\n",
+ " '154',\n",
+ " '128',\n",
+ " '92.7',\n",
+ " '83.1',\n",
+ " '82.0',\n",
+ " '81.4',\n",
+ " '79.4',\n",
+ " '77.3',\n",
+ " '77.2',\n",
+ " '76.1',\n",
+ " '76.0',\n",
+ " '75.0',\n",
+ " '73.1',\n",
+ " '68.6',\n",
+ " '68.3',\n",
+ " '64.8',\n",
+ " '64.6',\n",
+ " '56.4',\n",
+ " '52.8',\n",
+ " '52.2',\n",
+ " '50.1',\n",
+ " '48.2',\n",
+ " '46.9',\n",
+ " '43.9',\n",
+ " '43.6',\n",
+ " '43.4',\n",
+ " '39.7',\n",
+ " '37.8',\n",
+ " '37.3',\n",
+ " '37.1',\n",
+ " '34.5',\n",
+ " '33.9',\n",
+ " '32.9',\n",
+ " '32.6',\n",
+ " '32.4',\n",
+ " '31.9',\n",
+ " '29.4',\n",
+ " '27.5',\n",
+ " '27.3',\n",
+ " '27.0',\n",
+ " '25.1',\n",
+ " '24.6',\n",
+ " '24.6',\n",
+ " '24.3',\n",
+ " '23.6',\n",
+ " '23.1',\n",
+ " '22.4',\n",
+ " '22.1',\n",
+ " '21.9',\n",
+ " '20.9',\n",
+ " '20.7',\n",
+ " '20.7',\n",
+ " '20.0',\n",
+ " '16.6',\n",
+ " '16.3',\n",
+ " '16.2',\n",
+ " '16.1',\n",
+ " '15.9',\n",
+ " '15.8',\n",
+ " '15.7',\n",
+ " '15.3',\n",
+ " '15.3',\n",
+ " '14.6',\n",
+ " '14.5',\n",
+ " '14.5',\n",
+ " '14.1',\n",
+ " '13.8',\n",
+ " '13.1',\n",
+ " '13.0',\n",
+ " '12.9',\n",
+ " '12.8',\n",
+ " '12.6',\n",
+ " '12.1',\n",
+ " '12.1',\n",
+ " '11.6',\n",
+ " '11.6',\n",
+ " '11.4',\n",
+ " '11.0',\n",
+ " '10.9',\n",
+ " '10.8',\n",
+ " '10.7',\n",
+ " '10.5',\n",
+ " '10.4',\n",
+ " '10.3',\n",
+ " '10.3',\n",
+ " '935 (955)',\n",
+ " '3',\n",
+ " '295 (310)',\n",
+ " '6',\n",
+ " '200 (205)',\n",
+ " '9',\n",
+ " '95 (100)',\n",
+ " '12',\n",
+ " '80',\n",
+ " '15',\n",
+ " '76',\n",
+ " '18',\n",
+ " '73',\n",
+ " '21',\n",
+ " '63',\n",
+ " '24',\n",
+ " '56',\n",
+ " '27',\n",
+ " '47',\n",
+ " '30',\n",
+ " '39',\n",
+ " '33',\n",
+ " '38',\n",
+ " '36',\n",
+ " '33',\n",
+ " '39',\n",
+ " '30',\n",
+ " '42',\n",
+ " '28',\n",
+ " '45',\n",
+ " '26',\n",
+ " '48',\n",
+ " '24',\n",
+ " '51',\n",
+ " '23',\n",
+ " '54',\n",
+ " '21',\n",
+ " '57',\n",
+ " '19',\n",
+ " '60',\n",
+ " '17',\n",
+ " '63',\n",
+ " '16',\n",
+ " '66',\n",
+ " '15',\n",
+ " '69',\n",
+ " '14[b]',\n",
+ " '72',\n",
+ " '13',\n",
+ " '75',\n",
+ " '12',\n",
+ " '78',\n",
+ " '11',\n",
+ " '81',\n",
+ " '10.4',\n",
+ " '84',\n",
+ " '9.6[b]',\n",
+ " '87',\n",
+ " '9.1',\n",
+ " '90',\n",
+ " '8.7',\n",
+ " '93',\n",
+ " '8.2',\n",
+ " '96',\n",
+ " '7.6',\n",
+ " '99',\n",
+ " '7.4']"
+ ]
+ },
+ "execution_count": 54,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# and here we can extract the number of speakers from the above list\n",
+ "\n",
+ "speakers = []\n",
+ "\n",
+ "for x in range(2,len(info), 6):\n",
+ " speakers.append(info[x].get_text().strip())\n",
+ "\n",
+ "speakers"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " language | \n",
+ " speakers(millions) | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " Mandarin Chinese | \n",
+ " 918 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " Spanish | \n",
+ " 480 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " English | \n",
+ " 379 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " Hindi (sanskritised Hindustani)[9] | \n",
+ " 341 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " Bengali | \n",
+ " 300 | \n",
+ "
\n",
+ " \n",
+ " | 5 | \n",
+ " Portuguese | \n",
+ " 221 | \n",
+ "
\n",
+ " \n",
+ " | 6 | \n",
+ " Russian | \n",
+ " 154 | \n",
+ "
\n",
+ " \n",
+ " | 7 | \n",
+ " Japanese | \n",
+ " 128 | \n",
+ "
\n",
+ " \n",
+ " | 8 | \n",
+ " Western Punjabi[10] | \n",
+ " 92.7 | \n",
+ "
\n",
+ " \n",
+ " | 9 | \n",
+ " Marathi | \n",
+ " 83.1 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " language speakers(millions)\n",
+ "0 Mandarin Chinese 918\n",
+ "1 Spanish 480\n",
+ "2 English 379\n",
+ "3 Hindi (sanskritised Hindustani)[9] 341\n",
+ "4 Bengali 300\n",
+ "5 Portuguese 221\n",
+ "6 Russian 154\n",
+ "7 Japanese 128\n",
+ "8 Western Punjabi[10] 92.7\n",
+ "9 Marathi 83.1"
+ ]
+ },
+ "execution_count": 55,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "top_10_languages = pd.DataFrame(\n",
+ " {\"language\": languages[:10],\n",
+ " \"speakers(millions)\": speakers[:10]\n",
+ " }\n",
+ ")\n",
+ "\n",
+ "top_10_languages\n"
+ ]
}
],
"metadata": {
+ "interpreter": {
+ "hash": "576841b4f7799d251ae57aad53f0bddb5c298a2c04b91f5151e4f2b208165af8"
+ },
"kernelspec": {
- "display_name": "Python 3",
- "language": "python",
+ "display_name": "Python 3.8.8 64-bit ('base': conda)",
"name": "python3"
},
"language_info": {
@@ -162,7 +4736,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5"
+ "version": "3.8.8"
},
"toc": {
"base_numbering": 1,