{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# PyCon 2019: Data Science Best Practices with pandas ([video](https://www.youtube.com/watch?v=dPwLlJkSHLo&list=PL5-da3qGB5ICCsgW1MxlZ0Hq8LL5U3u9y&index=36))\n", "\n", "### GitHub repository: https://github.com/justmarkham/pycon-2019-tutorial\n", "\n", "### Instructor: Kevin Markham\n", "\n", "- Website: https://www.dataschool.io\n", "- YouTube: https://www.youtube.com/dataschool\n", "- Patreon: https://www.patreon.com/dataschool\n", "- Twitter: https://twitter.com/justmarkham\n", "- GitHub: https://github.com/justmarkham" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Introduction to the TED Talks dataset\n", "\n", "https://www.kaggle.com/rounakbanik/ted-talks" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'0.24.2'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import pandas as pd\n", "pd.__version__" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "ted = pd.read_csv('ted.csv')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
commentsdescriptiondurationeventfilm_datelanguagesmain_speakernamenum_speakerpublished_dateratingsrelated_talksspeaker_occupationtagstitleurlviews
04553Sir Ken Robinson makes an entertaining and pro...1164TED2006114082560060Ken RobinsonKen Robinson: Do schools kill creativity?11151367060[{'id': 7, 'name': 'Funny', 'count': 19645}, {...[{'id': 865, 'hero': 'https://pe.tedcdn.com/im...Author/educator['children', 'creativity', 'culture', 'dance',...Do schools kill creativity?https://www.ted.com/talks/ken_robinson_says_sc...47227110
1265With the same humor and humanity he exuded in ...977TED2006114082560043Al GoreAl Gore: Averting the climate crisis11151367060[{'id': 7, 'name': 'Funny', 'count': 544}, {'i...[{'id': 243, 'hero': 'https://pe.tedcdn.com/im...Climate advocate['alternative energy', 'cars', 'climate change...Averting the climate crisishttps://www.ted.com/talks/al_gore_on_averting_...3200520
2124New York Times columnist David Pogue takes aim...1286TED2006114073920026David PogueDavid Pogue: Simplicity sells11151367060[{'id': 7, 'name': 'Funny', 'count': 964}, {'i...[{'id': 1725, 'hero': 'https://pe.tedcdn.com/i...Technology columnist['computers', 'entertainment', 'interface desi...Simplicity sellshttps://www.ted.com/talks/david_pogue_says_sim...1636292
3200In an emotionally charged talk, MacArthur-winn...1116TED2006114091200035Majora CarterMajora Carter: Greening the ghetto11151367060[{'id': 3, 'name': 'Courageous', 'count': 760}...[{'id': 1041, 'hero': 'https://pe.tedcdn.com/i...Activist for environmental justice['MacArthur grant', 'activism', 'business', 'c...Greening the ghettohttps://www.ted.com/talks/majora_carter_s_tale...1697550
4593You've never seen data presented like this. Wi...1190TED2006114056640048Hans RoslingHans Rosling: The best stats you've ever seen11151440680[{'id': 9, 'name': 'Ingenious', 'count': 3202}...[{'id': 2056, 'hero': 'https://pe.tedcdn.com/i...Global health expert; data visionary['Africa', 'Asia', 'Google', 'demo', 'economic...The best stats you've ever seenhttps://www.ted.com/talks/hans_rosling_shows_t...12005869
\n", "
" ], "text/plain": [ " comments description duration \\\n", "0 4553 Sir Ken Robinson makes an entertaining and pro... 1164 \n", "1 265 With the same humor and humanity he exuded in ... 977 \n", "2 124 New York Times columnist David Pogue takes aim... 1286 \n", "3 200 In an emotionally charged talk, MacArthur-winn... 1116 \n", "4 593 You've never seen data presented like this. Wi... 1190 \n", "\n", " event film_date languages main_speaker \\\n", "0 TED2006 1140825600 60 Ken Robinson \n", "1 TED2006 1140825600 43 Al Gore \n", "2 TED2006 1140739200 26 David Pogue \n", "3 TED2006 1140912000 35 Majora Carter \n", "4 TED2006 1140566400 48 Hans Rosling \n", "\n", " name num_speaker published_date \\\n", "0 Ken Robinson: Do schools kill creativity? 1 1151367060 \n", "1 Al Gore: Averting the climate crisis 1 1151367060 \n", "2 David Pogue: Simplicity sells 1 1151367060 \n", "3 Majora Carter: Greening the ghetto 1 1151367060 \n", "4 Hans Rosling: The best stats you've ever seen 1 1151440680 \n", "\n", " ratings \\\n", "0 [{'id': 7, 'name': 'Funny', 'count': 19645}, {... \n", "1 [{'id': 7, 'name': 'Funny', 'count': 544}, {'i... \n", "2 [{'id': 7, 'name': 'Funny', 'count': 964}, {'i... \n", "3 [{'id': 3, 'name': 'Courageous', 'count': 760}... \n", "4 [{'id': 9, 'name': 'Ingenious', 'count': 3202}... \n", "\n", " related_talks \\\n", "0 [{'id': 865, 'hero': 'https://pe.tedcdn.com/im... \n", "1 [{'id': 243, 'hero': 'https://pe.tedcdn.com/im... \n", "2 [{'id': 1725, 'hero': 'https://pe.tedcdn.com/i... \n", "3 [{'id': 1041, 'hero': 'https://pe.tedcdn.com/i... \n", "4 [{'id': 2056, 'hero': 'https://pe.tedcdn.com/i... \n", "\n", " speaker_occupation \\\n", "0 Author/educator \n", "1 Climate advocate \n", "2 Technology columnist \n", "3 Activist for environmental justice \n", "4 Global health expert; data visionary \n", "\n", " tags \\\n", "0 ['children', 'creativity', 'culture', 'dance',... \n", "1 ['alternative energy', 'cars', 'climate change... \n", "2 ['computers', 'entertainment', 'interface desi... \n", "3 ['MacArthur grant', 'activism', 'business', 'c... \n", "4 ['Africa', 'Asia', 'Google', 'demo', 'economic... \n", "\n", " title \\\n", "0 Do schools kill creativity? \n", "1 Averting the climate crisis \n", "2 Simplicity sells \n", "3 Greening the ghetto \n", "4 The best stats you've ever seen \n", "\n", " url views \n", "0 https://www.ted.com/talks/ken_robinson_says_sc... 47227110 \n", "1 https://www.ted.com/talks/al_gore_on_averting_... 3200520 \n", "2 https://www.ted.com/talks/david_pogue_says_sim... 1636292 \n", "3 https://www.ted.com/talks/majora_carter_s_tale... 1697550 \n", "4 https://www.ted.com/talks/hans_rosling_shows_t... 12005869 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# each row represents a single talk\n", "ted.head()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2550, 17)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# rows, columns\n", "ted.shape" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "comments int64\n", "description object\n", "duration int64\n", "event object\n", "film_date int64\n", "languages int64\n", "main_speaker object\n", "name object\n", "num_speaker int64\n", "published_date int64\n", "ratings object\n", "related_talks object\n", "speaker_occupation object\n", "tags object\n", "title object\n", "url object\n", "views int64\n", "dtype: object" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# object columns are usually strings, but can also be arbitrary Python objects (lists, dictionaries)\n", "ted.dtypes" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "comments 0\n", "description 0\n", "duration 0\n", "event 0\n", "film_date 0\n", "languages 0\n", "main_speaker 0\n", "name 0\n", "num_speaker 0\n", "published_date 0\n", "ratings 0\n", "related_talks 0\n", "speaker_occupation 6\n", "tags 0\n", "title 0\n", "url 0\n", "views 0\n", "dtype: int64" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# count the number of missing values in each column\n", "ted.isna().sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Which talks provoke the most online discussion?" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
commentsdescriptiondurationeventfilm_datelanguagesmain_speakernamenum_speakerpublished_dateratingsrelated_talksspeaker_occupationtagstitleurlviews
17872673Our consciousness is a fundamental aspect of o...1117TED2014139510080033David ChalmersDavid Chalmers: How do you explain consciousness?11405350484[{'id': 25, 'name': 'OK', 'count': 280}, {'id'...[{'id': 1308, 'hero': 'https://pe.tedcdn.com/i...Philosopher['brain', 'consciousness', 'neuroscience', 'ph...How do you explain consciousness?https://www.ted.com/talks/david_chalmers_how_d...2162764
2012877Jill Bolte Taylor got a research opportunity f...1099TED2008120407040049Jill Bolte TaylorJill Bolte Taylor: My stroke of insight11205284200[{'id': 22, 'name': 'Fascinating', 'count': 14...[{'id': 184, 'hero': 'https://pe.tedcdn.com/im...Neuroanatomist['biology', 'brain', 'consciousness', 'global ...My stroke of insighthttps://www.ted.com/talks/jill_bolte_taylor_s_...21190883
6443356Questions of good and evil, right and wrong ar...1386TED2010126584640039Sam HarrisSam Harris: Science can answer moral questions11269249180[{'id': 8, 'name': 'Informative', 'count': 923...[{'id': 666, 'hero': 'https://pe.tedcdn.com/im...Neuroscientist, philosopher['culture', 'evolutionary psychology', 'global...Science can answer moral questionshttps://www.ted.com/talks/sam_harris_science_c...3433437
04553Sir Ken Robinson makes an entertaining and pro...1164TED2006114082560060Ken RobinsonKen Robinson: Do schools kill creativity?11151367060[{'id': 7, 'name': 'Funny', 'count': 19645}, {...[{'id': 865, 'hero': 'https://pe.tedcdn.com/im...Author/educator['children', 'creativity', 'culture', 'dance',...Do schools kill creativity?https://www.ted.com/talks/ken_robinson_says_sc...47227110
966404Richard Dawkins urges all atheists to openly s...1750TED2002101260800042Richard DawkinsRichard Dawkins: Militant atheism11176689220[{'id': 3, 'name': 'Courageous', 'count': 3236...[{'id': 86, 'hero': 'https://pe.tedcdn.com/ima...Evolutionary biologist['God', 'atheism', 'culture', 'religion', 'sci...Militant atheismhttps://www.ted.com/talks/richard_dawkins_on_m...4374792
\n", "
" ], "text/plain": [ " comments description duration \\\n", "1787 2673 Our consciousness is a fundamental aspect of o... 1117 \n", "201 2877 Jill Bolte Taylor got a research opportunity f... 1099 \n", "644 3356 Questions of good and evil, right and wrong ar... 1386 \n", "0 4553 Sir Ken Robinson makes an entertaining and pro... 1164 \n", "96 6404 Richard Dawkins urges all atheists to openly s... 1750 \n", "\n", " event film_date languages main_speaker \\\n", "1787 TED2014 1395100800 33 David Chalmers \n", "201 TED2008 1204070400 49 Jill Bolte Taylor \n", "644 TED2010 1265846400 39 Sam Harris \n", "0 TED2006 1140825600 60 Ken Robinson \n", "96 TED2002 1012608000 42 Richard Dawkins \n", "\n", " name num_speaker \\\n", "1787 David Chalmers: How do you explain consciousness? 1 \n", "201 Jill Bolte Taylor: My stroke of insight 1 \n", "644 Sam Harris: Science can answer moral questions 1 \n", "0 Ken Robinson: Do schools kill creativity? 1 \n", "96 Richard Dawkins: Militant atheism 1 \n", "\n", " published_date ratings \\\n", "1787 1405350484 [{'id': 25, 'name': 'OK', 'count': 280}, {'id'... \n", "201 1205284200 [{'id': 22, 'name': 'Fascinating', 'count': 14... \n", "644 1269249180 [{'id': 8, 'name': 'Informative', 'count': 923... \n", "0 1151367060 [{'id': 7, 'name': 'Funny', 'count': 19645}, {... \n", "96 1176689220 [{'id': 3, 'name': 'Courageous', 'count': 3236... \n", "\n", " related_talks \\\n", "1787 [{'id': 1308, 'hero': 'https://pe.tedcdn.com/i... \n", "201 [{'id': 184, 'hero': 'https://pe.tedcdn.com/im... \n", "644 [{'id': 666, 'hero': 'https://pe.tedcdn.com/im... \n", "0 [{'id': 865, 'hero': 'https://pe.tedcdn.com/im... \n", "96 [{'id': 86, 'hero': 'https://pe.tedcdn.com/ima... \n", "\n", " speaker_occupation \\\n", "1787 Philosopher \n", "201 Neuroanatomist \n", "644 Neuroscientist, philosopher \n", "0 Author/educator \n", "96 Evolutionary biologist \n", "\n", " tags \\\n", "1787 ['brain', 'consciousness', 'neuroscience', 'ph... \n", "201 ['biology', 'brain', 'consciousness', 'global ... \n", "644 ['culture', 'evolutionary psychology', 'global... \n", "0 ['children', 'creativity', 'culture', 'dance',... \n", "96 ['God', 'atheism', 'culture', 'religion', 'sci... \n", "\n", " title \\\n", "1787 How do you explain consciousness? \n", "201 My stroke of insight \n", "644 Science can answer moral questions \n", "0 Do schools kill creativity? \n", "96 Militant atheism \n", "\n", " url views \n", "1787 https://www.ted.com/talks/david_chalmers_how_d... 2162764 \n", "201 https://www.ted.com/talks/jill_bolte_taylor_s_... 21190883 \n", "644 https://www.ted.com/talks/sam_harris_science_c... 3433437 \n", "0 https://www.ted.com/talks/ken_robinson_says_sc... 47227110 \n", "96 https://www.ted.com/talks/richard_dawkins_on_m... 4374792 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# sort by the number of first-level comments, though this is biased in favor of older talks\n", "ted.sort_values('comments').tail()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# correct for this bias by calculating the number of comments per view\n", "ted['comments_per_view'] = ted.comments / ted.views" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
commentsdescriptiondurationeventfilm_datelanguagesmain_speakernamenum_speakerpublished_dateratingsrelated_talksspeaker_occupationtagstitleurlviewscomments_per_view
9542492Janet Echelman found her true voice as an arti...566TED2011129911040035Janet EchelmanJanet Echelman: Taking imagination seriously11307489760[{'id': 23, 'name': 'Jaw-dropping', 'count': 3...[{'id': 453, 'hero': 'https://pe.tedcdn.com/im...Artist['art', 'cities', 'culture', 'data', 'design',...Taking imagination seriouslyhttps://www.ted.com/talks/janet_echelman18329300.001360
6941502Filmmaker Sharmeen Obaid-Chinoy takes on a ter...489TED2010126576000032Sharmeen Obaid-ChinoySharmeen Obaid-Chinoy: Inside a school for sui...11274865960[{'id': 23, 'name': 'Jaw-dropping', 'count': 3...[{'id': 171, 'hero': 'https://pe.tedcdn.com/im...Filmmaker['TED Fellows', 'children', 'culture', 'film',...Inside a school for suicide bombershttps://www.ted.com/talks/sharmeen_obaid_chino...10572380.001421
966404Richard Dawkins urges all atheists to openly s...1750TED2002101260800042Richard DawkinsRichard Dawkins: Militant atheism11176689220[{'id': 3, 'name': 'Courageous', 'count': 3236...[{'id': 86, 'hero': 'https://pe.tedcdn.com/ima...Evolutionary biologist['God', 'atheism', 'culture', 'religion', 'sci...Militant atheismhttps://www.ted.com/talks/richard_dawkins_on_m...43747920.001464
803834David Bismark demos a new system for voting th...422TEDGlobal 2010127906560036David BismarkDavid Bismark: E-voting without fraud11288685640[{'id': 25, 'name': 'OK', 'count': 111}, {'id'...[{'id': 803, 'hero': 'https://pe.tedcdn.com/im...Voting system designer['culture', 'democracy', 'design', 'global iss...E-voting without fraudhttps://www.ted.com/talks/david_bismark_e_voti...5435510.001534
744649Hours before New York lawmakers rejected a key...453New York State Senate12597120000Diane J. SavinoDiane J. Savino: The case for same-sex marriage11282062180[{'id': 25, 'name': 'OK', 'count': 100}, {'id'...[{'id': 217, 'hero': 'https://pe.tedcdn.com/im...Senator['God', 'LGBT', 'culture', 'government', 'law'...The case for same-sex marriagehttps://www.ted.com/talks/diane_j_savino_the_c...2923950.002220
\n", "
" ], "text/plain": [ " comments description duration \\\n", "954 2492 Janet Echelman found her true voice as an arti... 566 \n", "694 1502 Filmmaker Sharmeen Obaid-Chinoy takes on a ter... 489 \n", "96 6404 Richard Dawkins urges all atheists to openly s... 1750 \n", "803 834 David Bismark demos a new system for voting th... 422 \n", "744 649 Hours before New York lawmakers rejected a key... 453 \n", "\n", " event film_date languages main_speaker \\\n", "954 TED2011 1299110400 35 Janet Echelman \n", "694 TED2010 1265760000 32 Sharmeen Obaid-Chinoy \n", "96 TED2002 1012608000 42 Richard Dawkins \n", "803 TEDGlobal 2010 1279065600 36 David Bismark \n", "744 New York State Senate 1259712000 0 Diane J. Savino \n", "\n", " name num_speaker \\\n", "954 Janet Echelman: Taking imagination seriously 1 \n", "694 Sharmeen Obaid-Chinoy: Inside a school for sui... 1 \n", "96 Richard Dawkins: Militant atheism 1 \n", "803 David Bismark: E-voting without fraud 1 \n", "744 Diane J. Savino: The case for same-sex marriage 1 \n", "\n", " published_date ratings \\\n", "954 1307489760 [{'id': 23, 'name': 'Jaw-dropping', 'count': 3... \n", "694 1274865960 [{'id': 23, 'name': 'Jaw-dropping', 'count': 3... \n", "96 1176689220 [{'id': 3, 'name': 'Courageous', 'count': 3236... \n", "803 1288685640 [{'id': 25, 'name': 'OK', 'count': 111}, {'id'... \n", "744 1282062180 [{'id': 25, 'name': 'OK', 'count': 100}, {'id'... \n", "\n", " related_talks \\\n", "954 [{'id': 453, 'hero': 'https://pe.tedcdn.com/im... \n", "694 [{'id': 171, 'hero': 'https://pe.tedcdn.com/im... \n", "96 [{'id': 86, 'hero': 'https://pe.tedcdn.com/ima... \n", "803 [{'id': 803, 'hero': 'https://pe.tedcdn.com/im... \n", "744 [{'id': 217, 'hero': 'https://pe.tedcdn.com/im... \n", "\n", " speaker_occupation \\\n", "954 Artist \n", "694 Filmmaker \n", "96 Evolutionary biologist \n", "803 Voting system designer \n", "744 Senator \n", "\n", " tags \\\n", "954 ['art', 'cities', 'culture', 'data', 'design',... \n", "694 ['TED Fellows', 'children', 'culture', 'film',... \n", "96 ['God', 'atheism', 'culture', 'religion', 'sci... \n", "803 ['culture', 'democracy', 'design', 'global iss... \n", "744 ['God', 'LGBT', 'culture', 'government', 'law'... \n", "\n", " title \\\n", "954 Taking imagination seriously \n", "694 Inside a school for suicide bombers \n", "96 Militant atheism \n", "803 E-voting without fraud \n", "744 The case for same-sex marriage \n", "\n", " url views \\\n", "954 https://www.ted.com/talks/janet_echelman 1832930 \n", "694 https://www.ted.com/talks/sharmeen_obaid_chino... 1057238 \n", "96 https://www.ted.com/talks/richard_dawkins_on_m... 4374792 \n", "803 https://www.ted.com/talks/david_bismark_e_voti... 543551 \n", "744 https://www.ted.com/talks/diane_j_savino_the_c... 292395 \n", "\n", " comments_per_view \n", "954 0.001360 \n", "694 0.001421 \n", "96 0.001464 \n", "803 0.001534 \n", "744 0.002220 " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# interpretation: for every view of the same-sex marriage talk, there are 0.002 comments\n", "ted.sort_values('comments_per_view').tail()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# make this more interpretable by inverting the calculation\n", "ted['views_per_comment'] = ted.views / ted.comments" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
commentsdescriptiondurationeventfilm_datelanguagesmain_speakernamenum_speakerpublished_dateratingsrelated_talksspeaker_occupationtagstitleurlviewscomments_per_viewviews_per_comment
744649Hours before New York lawmakers rejected a key...453New York State Senate12597120000Diane J. SavinoDiane J. Savino: The case for same-sex marriage11282062180[{'id': 25, 'name': 'OK', 'count': 100}, {'id'...[{'id': 217, 'hero': 'https://pe.tedcdn.com/im...Senator['God', 'LGBT', 'culture', 'government', 'law'...The case for same-sex marriagehttps://www.ted.com/talks/diane_j_savino_the_c...2923950.002220450.531587
803834David Bismark demos a new system for voting th...422TEDGlobal 2010127906560036David BismarkDavid Bismark: E-voting without fraud11288685640[{'id': 25, 'name': 'OK', 'count': 111}, {'id'...[{'id': 803, 'hero': 'https://pe.tedcdn.com/im...Voting system designer['culture', 'democracy', 'design', 'global iss...E-voting without fraudhttps://www.ted.com/talks/david_bismark_e_voti...5435510.001534651.739808
966404Richard Dawkins urges all atheists to openly s...1750TED2002101260800042Richard DawkinsRichard Dawkins: Militant atheism11176689220[{'id': 3, 'name': 'Courageous', 'count': 3236...[{'id': 86, 'hero': 'https://pe.tedcdn.com/ima...Evolutionary biologist['God', 'atheism', 'culture', 'religion', 'sci...Militant atheismhttps://www.ted.com/talks/richard_dawkins_on_m...43747920.001464683.134291
6941502Filmmaker Sharmeen Obaid-Chinoy takes on a ter...489TED2010126576000032Sharmeen Obaid-ChinoySharmeen Obaid-Chinoy: Inside a school for sui...11274865960[{'id': 23, 'name': 'Jaw-dropping', 'count': 3...[{'id': 171, 'hero': 'https://pe.tedcdn.com/im...Filmmaker['TED Fellows', 'children', 'culture', 'film',...Inside a school for suicide bombershttps://www.ted.com/talks/sharmeen_obaid_chino...10572380.001421703.886818
9542492Janet Echelman found her true voice as an arti...566TED2011129911040035Janet EchelmanJanet Echelman: Taking imagination seriously11307489760[{'id': 23, 'name': 'Jaw-dropping', 'count': 3...[{'id': 453, 'hero': 'https://pe.tedcdn.com/im...Artist['art', 'cities', 'culture', 'data', 'design',...Taking imagination seriouslyhttps://www.ted.com/talks/janet_echelman18329300.001360735.525682
\n", "
" ], "text/plain": [ " comments description duration \\\n", "744 649 Hours before New York lawmakers rejected a key... 453 \n", "803 834 David Bismark demos a new system for voting th... 422 \n", "96 6404 Richard Dawkins urges all atheists to openly s... 1750 \n", "694 1502 Filmmaker Sharmeen Obaid-Chinoy takes on a ter... 489 \n", "954 2492 Janet Echelman found her true voice as an arti... 566 \n", "\n", " event film_date languages main_speaker \\\n", "744 New York State Senate 1259712000 0 Diane J. Savino \n", "803 TEDGlobal 2010 1279065600 36 David Bismark \n", "96 TED2002 1012608000 42 Richard Dawkins \n", "694 TED2010 1265760000 32 Sharmeen Obaid-Chinoy \n", "954 TED2011 1299110400 35 Janet Echelman \n", "\n", " name num_speaker \\\n", "744 Diane J. Savino: The case for same-sex marriage 1 \n", "803 David Bismark: E-voting without fraud 1 \n", "96 Richard Dawkins: Militant atheism 1 \n", "694 Sharmeen Obaid-Chinoy: Inside a school for sui... 1 \n", "954 Janet Echelman: Taking imagination seriously 1 \n", "\n", " published_date ratings \\\n", "744 1282062180 [{'id': 25, 'name': 'OK', 'count': 100}, {'id'... \n", "803 1288685640 [{'id': 25, 'name': 'OK', 'count': 111}, {'id'... \n", "96 1176689220 [{'id': 3, 'name': 'Courageous', 'count': 3236... \n", "694 1274865960 [{'id': 23, 'name': 'Jaw-dropping', 'count': 3... \n", "954 1307489760 [{'id': 23, 'name': 'Jaw-dropping', 'count': 3... \n", "\n", " related_talks \\\n", "744 [{'id': 217, 'hero': 'https://pe.tedcdn.com/im... \n", "803 [{'id': 803, 'hero': 'https://pe.tedcdn.com/im... \n", "96 [{'id': 86, 'hero': 'https://pe.tedcdn.com/ima... \n", "694 [{'id': 171, 'hero': 'https://pe.tedcdn.com/im... \n", "954 [{'id': 453, 'hero': 'https://pe.tedcdn.com/im... \n", "\n", " speaker_occupation \\\n", "744 Senator \n", "803 Voting system designer \n", "96 Evolutionary biologist \n", "694 Filmmaker \n", "954 Artist \n", "\n", " tags \\\n", "744 ['God', 'LGBT', 'culture', 'government', 'law'... \n", "803 ['culture', 'democracy', 'design', 'global iss... \n", "96 ['God', 'atheism', 'culture', 'religion', 'sci... \n", "694 ['TED Fellows', 'children', 'culture', 'film',... \n", "954 ['art', 'cities', 'culture', 'data', 'design',... \n", "\n", " title \\\n", "744 The case for same-sex marriage \n", "803 E-voting without fraud \n", "96 Militant atheism \n", "694 Inside a school for suicide bombers \n", "954 Taking imagination seriously \n", "\n", " url views \\\n", "744 https://www.ted.com/talks/diane_j_savino_the_c... 292395 \n", "803 https://www.ted.com/talks/david_bismark_e_voti... 543551 \n", "96 https://www.ted.com/talks/richard_dawkins_on_m... 4374792 \n", "694 https://www.ted.com/talks/sharmeen_obaid_chino... 1057238 \n", "954 https://www.ted.com/talks/janet_echelman 1832930 \n", "\n", " comments_per_view views_per_comment \n", "744 0.002220 450.531587 \n", "803 0.001534 651.739808 \n", "96 0.001464 683.134291 \n", "694 0.001421 703.886818 \n", "954 0.001360 735.525682 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# interpretation: 1 out of every 450 people leave a comment\n", "ted.sort_values('views_per_comment').head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lessons:\n", "\n", "1. Consider the limitations and biases of your data when analyzing it\n", "2. Make your results understandable" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Visualize the distribution of comments" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# line plot is not appropriate here (use it to measure something over time)\n", "ted.comments.plot()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# histogram shows the frequency distribution of a single numeric variable\n", "ted.comments.plot(kind='hist')" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# modify the plot to be more informative\n", "ted[ted.comments < 1000].comments.plot(kind='hist')" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(32, 19)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# check how many observations we removed from the plot\n", "ted[ted.comments >= 1000].shape" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# can also write this using the query method\n", "ted.query('comments < 1000').comments.plot(kind='hist')" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# can also write this using the loc accessor\n", "ted.loc[ted.comments < 1000, 'comments'].plot(kind='hist')" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# increase the number of bins to see more detail\n", "ted.loc[ted.comments < 1000, 'comments'].plot(kind='hist', bins=20)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# boxplot can also show distributions, but it's far less useful for concentrated distributions because of outliers\n", "ted.loc[ted.comments < 1000, 'comments'].plot(kind='box')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lessons:\n", "\n", "1. Choose your plot type based on the question you are answering and the data type(s) you are working with\n", "2. Use pandas one-liners to iterate through plots quickly\n", "3. Try modifying the plot defaults\n", "4. Creating plots involves decision-making" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. Plot the number of talks that took place each year\n", "\n", "Bonus exercise: calculate the average delay between filming and publishing" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2012 TEDxBoulder\n", "1307 TEDxUCL\n", "144 TEDGlobal 2007\n", "1739 TED2014\n", "1529 TEDGlobal 2013\n", "1181 TEDxWomen 2011\n", "2150 TEDYouth 2015\n", "1719 TED2014\n", "64 TED2007\n", "1178 TEDxCambridge\n", "Name: event, dtype: object" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# event column does not always include the year\n", "ted.event.sample(10)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 1140825600\n", "1 1140825600\n", "2 1140739200\n", "3 1140912000\n", "4 1140566400\n", "Name: film_date, dtype: int64" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# dataset documentation for film_date says \"Unix timestamp of the filming\"\n", "ted.film_date.head()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 1970-01-01 00:00:01.140825600\n", "1 1970-01-01 00:00:01.140825600\n", "2 1970-01-01 00:00:01.140739200\n", "3 1970-01-01 00:00:01.140912000\n", "4 1970-01-01 00:00:01.140566400\n", "Name: film_date, dtype: datetime64[ns]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# results don't look right\n", "pd.to_datetime(ted.film_date).head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[pandas documentation for `to_datetime`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 2006-02-25\n", "1 2006-02-25\n", "2 2006-02-24\n", "3 2006-02-26\n", "4 2006-02-22\n", "Name: film_date, dtype: datetime64[ns]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# now the results look right\n", "pd.to_datetime(ted.film_date, unit='s').head()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "ted['film_datetime'] = pd.to_datetime(ted.film_date, unit='s')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
eventfilm_datetime
831TEDWomen 20102010-12-08
2464TED20172017-04-24
2392TEDxBeaconStreet2016-11-19
1307TEDxUCL2012-06-03
2234TED20162016-02-17
\n", "
" ], "text/plain": [ " event film_datetime\n", "831 TEDWomen 2010 2010-12-08\n", "2464 TED2017 2017-04-24\n", "2392 TEDxBeaconStreet 2016-11-19\n", "1307 TEDxUCL 2012-06-03\n", "2234 TED2016 2016-02-17" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# verify that event name matches film_datetime for a random sample\n", "ted[['event', 'film_datetime']].sample(5)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "comments int64\n", "description object\n", "duration int64\n", "event object\n", "film_date int64\n", "languages int64\n", "main_speaker object\n", "name object\n", "num_speaker int64\n", "published_date int64\n", "ratings object\n", "related_talks object\n", "speaker_occupation object\n", "tags object\n", "title object\n", "url object\n", "views int64\n", "comments_per_view float64\n", "views_per_comment float64\n", "film_datetime datetime64[ns]\n", "dtype: object" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# new column uses the datetime data type (this was an automatic conversion)\n", "ted.dtypes" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 2006\n", "1 2006\n", "2 2006\n", "3 2006\n", "4 2006\n", "Name: film_datetime, dtype: int64" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# datetime columns have convenient attributes under the dt namespace\n", "ted.film_datetime.dt.year.head()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 ted2006\n", "1 ted2006\n", "2 ted2006\n", "3 ted2006\n", "4 ted2006\n", "Name: event, dtype: object" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# similar to string methods under the str namespace\n", "ted.event.str.lower().head()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2013 270\n", "2011 270\n", "2010 267\n", "2012 267\n", "2016 246\n", "2015 239\n", "2014 237\n", "2009 232\n", "2007 114\n", "2017 98\n", "2008 84\n", "2005 66\n", "2006 50\n", "2003 33\n", "2004 33\n", "2002 27\n", "1998 6\n", "2001 5\n", "1983 1\n", "1991 1\n", "1994 1\n", "1990 1\n", "1984 1\n", "1972 1\n", "Name: film_datetime, dtype: int64" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# count the number of talks each year using value_counts()\n", "ted.film_datetime.dt.year.value_counts()" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# points are plotted and connected in the order you give them to pandas\n", "ted.film_datetime.dt.year.value_counts().plot()" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# need to sort the index before plotting\n", "ted.film_datetime.dt.year.value_counts().sort_index().plot()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "Timestamp('2017-08-27 00:00:00')" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# we only have partial data for 2017\n", "ted.film_datetime.max()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lessons:\n", "\n", "1. Read the documentation\n", "2. Use the datetime data type for dates and times\n", "3. Check your work as you go\n", "4. Consider excluding data if it might not be relevant" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. What were the \"best\" events in TED history to attend?" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "TED2014 84\n", "TED2009 83\n", "TED2013 77\n", "TED2016 77\n", "TED2015 75\n", "Name: event, dtype: int64" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# count the number of talks (great if you value variety, but they may not be great talks)\n", "ted.event.value_counts().head()" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "event\n", "AORN Congress 149818.0\n", "Arbejdsglaede Live 971594.0\n", "BBC TV 521974.0\n", "Bowery Poetry Club 676741.0\n", "Business Innovation Factory 304086.0\n", "Name: views, dtype: float64" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# use views as a proxy for \"quality of talk\"\n", "ted.groupby('event').views.mean().head()" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "event\n", "TEDxNorrkoping 6569493.0\n", "TEDxCreativeCoast 8444981.0\n", "TEDxBloomington 9484259.5\n", "TEDxHouston 16140250.5\n", "TEDxPuget Sound 34309432.0\n", "Name: views, dtype: float64" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# find the largest values, but we don't know how many talks are being averaged\n", "ted.groupby('event').views.mean().sort_values().tail()" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countmean
event
TEDxNorrkoping16569493.0
TEDxCreativeCoast18444981.0
TEDxBloomington29484259.5
TEDxHouston216140250.5
TEDxPuget Sound134309432.0
\n", "
" ], "text/plain": [ " count mean\n", "event \n", "TEDxNorrkoping 1 6569493.0\n", "TEDxCreativeCoast 1 8444981.0\n", "TEDxBloomington 2 9484259.5\n", "TEDxHouston 2 16140250.5\n", "TEDxPuget Sound 1 34309432.0" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# show the number of talks along with the mean (events with the highest means had only 1 or 2 talks)\n", "ted.groupby('event').views.agg(['count', 'mean']).sort_values('mean').tail()" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
countmeansum
event
TED2006453.274345e+06147345533
TED2015752.011017e+06150826305
TEDGlobal 2013662.584163e+06170554736
TED2014842.072874e+06174121423
TED2013772.302700e+06177307937
\n", "
" ], "text/plain": [ " count mean sum\n", "event \n", "TED2006 45 3.274345e+06 147345533\n", "TED2015 75 2.011017e+06 150826305\n", "TEDGlobal 2013 66 2.584163e+06 170554736\n", "TED2014 84 2.072874e+06 174121423\n", "TED2013 77 2.302700e+06 177307937" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calculate the total views per event\n", "ted.groupby('event').views.agg(['count', 'mean', 'sum']).sort_values('sum').tail()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lessons:\n", "\n", "1. Think creatively for how you can use the data you have to answer your question\n", "2. Watch out for small sample sizes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6. Unpack the ratings data" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 [{'id': 7, 'name': 'Funny', 'count': 19645}, {...\n", "1 [{'id': 7, 'name': 'Funny', 'count': 544}, {'i...\n", "2 [{'id': 7, 'name': 'Funny', 'count': 964}, {'i...\n", "3 [{'id': 3, 'name': 'Courageous', 'count': 760}...\n", "4 [{'id': 9, 'name': 'Ingenious', 'count': 3202}...\n", "Name: ratings, dtype: object" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# previously, users could tag talks on the TED website (funny, inspiring, confusing, etc.)\n", "ted.ratings.head()" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\"[{'id': 7, 'name': 'Funny', 'count': 19645}, {'id': 1, 'name': 'Beautiful', 'count': 4573}, {'id': 9, 'name': 'Ingenious', 'count': 6073}, {'id': 3, 'name': 'Courageous', 'count': 3253}, {'id': 11, 'name': 'Longwinded', 'count': 387}, {'id': 2, 'name': 'Confusing', 'count': 242}, {'id': 8, 'name': 'Informative', 'count': 7346}, {'id': 22, 'name': 'Fascinating', 'count': 10581}, {'id': 21, 'name': 'Unconvincing', 'count': 300}, {'id': 24, 'name': 'Persuasive', 'count': 10704}, {'id': 23, 'name': 'Jaw-dropping', 'count': 4439}, {'id': 25, 'name': 'OK', 'count': 1174}, {'id': 26, 'name': 'Obnoxious', 'count': 209}, {'id': 10, 'name': 'Inspiring', 'count': 24924}]\"" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# two ways to examine the ratings data for the first talk\n", "ted.loc[0, 'ratings']\n", "ted.ratings[0]" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "str" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# this is a string not a list\n", "type(ted.ratings[0])" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [], "source": [ "# convert this into something useful using Python's ast module (Abstract Syntax Tree)\n", "import ast" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3]" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# literal_eval() allows you to evaluate a string containing a Python literal or container\n", "ast.literal_eval('[1, 2, 3]')" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "list" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# if you have a string representation of something, you can retrieve what it actually represents\n", "type(ast.literal_eval('[1, 2, 3]'))" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'id': 7, 'name': 'Funny', 'count': 19645},\n", " {'id': 1, 'name': 'Beautiful', 'count': 4573},\n", " {'id': 9, 'name': 'Ingenious', 'count': 6073},\n", " {'id': 3, 'name': 'Courageous', 'count': 3253},\n", " {'id': 11, 'name': 'Longwinded', 'count': 387},\n", " {'id': 2, 'name': 'Confusing', 'count': 242},\n", " {'id': 8, 'name': 'Informative', 'count': 7346},\n", " {'id': 22, 'name': 'Fascinating', 'count': 10581},\n", " {'id': 21, 'name': 'Unconvincing', 'count': 300},\n", " {'id': 24, 'name': 'Persuasive', 'count': 10704},\n", " {'id': 23, 'name': 'Jaw-dropping', 'count': 4439},\n", " {'id': 25, 'name': 'OK', 'count': 1174},\n", " {'id': 26, 'name': 'Obnoxious', 'count': 209},\n", " {'id': 10, 'name': 'Inspiring', 'count': 24924}]" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# unpack the ratings data for the first talk\n", "ast.literal_eval(ted.ratings[0])" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "list" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# now we have a list (of dictionaries)\n", "type(ast.literal_eval(ted.ratings[0]))" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "# define a function to convert an element in the ratings Series from string to list\n", "def str_to_list(ratings_str):\n", " return ast.literal_eval(ratings_str)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'id': 7, 'name': 'Funny', 'count': 19645},\n", " {'id': 1, 'name': 'Beautiful', 'count': 4573},\n", " {'id': 9, 'name': 'Ingenious', 'count': 6073},\n", " {'id': 3, 'name': 'Courageous', 'count': 3253},\n", " {'id': 11, 'name': 'Longwinded', 'count': 387},\n", " {'id': 2, 'name': 'Confusing', 'count': 242},\n", " {'id': 8, 'name': 'Informative', 'count': 7346},\n", " {'id': 22, 'name': 'Fascinating', 'count': 10581},\n", " {'id': 21, 'name': 'Unconvincing', 'count': 300},\n", " {'id': 24, 'name': 'Persuasive', 'count': 10704},\n", " {'id': 23, 'name': 'Jaw-dropping', 'count': 4439},\n", " {'id': 25, 'name': 'OK', 'count': 1174},\n", " {'id': 26, 'name': 'Obnoxious', 'count': 209},\n", " {'id': 10, 'name': 'Inspiring', 'count': 24924}]" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# test the function\n", "str_to_list(ted.ratings[0])" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 [{'id': 7, 'name': 'Funny', 'count': 19645}, {...\n", "1 [{'id': 7, 'name': 'Funny', 'count': 544}, {'i...\n", "2 [{'id': 7, 'name': 'Funny', 'count': 964}, {'i...\n", "3 [{'id': 3, 'name': 'Courageous', 'count': 760}...\n", "4 [{'id': 9, 'name': 'Ingenious', 'count': 3202}...\n", "Name: ratings, dtype: object" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Series apply method applies a function to every element in a Series and returns a Series\n", "ted.ratings.apply(str_to_list).head()" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 [{'id': 7, 'name': 'Funny', 'count': 19645}, {...\n", "1 [{'id': 7, 'name': 'Funny', 'count': 544}, {'i...\n", "2 [{'id': 7, 'name': 'Funny', 'count': 964}, {'i...\n", "3 [{'id': 3, 'name': 'Courageous', 'count': 760}...\n", "4 [{'id': 9, 'name': 'Ingenious', 'count': 3202}...\n", "Name: ratings, dtype: object" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# lambda is a shorter alternative\n", "ted.ratings.apply(lambda x: ast.literal_eval(x)).head()" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 [{'id': 7, 'name': 'Funny', 'count': 19645}, {...\n", "1 [{'id': 7, 'name': 'Funny', 'count': 544}, {'i...\n", "2 [{'id': 7, 'name': 'Funny', 'count': 964}, {'i...\n", "3 [{'id': 3, 'name': 'Courageous', 'count': 760}...\n", "4 [{'id': 9, 'name': 'Ingenious', 'count': 3202}...\n", "Name: ratings, dtype: object" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# an even shorter alternative is to apply the function directly (without lambda)\n", "ted.ratings.apply(ast.literal_eval).head()" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "ted['ratings_list'] = ted.ratings.apply(lambda x: ast.literal_eval(x))" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'id': 7, 'name': 'Funny', 'count': 19645},\n", " {'id': 1, 'name': 'Beautiful', 'count': 4573},\n", " {'id': 9, 'name': 'Ingenious', 'count': 6073},\n", " {'id': 3, 'name': 'Courageous', 'count': 3253},\n", " {'id': 11, 'name': 'Longwinded', 'count': 387},\n", " {'id': 2, 'name': 'Confusing', 'count': 242},\n", " {'id': 8, 'name': 'Informative', 'count': 7346},\n", " {'id': 22, 'name': 'Fascinating', 'count': 10581},\n", " {'id': 21, 'name': 'Unconvincing', 'count': 300},\n", " {'id': 24, 'name': 'Persuasive', 'count': 10704},\n", " {'id': 23, 'name': 'Jaw-dropping', 'count': 4439},\n", " {'id': 25, 'name': 'OK', 'count': 1174},\n", " {'id': 26, 'name': 'Obnoxious', 'count': 209},\n", " {'id': 10, 'name': 'Inspiring', 'count': 24924}]" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# check that the new Series looks as expected\n", "ted.ratings_list[0]" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "list" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# each element in the Series is a list\n", "type(ted.ratings_list[0])" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "dtype('O')" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# data type of the new Series is object\n", "ted.ratings_list.dtype" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "comments int64\n", "description object\n", "duration int64\n", "event object\n", "film_date int64\n", "languages int64\n", "main_speaker object\n", "name object\n", "num_speaker int64\n", "published_date int64\n", "ratings object\n", "related_talks object\n", "speaker_occupation object\n", "tags object\n", "title object\n", "url object\n", "views int64\n", "comments_per_view float64\n", "views_per_comment float64\n", "film_datetime datetime64[ns]\n", "ratings_list object\n", "dtype: object" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# object is not just for strings\n", "ted.dtypes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lessons:\n", "\n", "1. Pay attention to data types in pandas\n", "2. Use apply any time it is necessary" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 7. Count the total number of ratings received by each talk\n", "\n", "Bonus exercises:\n", "\n", "- for each talk, calculate the percentage of ratings that were negative\n", "- for each talk, calculate the average number of ratings it received per day since it was published" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'id': 7, 'name': 'Funny', 'count': 19645},\n", " {'id': 1, 'name': 'Beautiful', 'count': 4573},\n", " {'id': 9, 'name': 'Ingenious', 'count': 6073},\n", " {'id': 3, 'name': 'Courageous', 'count': 3253},\n", " {'id': 11, 'name': 'Longwinded', 'count': 387},\n", " {'id': 2, 'name': 'Confusing', 'count': 242},\n", " {'id': 8, 'name': 'Informative', 'count': 7346},\n", " {'id': 22, 'name': 'Fascinating', 'count': 10581},\n", " {'id': 21, 'name': 'Unconvincing', 'count': 300},\n", " {'id': 24, 'name': 'Persuasive', 'count': 10704},\n", " {'id': 23, 'name': 'Jaw-dropping', 'count': 4439},\n", " {'id': 25, 'name': 'OK', 'count': 1174},\n", " {'id': 26, 'name': 'Obnoxious', 'count': 209},\n", " {'id': 10, 'name': 'Inspiring', 'count': 24924}]" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# expected result (for each talk) is sum of count\n", "ted.ratings_list[0]" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [], "source": [ "# start by building a simple function\n", "def get_num_ratings(list_of_dicts):\n", " return list_of_dicts[0]" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'id': 7, 'name': 'Funny', 'count': 19645}" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# pass it a list, and it returns the first element in the list, which is a dictionary\n", "get_num_ratings(ted.ratings_list[0])" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "# modify the function to return the vote count\n", "def get_num_ratings(list_of_dicts):\n", " return list_of_dicts[0]['count']" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "19645" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# pass it a list, and it returns a value from the first dictionary in the list\n", "get_num_ratings(ted.ratings_list[0])" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "# modify the function to get the sum of count\n", "def get_num_ratings(list_of_dicts):\n", " num = 0\n", " for d in list_of_dicts:\n", " num = num + d['count']\n", " return num" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "93850" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# looks about right\n", "get_num_ratings(ted.ratings_list[0])" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'id': 7, 'name': 'Funny', 'count': 544},\n", " {'id': 3, 'name': 'Courageous', 'count': 139},\n", " {'id': 2, 'name': 'Confusing', 'count': 62},\n", " {'id': 1, 'name': 'Beautiful', 'count': 58},\n", " {'id': 21, 'name': 'Unconvincing', 'count': 258},\n", " {'id': 11, 'name': 'Longwinded', 'count': 113},\n", " {'id': 8, 'name': 'Informative', 'count': 443},\n", " {'id': 10, 'name': 'Inspiring', 'count': 413},\n", " {'id': 22, 'name': 'Fascinating', 'count': 132},\n", " {'id': 9, 'name': 'Ingenious', 'count': 56},\n", " {'id': 24, 'name': 'Persuasive', 'count': 268},\n", " {'id': 23, 'name': 'Jaw-dropping', 'count': 116},\n", " {'id': 26, 'name': 'Obnoxious', 'count': 131},\n", " {'id': 25, 'name': 'OK', 'count': 203}]" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# check with another record\n", "ted.ratings_list[1]" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2936" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# looks about right\n", "get_num_ratings(ted.ratings_list[1])" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 93850\n", "1 2936\n", "2 2824\n", "3 3728\n", "4 25620\n", "Name: ratings_list, dtype: int64" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# apply it to every element in the Series\n", "ted.ratings_list.apply(get_num_ratings).head()" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "93850" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# another alternative is to use a generator expression\n", "sum((d['count'] for d in ted.ratings_list[0]))" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 93850\n", "1 2936\n", "2 2824\n", "3 3728\n", "4 25620\n", "Name: ratings_list, dtype: int64" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# use lambda to apply this method\n", "ted.ratings_list.apply(lambda x: sum((d['count'] for d in x))).head()" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "93850" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# another alternative is to use pd.DataFrame()\n", "pd.DataFrame(ted.ratings_list[0])['count'].sum()" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 93850\n", "1 2936\n", "2 2824\n", "3 3728\n", "4 25620\n", "Name: ratings_list, dtype: int64" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# use lambda to apply this method\n", "ted.ratings_list.apply(lambda x: pd.DataFrame(x)['count'].sum()).head()" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [], "source": [ "ted['num_ratings'] = ted.ratings_list.apply(get_num_ratings)" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "count 2550.000000\n", "mean 2436.408235\n", "std 4226.795631\n", "min 68.000000\n", "25% 870.750000\n", "50% 1452.500000\n", "75% 2506.750000\n", "max 93850.000000\n", "Name: num_ratings, dtype: float64" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# do one more check\n", "ted.num_ratings.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lessons:\n", "\n", "1. Write your code in small chunks, and check your work as you go\n", "2. Lambda is best for simple functions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 8. Which occupations deliver the funniest TED talks on average?\n", "\n", "Bonus exercises:\n", "\n", "- for each talk, calculate the most frequent rating\n", "- for each talk, clean the occupation data so that there's only one occupation per talk" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Step 1: Count the number of funny ratings" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 [{'id': 7, 'name': 'Funny', 'count': 19645}, {...\n", "1 [{'id': 7, 'name': 'Funny', 'count': 544}, {'i...\n", "2 [{'id': 7, 'name': 'Funny', 'count': 964}, {'i...\n", "3 [{'id': 3, 'name': 'Courageous', 'count': 760}...\n", "4 [{'id': 9, 'name': 'Ingenious', 'count': 3202}...\n", "Name: ratings_list, dtype: object" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# \"Funny\" is not always the first dictionary in the list\n", "ted.ratings_list.head()" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True 2550\n", "Name: ratings, dtype: int64" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# check ratings (not ratings_list) to see if \"Funny\" is always a rating type\n", "ted.ratings.str.contains('Funny').value_counts()" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [], "source": [ "# write a custom function\n", "def get_funny_ratings(list_of_dicts):\n", " for d in list_of_dicts:\n", " if d['name'] == 'Funny':\n", " return d['count']" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[{'id': 3, 'name': 'Courageous', 'count': 760},\n", " {'id': 1, 'name': 'Beautiful', 'count': 291},\n", " {'id': 2, 'name': 'Confusing', 'count': 32},\n", " {'id': 7, 'name': 'Funny', 'count': 59},\n", " {'id': 9, 'name': 'Ingenious', 'count': 105},\n", " {'id': 21, 'name': 'Unconvincing', 'count': 36},\n", " {'id': 11, 'name': 'Longwinded', 'count': 53},\n", " {'id': 8, 'name': 'Informative', 'count': 380},\n", " {'id': 10, 'name': 'Inspiring', 'count': 1070},\n", " {'id': 22, 'name': 'Fascinating', 'count': 132},\n", " {'id': 24, 'name': 'Persuasive', 'count': 460},\n", " {'id': 23, 'name': 'Jaw-dropping', 'count': 230},\n", " {'id': 26, 'name': 'Obnoxious', 'count': 35},\n", " {'id': 25, 'name': 'OK', 'count': 85}]" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# examine a record in which \"Funny\" is not the first dictionary\n", "ted.ratings_list[3]" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "59" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# check that the function works\n", "get_funny_ratings(ted.ratings_list[3])" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 19645\n", "1 544\n", "2 964\n", "3 59\n", "4 1390\n", "Name: funny_ratings, dtype: int64" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# apply it to every element in the Series\n", "ted['funny_ratings'] = ted.ratings_list.apply(get_funny_ratings)\n", "ted.funny_ratings.head()" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# check for missing values\n", "ted.funny_ratings.isna().sum()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Step 2: Calculate the percentage of ratings that are funny" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [], "source": [ "ted['funny_rate'] = ted.funny_ratings / ted.num_ratings" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1849 Science humorist\n", "337 Comedian\n", "124 Performance poet, multimedia artist\n", "315 Expert\n", "1168 Social energy entrepreneur\n", "1468 Ornithologist\n", "595 Comedian, voice artist\n", "1534 Cartoon editor\n", "97 Satirist\n", "2297 Actor, writer\n", "568 Comedian\n", "675 Data scientist\n", "21 Humorist, web artist\n", "194 Jugglers\n", "2273 Comedian and writer\n", "2114 Comedian and writer\n", "173 Investor\n", "747 Comedian\n", "1398 Comedian\n", "685 Actor, comedian, playwright\n", "Name: speaker_occupation, dtype: object" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# \"gut check\" that this calculation makes sense by examining the occupations of the funniest talks\n", "ted.sort_values('funny_rate').speaker_occupation.tail(20)" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2549 Game designer\n", "1612 Biologist\n", "612 Sculptor\n", "998 Penguin expert\n", "593 Engineer\n", "284 Space activist\n", "1041 Biomedical engineer\n", "1618 Spinal cord researcher\n", "2132 Computational geneticist\n", "442 Sculptor\n", "426 Author, thinker\n", "458 Educator\n", "2437 Environmental engineer\n", "1491 Photojournalist\n", "1893 Forensic anthropologist\n", "783 Marine biologist\n", "195 Kenyan MP\n", "772 HIV/AIDS fighter\n", "788 Building activist\n", "936 Neuroengineer\n", "Name: speaker_occupation, dtype: object" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# examine the occupations of the least funny talks\n", "ted.sort_values('funny_rate').speaker_occupation.head(20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Step 3: Analyze the funny rate by occupation" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "speaker_occupation\n", "Comedian 0.512457\n", "Actor, writer 0.515152\n", "Actor, comedian, playwright 0.558107\n", "Jugglers 0.566828\n", "Comedian and writer 0.602085\n", "Name: funny_rate, dtype: float64" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# calculate the mean funny rate for each occupation\n", "ted.groupby('speaker_occupation').funny_rate.mean().sort_values().tail()" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "count 2544\n", "unique 1458\n", "top Writer\n", "freq 45\n", "Name: speaker_occupation, dtype: object" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# however, most of the occupations have a sample size of 1\n", "ted.speaker_occupation.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Step 4: Focus on occupations that are well-represented in the data" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Writer 45\n", "Artist 34\n", "Designer 34\n", "Journalist 33\n", "Entrepreneur 31\n", "Architect 30\n", "Inventor 27\n", "Psychologist 26\n", "Photographer 25\n", "Filmmaker 21\n", "Author 20\n", "Economist 20\n", "Neuroscientist 20\n", "Educator 20\n", "Roboticist 16\n", "Philosopher 16\n", "Biologist 15\n", "Physicist 14\n", "Musician 11\n", "Marine biologist 11\n", "Technologist 10\n", "Activist 10\n", "Global health expert; data visionary 10\n", "Historian 9\n", "Singer/songwriter 9\n", "Oceanographer 9\n", "Behavioral economist 9\n", "Poet 9\n", "Astronomer 9\n", "Graphic designer 9\n", " ..\n", "Anatomical artist 1\n", "Literary scholar 1\n", "Social entrepreneur, lawyer 1\n", "Physician, bioengineer and entrepreneur 1\n", "medical inventor 1\n", "Mental health advocate 1\n", "Public sector researcher 1\n", "Speleologist 1\n", "Disaster relief expert 1\n", "Artist and curator 1\n", "Finance journalist 1\n", "Wildlife conservationist 1\n", "Sex worker and activist 1\n", "Connector 1\n", "Sociologist, human rights activist 1\n", "Author, producer 1\n", "Painter 1\n", "Policy expert 1\n", "Environmental economist 1\n", "Sound artist, composer 1\n", "Senator 1\n", "High school principal 1\n", "Poet of code 1\n", "Healthcare revolutionary 1\n", "Circular economy advocate 1\n", "Caregiver 1\n", "Transportation geek 1\n", "Music icon 1\n", "Surprisologist 1\n", "Psychiatrist and writer 1\n", "Name: speaker_occupation, Length: 1458, dtype: int64" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# count how many times each occupation appears\n", "ted.speaker_occupation.value_counts()" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "pandas.core.series.Series" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# value_counts() outputs a pandas Series, thus we can use pandas to manipulate the output\n", "occupation_counts = ted.speaker_occupation.value_counts()\n", "type(occupation_counts)" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Writer 45\n", "Artist 34\n", "Designer 34\n", "Journalist 33\n", "Entrepreneur 31\n", "Architect 30\n", "Inventor 27\n", "Psychologist 26\n", "Photographer 25\n", "Filmmaker 21\n", "Author 20\n", "Economist 20\n", "Neuroscientist 20\n", "Educator 20\n", "Roboticist 16\n", "Philosopher 16\n", "Biologist 15\n", "Physicist 14\n", "Musician 11\n", "Marine biologist 11\n", "Technologist 10\n", "Activist 10\n", "Global health expert; data visionary 10\n", "Historian 9\n", "Singer/songwriter 9\n", "Oceanographer 9\n", "Behavioral economist 9\n", "Poet 9\n", "Astronomer 9\n", "Graphic designer 9\n", " ..\n", "Legal activist 6\n", "Photojournalist 6\n", "Evolutionary biologist 6\n", "Singer-songwriter 6\n", "Performance poet, multimedia artist 6\n", "Climate advocate 6\n", "Techno-illusionist 6\n", "Social entrepreneur 6\n", "Comedian 6\n", "Reporter 6\n", "Writer, activist 6\n", "Investor and advocate for moral leadership 5\n", "Surgeon 5\n", "Paleontologist 5\n", "Physician 5\n", "Tech visionary 5\n", "Chef 5\n", "Science writer 5\n", "Game designer 5\n", "Cartoonist 5\n", "Producer 5\n", "Violinist 5\n", "Researcher 5\n", "Social Media Theorist 5\n", "Environmentalist, futurist 5\n", "Data scientist 5\n", "Musician, activist 5\n", "Sculptor 5\n", "Chemist 5\n", "Sound consultant 5\n", "Name: speaker_occupation, Length: 68, dtype: int64" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# show occupations which appear at least 5 times\n", "occupation_counts[occupation_counts >= 5]" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['Writer', 'Artist', 'Designer', 'Journalist', 'Entrepreneur',\n", " 'Architect', 'Inventor', 'Psychologist', 'Photographer', 'Filmmaker',\n", " 'Author', 'Economist', 'Neuroscientist', 'Educator', 'Roboticist',\n", " 'Philosopher', 'Biologist', 'Physicist', 'Musician', 'Marine biologist',\n", " 'Technologist', 'Activist', 'Global health expert; data visionary',\n", " 'Historian', 'Singer/songwriter', 'Oceanographer',\n", " 'Behavioral economist', 'Poet', 'Astronomer', 'Graphic designer',\n", " 'Philanthropist', 'Novelist', 'Social psychologist', 'Engineer',\n", " 'Computer scientist', 'Futurist', 'Astrophysicist', 'Mathematician',\n", " 'Legal activist', 'Photojournalist', 'Evolutionary biologist',\n", " 'Singer-songwriter', 'Performance poet, multimedia artist',\n", " 'Climate advocate', 'Techno-illusionist', 'Social entrepreneur',\n", " 'Comedian', 'Reporter', 'Writer, activist',\n", " 'Investor and advocate for moral leadership', 'Surgeon',\n", " 'Paleontologist', 'Physician', 'Tech visionary', 'Chef',\n", " 'Science writer', 'Game designer', 'Cartoonist', 'Producer',\n", " 'Violinist', 'Researcher', 'Social Media Theorist',\n", " 'Environmentalist, futurist', 'Data scientist', 'Musician, activist',\n", " 'Sculptor', 'Chemist', 'Sound consultant'],\n", " dtype='object')" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# save the index of this Series\n", "top_occupations = occupation_counts[occupation_counts >= 5].index\n", "top_occupations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Step 5: Re-analyze the funny rate by occupation (for top occupations only)" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(786, 24)" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# filter DataFrame to include only those occupations\n", "ted_top_occupations = ted[ted.speaker_occupation.isin(top_occupations)]\n", "ted_top_occupations.shape" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "speaker_occupation\n", "Surgeon 0.002465\n", "Physician 0.004515\n", "Photojournalist 0.004908\n", "Investor and advocate for moral leadership 0.005198\n", "Photographer 0.007152\n", "Environmentalist, futurist 0.007317\n", "Violinist 0.009534\n", "Singer-songwriter 0.010597\n", "Chemist 0.010970\n", "Philanthropist 0.012522\n", "Activist 0.012539\n", "Astrophysicist 0.013147\n", "Oceanographer 0.014596\n", "Paleontologist 0.015780\n", "Social psychologist 0.015887\n", "Tech visionary 0.016654\n", "Sculptor 0.016960\n", "Social Media Theorist 0.017450\n", "Social entrepreneur 0.017921\n", "Inventor 0.021801\n", "Sound consultant 0.022011\n", "Legal activist 0.022303\n", "Historian 0.023215\n", "Musician, activist 0.023395\n", "Economist 0.025488\n", "Writer, activist 0.026665\n", "Journalist 0.027997\n", "Computer scientist 0.029070\n", "Architect 0.030579\n", "Engineer 0.031711\n", " ... \n", "Roboticist 0.042777\n", "Astronomer 0.044581\n", "Psychologist 0.044984\n", "Musician 0.045336\n", "Physicist 0.046302\n", "Filmmaker 0.048603\n", "Futurist 0.050460\n", "Behavioral economist 0.050460\n", "Technologist 0.050965\n", "Chef 0.054207\n", "Science writer 0.055993\n", "Designer 0.059287\n", "Writer 0.060745\n", "Game designer 0.062317\n", "Reporter 0.066250\n", "Evolutionary biologist 0.069157\n", "Novelist 0.070876\n", "Entrepreneur 0.073295\n", "Author 0.075508\n", "Artist 0.078939\n", "Global health expert; data visionary 0.090306\n", "Poet 0.107398\n", "Graphic designer 0.135718\n", "Techno-illusionist 0.152171\n", "Cartoonist 0.162120\n", "Data scientist 0.184076\n", "Producer 0.202531\n", "Singer/songwriter 0.252205\n", "Performance poet, multimedia artist 0.306468\n", "Comedian 0.512457\n", "Name: funny_rate, Length: 68, dtype: float64" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# redo the previous groupby\n", "ted_top_occupations.groupby('speaker_occupation').funny_rate.mean().sort_values()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lessons:\n", "\n", "1. Check your assumptions about your data\n", "2. Check whether your results are reasonable\n", "3. Take advantage of the fact that pandas operations often output a DataFrame or a Series\n", "4. Watch out for small sample sizes\n", "5. Consider the impact of missing data\n", "6. Data scientists are hilarious" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }