{ "metadata": { "name": "trendiness.ipynb" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### U.S. Baby names iPython notebooks #\n", "\n", " * By David Taylor, [www.prooffreader.com](http://www.prooffreader.com)\n", " * using data from United States Social Security Administration\n", " * I am making this public in case it gives a head start to those who want to explore this dataset, so they don't have to download and format the data and the python objects used to do preliminary analysis. Please let me know if you find this helpful!\n", " * I'm relatively new to Python; often my code is non-pythonic and I tend to use inefficient list iterations that are easy for me to code instead of comprehensions or Boolean indexing that would result in faster processing. Also, everything right now is in IPython notebooks instead of .py with classes, double underscores, etc., because it's more convenient for my workflow in data spelunking. Your mileage may vary, and constructive criticism is very welcome." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Determine \"trendy\" names #\n", "\n", "* There are several ways one could find \"trendy\" names, i.e. ones that rise quickly from obscurity to popularity, then fade quickly. One could look at percentage changes, but others have already done this, and one would have to use a second algorithm to distinguish truly popular names \n", "* This method is borrowed from peak analysis in chemistry chromatography; it weighs the results in favour of the most popular names with the sharpest peaks. The names with the lowest ratio of maximum popularity (normalized frequency, i.e. peak height) to peak width a a certain percentage (e.g. 10%) of peak height are the most \"spiky\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "-----" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Load dataframes; run this before every subsequent section" ] }, { "cell_type": "code", "collapsed": false, "input": [ "save_path = \"user_trendy\" # files created by this notebook will be saved in this directory\n", "import time\n", "\n", "import os\n", "if not os.path.isdir(save_path): # creates path if it does not exist\n", " os.makedirs(save_path)\n", "\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%run download_and_process.py\n", "\n", "last_year = years.year.max()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Data already downloaded.\n", "Data already extracted.\n", "Reading from pickle.\n", "Tail of dataframe 'yob':" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", " name sex births year pct ranked\n", "1792086 Zyhier M 5 2013 0.000267 12995\n", "1792087 Zylar M 5 2013 0.000267 12995\n", "1792088 Zymari M 5 2013 0.000267 12995\n", "1792089 Zymeer M 5 2013 0.000267 12995\n", "1792090 Zyree M 5 2013 0.000267 12995\n", "\n", "Tail of dataframe 'names':\n", " name sex year_count year_min year_max pct_sum pct_max\n", "102685 Gross M 1 1925 1925 0.000538 0.000538\n", "102686 Elik M 1 2012 2012 0.000318 0.000318\n", "102687 Patrickjoseph M 1 1998 1998 0.000262 0.000262\n", "102688 Southern M 1 1923 1923 0.000547 0.000547\n", "102689 Jeon M 1 1999 1999 0.000261 0.000261\n", "\n", "Tail of dataframe 'years':\n", " year births_f births_m births_t new_names unique_names\n", "128 2008 1886765 2035811 3922576 2046 32483\n", "129 2009 1832276 1978582 3810858 1789 32210\n", "130 2010 1771846 1912915 3684761 1635 31593\n", "131 2011 1752198 1891800 3643998 1539 31412\n", "132 2012 1751866 1886972 3638838 1531 31212\n" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Find largest ratios of peak height to width at 10 percent height for 1000 most popular names of each sex ###\n", "\n", "Low-popularity names are not included because their low signal-to-noise ratio would create false positives" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# create dataframes of most popular names\n", "\n", "top_cutoff = 1000 #consider only this number of most popular names of each sex;\n", " #it saves calculation time and does not change final result\n", "\n", "peak_height_cutoff = 0.1 # ten percent of peak height\n", "\n", "###\n", "\n", "start = time.time()\n", "\n", "dfnamesm = names[names.sex == 'M']\n", "dfnamesf = names[names.sex == 'F']\n", "dfnamesm = dfnamesm.sort('pct_sum', ascending=False)\n", "dfnamesf = dfnamesf.sort('pct_sum', ascending=False)\n", "dfnamesm = dfnamesm[:top_cutoff]\n", "dfnamesf = dfnamesf[:top_cutoff]\n", "\n", "# create dataframe of peak analyses\n", "\n", "dfresult = pd.DataFrame()\n", "\n", "print \"Countdown F, then M to zero: \",\n", "\n", "sx = 'F'\n", "print sx,\n", "total = len(dfnamesf)\n", "for nm in list(dfnamesf.name):\n", " total -= 1\n", " if total % 100 == 0: print total,\n", " df = yob[(yob.name == nm) & (yob.sex == sx)]\n", " pct_sum = names[(names.name == nm) & (names.sex == sx)].pct_sum.iloc[0]\n", " year_count = names[(names.name == nm) & (names.sex == sx)].year_count.iloc[0]\n", " year_min = names[(names.name == nm) & (names.sex == sx)].year_min.iloc[0]\n", " year_max = names[(names.name == nm) & (names.sex == sx)].year_max.iloc[0]\n", " pct_max = df.pct.max()\n", " df = df.sort('year')\n", " yrcutstart = 0\n", " yrcutend= 0\n", " pctcut_sum = 0\n", " \n", " for idx, row in df.iterrows():\n", " currpct =df.pct[idx]\n", " curryr = df.year[idx]\n", " if currpct >= peak_height_cutoff*pct_max:\n", " pctcut_sum += currpct\n", " if yrcutstart == 0:\n", " yrcutstart = curryr\n", " yrcutend = curryr\n", " \n", " tail_front = yrcutstart - year_min\n", " tail_end = year_max - yrcutend\n", " \n", " yrcutspan = yrcutend-yrcutstart\n", " yrcutratio = 1.0*yrcutspan/year_count\n", " \n", " spikiness = pct_max / yrcutspan \n", " \n", " dfresult = dfresult.append(pd.DataFrame({'name':[nm],\n", " 'sex':[sx],\n", " 'year_count':[year_count],\n", " 'year_min':[year_min],\n", " 'year_max':[year_max],\n", " 'pct_max':[pct_max],\n", " 'pct_sum':[pct_sum],\n", " 'yrcutstart':[yrcutstart],\n", " 'yrcutend':[yrcutend],\n", " 'yrcutspan':[yrcutspan],\n", " 'yrcutratio':[yrcutratio],\n", " 'pctcut_sum':[pctcut_sum],\n", " 'tail_front':[tail_front],\n", " 'tail_end':[tail_end],\n", " 'spikiness':[spikiness] }))\n", "\n", "sx = 'M'\n", "print sx,\n", "total = len(dfnamesm)\n", "for nm in list(dfnamesm.name):\n", " total -= 1\n", " if total % 100 == 0: print total,\n", " df = yob[(yob.name == nm) & (yob.sex == sx)]\n", " pct_sum = names[(names.name == nm) & (names.sex == sx)].pct_sum.iloc[0]\n", " year_count = names[(names.name == nm) & (names.sex == sx)].year_count.iloc[0]\n", " year_min = names[(names.name == nm) & (names.sex == sx)].year_min.iloc[0]\n", " year_max = names[(names.name == nm) & (names.sex == sx)].year_max.iloc[0]\n", " pct_max = df.pct.max()\n", " df = df.sort('year')\n", " yrcutstart = 0\n", " yrcutend= 0\n", " pctcut_sum = 0\n", " \n", " for idx, row in df.iterrows():\n", " currpct =df.pct[idx]\n", " curryr = df.year[idx]\n", " if currpct >= peak_height_cutoff*pct_max:\n", " pctcut_sum += currpct\n", " if yrcutstart == 0:\n", " yrcutstart = curryr\n", " yrcutend = curryr\n", " \n", " tail_front = yrcutstart - year_min\n", " tail_end = year_max - yrcutend\n", " \n", " yrcutspan = yrcutend-yrcutstart\n", " yrcutratio = 1.0*yrcutspan/year_count\n", " \n", " spikiness = pct_max / yrcutspan \n", " \n", " dfresult = dfresult.append(pd.DataFrame({'name':[nm],\n", " 'sex':[sx],\n", " 'year_count':[year_count],\n", " 'year_min':[year_min],\n", " 'year_max':[year_max],\n", " 'pct_max':[pct_max],\n", " 'pct_sum':[pct_sum],\n", " 'yrcutstart':[yrcutstart],\n", " 'yrcutend':[yrcutend],\n", " 'yrcutspan':[yrcutspan],\n", " 'yrcutratio':[yrcutratio],\n", " 'pctcut_sum':[pctcut_sum],\n", " 'tail_front':[tail_front],\n", " 'tail_end':[tail_end],\n", " 'spikiness':[spikiness] }))\n", "\n", "picklepath = save_path + 'trendiness_'+ str(int(100*peak_height_cutoff))+'.pickle'\n", "csvpath = save_path + 'trendiness_'+ str(int(100*peak_height_cutoff))+'.csv'\n", "\n", "dfresult = dfresult[(dfresult.tail_end != 0 ) & (dfresult.tail_front != 0)] # remove names that have no ascent or descent after peak\n", "df.reset_index(drop=True, inplace=True)\n", "dfresult.to_pickle(picklepath)\n", "dfresult.to_csv(csvpath)\n", "\n", "print '\\nFiles saved.'" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Countdown F, then M to zero: F " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "900 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "800 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "700 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "600 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "500 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "400 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "300 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "200 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "100 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "0 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "M " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "900 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "800 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "700 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "600 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "500 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "400 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "300 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "200 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "100 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "0 " ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Files saved.\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "print dfresult[dfresult.sex == 'F'].sort('spikiness', ascending=False).reset_index().head(10)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " index name pct_max pct_sum pctcut_sum sex spikiness tail_end \\\n", "0 0 Linda 5.666385 86.481786 78.126372 F 0.182787 44 \n", "1 0 Brittany 2.050094 19.855254 18.405681 F 0.120594 13 \n", "2 0 Debra 2.585195 29.131212 26.781168 F 0.117509 41 \n", "3 0 Shirley 4.040080 53.493663 46.610664 F 0.112224 56 \n", "4 0 Ashley 3.155460 46.890487 44.550597 F 0.105182 3 \n", "5 0 Jennifer 4.300706 88.233240 82.486767 F 0.104895 11 \n", "6 0 Deborah 2.816031 40.361956 36.586290 F 0.104297 39 \n", "7 0 Lisa 3.414439 55.271708 52.217140 F 0.100425 24 \n", "8 0 Jessica 3.221578 60.395536 57.361646 F 0.092045 7 \n", "9 0 Betty 3.396793 84.919816 76.302278 F 0.069322 54 \n", "\n", " tail_front year_count year_max year_min yrcutend yrcutratio \\\n", "0 58 134 2013 1880 1969 0.231343 \n", "1 20 51 2013 1963 2000 0.333333 \n", "2 36 99 2013 1914 1972 0.222222 \n", "3 41 133 2013 1880 1957 0.270677 \n", "4 63 75 2013 1917 2010 0.400000 \n", "5 45 96 2013 1916 2002 0.427083 \n", "6 67 134 2013 1880 1974 0.201493 \n", "7 69 110 2013 1886 1989 0.309091 \n", "8 91 134 2013 1880 2006 0.261194 \n", "9 30 134 2013 1880 1959 0.365672 \n", "\n", " yrcutspan yrcutstart \n", "0 31 1938 \n", "1 17 1983 \n", "2 22 1950 \n", "3 36 1921 \n", "4 30 1980 \n", "5 41 1961 \n", "6 27 1947 \n", "7 34 1955 \n", "8 35 1971 \n", "9 49 1910 \n" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "print dfresult[dfresult.sex == 'M'].sort('spikiness', ascending=False).reset_index().head(10)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " index name pct_max pct_sum pctcut_sum sex spikiness tail_end \\\n", "0 0 Dewey 0.908765 5.132570 2.104882 M 0.151461 110 \n", "1 0 Jason 3.482095 58.020317 54.847647 M 0.084929 4 \n", "2 0 Grover 0.712424 6.548641 3.900972 M 0.059369 118 \n", "3 0 Mark 2.754216 73.705981 65.994464 M 0.051966 14 \n", "4 0 Woodrow 0.455177 4.001271 2.711625 M 0.041380 91 \n", "5 0 Gary 2.026460 51.723374 48.724457 M 0.038970 28 \n", "6 0 Brian 2.290509 63.510556 61.009071 M 0.038822 4 \n", "7 0 Larry 1.909608 49.535771 44.995968 M 0.037443 31 \n", "8 0 Scott 1.748081 42.778283 39.141361 M 0.037193 16 \n", "9 0 Donald 2.945867 106.675879 100.563276 M 0.036369 30 \n", "\n", " tail_front year_count year_max year_min yrcutend yrcutratio \\\n", "0 10 127 2013 1887 1903 0.047244 \n", "1 88 134 2013 1880 2009 0.305970 \n", "2 3 134 2013 1880 1895 0.089552 \n", "3 66 134 2013 1880 1999 0.395522 \n", "4 11 110 2013 1900 1922 0.100000 \n", "5 53 132 2013 1880 1985 0.393939 \n", "6 50 105 2013 1900 2009 0.561905 \n", "7 51 134 2013 1880 1982 0.380597 \n", "8 70 134 2013 1880 1997 0.350746 \n", "9 22 134 2013 1880 1983 0.604478 \n", "\n", " yrcutspan yrcutstart \n", "0 6 1897 \n", "1 41 1968 \n", "2 12 1883 \n", "3 53 1946 \n", "4 11 1911 \n", "5 52 1933 \n", "6 59 1950 \n", "7 51 1931 \n", "8 47 1950 \n", "9 81 1902 \n" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "yob[(yob.name=='Linda')&(yob.sex=='F')].sort('year')['pct'].plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "yob[(yob.name=='Dewey')&(yob.sex=='M')].sort('year')['pct'].plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }