Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
US baby names
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "notes"
}
},
"source": [
"# US Baby Names 1880-2010\n",
"\n",
"United States Social Security Administration(SSA, 미국사회안전부)에서 1880년부터 지금까지의 출생자의 이름 빈도 데이터를 제공하고 있다. \n",
"\n",
"데이터를 제공하는 URL은 http://www.ssa.gov/oact/babynames/limits.html 이다. names.zip 파일을 내려받아 압축을 풀면 다음과 같은 파일 목록을 볼 수 있다.\n",
"\n",
"```\n",
"$ ls\n",
"NationalReadMe.pdf yob1912.txt yob1945.txt yob1978.txt\n",
"yob1880.txt yob1913.txt yob1946.txt yob1979.txt\n",
"yob1881.txt yob1914.txt yob1947.txt yob1980.txt\n",
"yob1882.txt yob1915.txt yob1948.txt yob1981.txt\n",
"yob1883.txt yob1916.txt yob1949.txt yob1982.txt\n",
"yob1884.txt yob1917.txt yob1950.txt yob1983.txt\n",
"yob1885.txt yob1918.txt yob1951.txt yob1984.txt\n",
"yob1886.txt yob1919.txt yob1952.txt yob1985.txt\n",
"yob1887.txt yob1920.txt yob1953.txt yob1986.txt\n",
"yob1888.txt yob1921.txt yob1954.txt yob1987.txt\n",
"yob1889.txt yob1922.txt yob1955.txt yob1988.txt\n",
"yob1890.txt yob1923.txt yob1956.txt yob1989.txt\n",
"yob1891.txt yob1924.txt yob1957.txt yob1990.txt\n",
"yob1892.txt yob1925.txt yob1958.txt yob1991.txt\n",
"yob1893.txt yob1926.txt yob1959.txt yob1992.txt\n",
"yob1894.txt yob1927.txt yob1960.txt yob1993.txt\n",
"yob1895.txt yob1928.txt yob1961.txt yob1994.txt\n",
"yob1896.txt yob1929.txt yob1962.txt yob1995.txt\n",
"yob1897.txt yob1930.txt yob1963.txt yob1996.txt\n",
"yob1898.txt yob1931.txt yob1964.txt yob1997.txt\n",
"yob1899.txt yob1932.txt yob1965.txt yob1998.txt\n",
"yob1900.txt yob1933.txt yob1966.txt yob1999.txt\n",
"yob1901.txt yob1934.txt yob1967.txt yob2000.txt\n",
"yob1902.txt yob1935.txt yob1968.txt yob2001.txt\n",
"yob1903.txt yob1936.txt yob1969.txt yob2002.txt\n",
"yob1904.txt yob1937.txt yob1970.txt yob2003.txt\n",
"yob1905.txt yob1938.txt yob1971.txt yob2004.txt\n",
"yob1906.txt yob1939.txt yob1972.txt yob2005.txt\n",
"yob1907.txt yob1940.txt yob1973.txt yob2006.txt\n",
"yob1908.txt yob1941.txt yob1974.txt yob2007.txt\n",
"yob1909.txt yob1942.txt yob1975.txt yob2008.txt\n",
"yob1910.txt yob1943.txt yob1976.txt yob2009.txt\n",
"yob1911.txt yob1944.txt yob1977.txt yob2010.txt\n",
"\n",
"$ head yob1880.txt\n",
"Mary,F,7065\n",
"Anna,F,2604\n",
"Emma,F,2003\n",
"Elizabeth,F,1939\n",
"Minnie,F,1746\n",
"Margaret,F,1578\n",
"Ida,F,1472\n",
"Alice,F,1414\n",
"Bertha,F,1320\n",
"Sarah,F,1288\n",
"```\n",
"\n",
"이 데이터로 어떤 분석들이 가능할까?\n",
"\n",
"* 특정 이름의 빈도 변화를 그래프로 표시\n",
"* 각 이름의 상대적인 등수 결정\n",
"* 매년 가장 인기있던 이름과 가장 큰 증감률을 보인 이름\n",
"* 이름 유행 분석 등\n",
"\n",
"그럼 지금부터 pandas로 이 데이터분석을 시작해보자."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 데이터 로드"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"names1880 = pd.read_csv('/Users/yong27/study/pydata/pydata-book/ch02/names/yob1880.txt', names=['name', 'sex', 'births'])"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>sex</th>\n",
" <th>births</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Mary</td>\n",
" <td>F</td>\n",
" <td>7065</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Anna</td>\n",
" <td>F</td>\n",
" <td>2604</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Emma</td>\n",
" <td>F</td>\n",
" <td>2003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Elizabeth</td>\n",
" <td>F</td>\n",
" <td>1939</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Minnie</td>\n",
" <td>F</td>\n",
" <td>1746</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Margaret</td>\n",
" <td>F</td>\n",
" <td>1578</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Ida</td>\n",
" <td>F</td>\n",
" <td>1472</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Alice</td>\n",
" <td>F</td>\n",
" <td>1414</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Bertha</td>\n",
" <td>F</td>\n",
" <td>1320</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Sarah</td>\n",
" <td>F</td>\n",
" <td>1288</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Annie</td>\n",
" <td>F</td>\n",
" <td>1258</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Clara</td>\n",
" <td>F</td>\n",
" <td>1226</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Ella</td>\n",
" <td>F</td>\n",
" <td>1156</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Florence</td>\n",
" <td>F</td>\n",
" <td>1063</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Cora</td>\n",
" <td>F</td>\n",
" <td>1045</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Martha</td>\n",
" <td>F</td>\n",
" <td>1040</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Laura</td>\n",
" <td>F</td>\n",
" <td>1012</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Nellie</td>\n",
" <td>F</td>\n",
" <td>995</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Grace</td>\n",
" <td>F</td>\n",
" <td>982</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Carrie</td>\n",
" <td>F</td>\n",
" <td>949</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>Maude</td>\n",
" <td>F</td>\n",
" <td>858</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Mabel</td>\n",
" <td>F</td>\n",
" <td>808</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>Bessie</td>\n",
" <td>F</td>\n",
" <td>794</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Jennie</td>\n",
" <td>F</td>\n",
" <td>793</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>Gertrude</td>\n",
" <td>F</td>\n",
" <td>787</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>Julia</td>\n",
" <td>F</td>\n",
" <td>783</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>Hattie</td>\n",
" <td>F</td>\n",
" <td>769</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>Edith</td>\n",
" <td>F</td>\n",
" <td>768</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>Mattie</td>\n",
" <td>F</td>\n",
" <td>704</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>Rose</td>\n",
" <td>F</td>\n",
" <td>700</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1970</th>\n",
" <td>Philo</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1971</th>\n",
" <td>Phineas</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1972</th>\n",
" <td>Presley</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1973</th>\n",
" <td>Ransom</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1974</th>\n",
" <td>Reece</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1975</th>\n",
" <td>Rene</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1976</th>\n",
" <td>Roswell</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1977</th>\n",
" <td>Rowland</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1978</th>\n",
" <td>Sampson</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1979</th>\n",
" <td>Samual</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1980</th>\n",
" <td>Santos</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1981</th>\n",
" <td>Schuyler</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1982</th>\n",
" <td>Sheppard</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1983</th>\n",
" <td>Spurgeon</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1984</th>\n",
" <td>Starling</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1985</th>\n",
" <td>Sylvanus</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1986</th>\n",
" <td>Theadore</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1987</th>\n",
" <td>Theophile</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1988</th>\n",
" <td>Tilmon</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1989</th>\n",
" <td>Tommy</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1990</th>\n",
" <td>Unknown</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1991</th>\n",
" <td>Vann</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1992</th>\n",
" <td>Wes</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993</th>\n",
" <td>Winston</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1994</th>\n",
" <td>Wood</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1995</th>\n",
" <td>Woodie</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1996</th>\n",
" <td>Worthy</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1997</th>\n",
" <td>Wright</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1998</th>\n",
" <td>York</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999</th>\n",
" <td>Zachariah</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2000 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" name sex births\n",
"0 Mary F 7065\n",
"1 Anna F 2604\n",
"2 Emma F 2003\n",
"3 Elizabeth F 1939\n",
"4 Minnie F 1746\n",
"5 Margaret F 1578\n",
"6 Ida F 1472\n",
"7 Alice F 1414\n",
"8 Bertha F 1320\n",
"9 Sarah F 1288\n",
"10 Annie F 1258\n",
"11 Clara F 1226\n",
"12 Ella F 1156\n",
"13 Florence F 1063\n",
"14 Cora F 1045\n",
"15 Martha F 1040\n",
"16 Laura F 1012\n",
"17 Nellie F 995\n",
"18 Grace F 982\n",
"19 Carrie F 949\n",
"20 Maude F 858\n",
"21 Mabel F 808\n",
"22 Bessie F 794\n",
"23 Jennie F 793\n",
"24 Gertrude F 787\n",
"25 Julia F 783\n",
"26 Hattie F 769\n",
"27 Edith F 768\n",
"28 Mattie F 704\n",
"29 Rose F 700\n",
"... ... .. ...\n",
"1970 Philo M 5\n",
"1971 Phineas M 5\n",
"1972 Presley M 5\n",
"1973 Ransom M 5\n",
"1974 Reece M 5\n",
"1975 Rene M 5\n",
"1976 Roswell M 5\n",
"1977 Rowland M 5\n",
"1978 Sampson M 5\n",
"1979 Samual M 5\n",
"1980 Santos M 5\n",
"1981 Schuyler M 5\n",
"1982 Sheppard M 5\n",
"1983 Spurgeon M 5\n",
"1984 Starling M 5\n",
"1985 Sylvanus M 5\n",
"1986 Theadore M 5\n",
"1987 Theophile M 5\n",
"1988 Tilmon M 5\n",
"1989 Tommy M 5\n",
"1990 Unknown M 5\n",
"1991 Vann M 5\n",
"1992 Wes M 5\n",
"1993 Winston M 5\n",
"1994 Wood M 5\n",
"1995 Woodie M 5\n",
"1996 Worthy M 5\n",
"1997 Wright M 5\n",
"1998 York M 5\n",
"1999 Zachariah M 5\n",
"\n",
"[2000 rows x 3 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"names1880"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1880년생 이름들이 잘 로드되었다 (상위 2000개 이름들만 제공함). 성별별로 몇명이나 있는지 계산해보자."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"sex\n",
"F 90993\n",
"M 110493\n",
"Name: births, dtype: int64"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"names1880.groupby('sex').births.sum()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1880년생뿐 아니라 모든 연도 출생자들을 다 로드해보자."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"years = range(1880, 2011)\n",
"pieces = []\n",
"columns = ['name', 'sex', 'births']\n",
"\n",
"for year in years:\n",
" path = '/Users/yong27/study/pydata/pydata-book/ch02/names/yob{}.txt'.format(year)\n",
" frame = pd.read_csv(path, names=columns)\n",
" frame['year'] = year\n",
" pieces.append(frame)\n",
" \n",
"names = pd.concat(pieces, ignore_index=True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>sex</th>\n",
" <th>births</th>\n",
" <th>year</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Mary</td>\n",
" <td>F</td>\n",
" <td>7065</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Anna</td>\n",
" <td>F</td>\n",
" <td>2604</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Emma</td>\n",
" <td>F</td>\n",
" <td>2003</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Elizabeth</td>\n",
" <td>F</td>\n",
" <td>1939</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Minnie</td>\n",
" <td>F</td>\n",
" <td>1746</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Margaret</td>\n",
" <td>F</td>\n",
" <td>1578</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Ida</td>\n",
" <td>F</td>\n",
" <td>1472</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Alice</td>\n",
" <td>F</td>\n",
" <td>1414</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Bertha</td>\n",
" <td>F</td>\n",
" <td>1320</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Sarah</td>\n",
" <td>F</td>\n",
" <td>1288</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Annie</td>\n",
" <td>F</td>\n",
" <td>1258</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Clara</td>\n",
" <td>F</td>\n",
" <td>1226</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Ella</td>\n",
" <td>F</td>\n",
" <td>1156</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Florence</td>\n",
" <td>F</td>\n",
" <td>1063</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Cora</td>\n",
" <td>F</td>\n",
" <td>1045</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Martha</td>\n",
" <td>F</td>\n",
" <td>1040</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Laura</td>\n",
" <td>F</td>\n",
" <td>1012</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Nellie</td>\n",
" <td>F</td>\n",
" <td>995</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Grace</td>\n",
" <td>F</td>\n",
" <td>982</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Carrie</td>\n",
" <td>F</td>\n",
" <td>949</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>Maude</td>\n",
" <td>F</td>\n",
" <td>858</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Mabel</td>\n",
" <td>F</td>\n",
" <td>808</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>Bessie</td>\n",
" <td>F</td>\n",
" <td>794</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Jennie</td>\n",
" <td>F</td>\n",
" <td>793</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>Gertrude</td>\n",
" <td>F</td>\n",
" <td>787</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>Julia</td>\n",
" <td>F</td>\n",
" <td>783</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>Hattie</td>\n",
" <td>F</td>\n",
" <td>769</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>Edith</td>\n",
" <td>F</td>\n",
" <td>768</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>Mattie</td>\n",
" <td>F</td>\n",
" <td>704</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>Rose</td>\n",
" <td>F</td>\n",
" <td>700</td>\n",
" <td>1880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690754</th>\n",
" <td>Zaviyon</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690755</th>\n",
" <td>Zaybrien</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690756</th>\n",
" <td>Zayshawn</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690757</th>\n",
" <td>Zayyan</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690758</th>\n",
" <td>Zeal</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690759</th>\n",
" <td>Zealan</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690760</th>\n",
" <td>Zecharia</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690761</th>\n",
" <td>Zeferino</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690762</th>\n",
" <td>Zekariah</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690763</th>\n",
" <td>Zeki</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690764</th>\n",
" <td>Zeriah</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690765</th>\n",
" <td>Zeshan</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690766</th>\n",
" <td>Zhyier</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690767</th>\n",
" <td>Zildjian</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690768</th>\n",
" <td>Zinn</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690769</th>\n",
" <td>Zishan</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690770</th>\n",
" <td>Ziven</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690771</th>\n",
" <td>Zmari</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690772</th>\n",
" <td>Zoren</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690773</th>\n",
" <td>Zuhaib</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690774</th>\n",
" <td>Zyeire</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690775</th>\n",
" <td>Zygmunt</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690776</th>\n",
" <td>Zykerion</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690777</th>\n",
" <td>Zylar</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690778</th>\n",
" <td>Zylin</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690779</th>\n",
" <td>Zymaire</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690780</th>\n",
" <td>Zyonne</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690781</th>\n",
" <td>Zyquarius</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690782</th>\n",
" <td>Zyran</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690783</th>\n",
" <td>Zzyzx</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1690784 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" name sex births year\n",
"0 Mary F 7065 1880\n",
"1 Anna F 2604 1880\n",
"2 Emma F 2003 1880\n",
"3 Elizabeth F 1939 1880\n",
"4 Minnie F 1746 1880\n",
"5 Margaret F 1578 1880\n",
"6 Ida F 1472 1880\n",
"7 Alice F 1414 1880\n",
"8 Bertha F 1320 1880\n",
"9 Sarah F 1288 1880\n",
"10 Annie F 1258 1880\n",
"11 Clara F 1226 1880\n",
"12 Ella F 1156 1880\n",
"13 Florence F 1063 1880\n",
"14 Cora F 1045 1880\n",
"15 Martha F 1040 1880\n",
"16 Laura F 1012 1880\n",
"17 Nellie F 995 1880\n",
"18 Grace F 982 1880\n",
"19 Carrie F 949 1880\n",
"20 Maude F 858 1880\n",
"21 Mabel F 808 1880\n",
"22 Bessie F 794 1880\n",
"23 Jennie F 793 1880\n",
"24 Gertrude F 787 1880\n",
"25 Julia F 783 1880\n",
"26 Hattie F 769 1880\n",
"27 Edith F 768 1880\n",
"28 Mattie F 704 1880\n",
"29 Rose F 700 1880\n",
"... ... .. ... ...\n",
"1690754 Zaviyon M 5 2010\n",
"1690755 Zaybrien M 5 2010\n",
"1690756 Zayshawn M 5 2010\n",
"1690757 Zayyan M 5 2010\n",
"1690758 Zeal M 5 2010\n",
"1690759 Zealan M 5 2010\n",
"1690760 Zecharia M 5 2010\n",
"1690761 Zeferino M 5 2010\n",
"1690762 Zekariah M 5 2010\n",
"1690763 Zeki M 5 2010\n",
"1690764 Zeriah M 5 2010\n",
"1690765 Zeshan M 5 2010\n",
"1690766 Zhyier M 5 2010\n",
"1690767 Zildjian M 5 2010\n",
"1690768 Zinn M 5 2010\n",
"1690769 Zishan M 5 2010\n",
"1690770 Ziven M 5 2010\n",
"1690771 Zmari M 5 2010\n",
"1690772 Zoren M 5 2010\n",
"1690773 Zuhaib M 5 2010\n",
"1690774 Zyeire M 5 2010\n",
"1690775 Zygmunt M 5 2010\n",
"1690776 Zykerion M 5 2010\n",
"1690777 Zylar M 5 2010\n",
"1690778 Zylin M 5 2010\n",
"1690779 Zymaire M 5 2010\n",
"1690780 Zyonne M 5 2010\n",
"1690781 Zyquarius M 5 2010\n",
"1690782 Zyran M 5 2010\n",
"1690783 Zzyzx M 5 2010\n",
"\n",
"[1690784 rows x 4 columns]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"names"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"모든 연도의 데이터가 다 로드되어 **names**라는 하나의 Dataframe에 저장되었다. 총 1,690,784개의 레코드가 있다. "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"total_births = names.pivot_table('births', index='year', columns='sex', aggfunc=sum)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>sex</th>\n",
" <th>F</th>\n",
" <th>M</th>\n",
" </tr>\n",
" <tr>\n",
" <th>year</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1880</th>\n",
" <td>90993</td>\n",
" <td>110493</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1881</th>\n",
" <td>91955</td>\n",
" <td>100748</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1882</th>\n",
" <td>107851</td>\n",
" <td>113687</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1883</th>\n",
" <td>112322</td>\n",
" <td>104632</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1884</th>\n",
" <td>129021</td>\n",
" <td>114445</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1885</th>\n",
" <td>133056</td>\n",
" <td>107802</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1886</th>\n",
" <td>144538</td>\n",
" <td>110785</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1887</th>\n",
" <td>145983</td>\n",
" <td>101412</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1888</th>\n",
" <td>178631</td>\n",
" <td>120857</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1889</th>\n",
" <td>178369</td>\n",
" <td>110590</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1890</th>\n",
" <td>190377</td>\n",
" <td>111026</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1891</th>\n",
" <td>185486</td>\n",
" <td>101198</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1892</th>\n",
" <td>212350</td>\n",
" <td>122038</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1893</th>\n",
" <td>212908</td>\n",
" <td>112319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1894</th>\n",
" <td>222923</td>\n",
" <td>115775</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1895</th>\n",
" <td>233632</td>\n",
" <td>117398</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1896</th>\n",
" <td>237924</td>\n",
" <td>119575</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1897</th>\n",
" <td>234199</td>\n",
" <td>112760</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1898</th>\n",
" <td>258771</td>\n",
" <td>122703</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1899</th>\n",
" <td>233022</td>\n",
" <td>106218</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1900</th>\n",
" <td>299873</td>\n",
" <td>150554</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1901</th>\n",
" <td>239351</td>\n",
" <td>106478</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1902</th>\n",
" <td>264079</td>\n",
" <td>122660</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1903</th>\n",
" <td>261976</td>\n",
" <td>119240</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1904</th>\n",
" <td>275375</td>\n",
" <td>128129</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1905</th>\n",
" <td>291641</td>\n",
" <td>132319</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1906</th>\n",
" <td>295301</td>\n",
" <td>133159</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1907</th>\n",
" <td>318558</td>\n",
" <td>146838</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1908</th>\n",
" <td>334277</td>\n",
" <td>154339</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1909</th>\n",
" <td>347191</td>\n",
" <td>163983</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1981</th>\n",
" <td>1666833</td>\n",
" <td>1789568</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1982</th>\n",
" <td>1692036</td>\n",
" <td>1812642</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1983</th>\n",
" <td>1669486</td>\n",
" <td>1790670</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1984</th>\n",
" <td>1682396</td>\n",
" <td>1802735</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1985</th>\n",
" <td>1719450</td>\n",
" <td>1846162</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1986</th>\n",
" <td>1714053</td>\n",
" <td>1839442</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1987</th>\n",
" <td>1737508</td>\n",
" <td>1865113</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1988</th>\n",
" <td>1779112</td>\n",
" <td>1911858</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1989</th>\n",
" <td>1843057</td>\n",
" <td>1999840</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1990</th>\n",
" <td>1897256</td>\n",
" <td>2052070</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1991</th>\n",
" <td>1874110</td>\n",
" <td>2019018</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1992</th>\n",
" <td>1842818</td>\n",
" <td>1995760</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1993</th>\n",
" <td>1807795</td>\n",
" <td>1959712</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1994</th>\n",
" <td>1784407</td>\n",
" <td>1930363</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1995</th>\n",
" <td>1757240</td>\n",
" <td>1902100</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1996</th>\n",
" <td>1751681</td>\n",
" <td>1892700</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1997</th>\n",
" <td>1739331</td>\n",
" <td>1883571</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1998</th>\n",
" <td>1765390</td>\n",
" <td>1909676</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1999</th>\n",
" <td>1772139</td>\n",
" <td>1918267</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000</th>\n",
" <td>1813960</td>\n",
" <td>1961702</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2001</th>\n",
" <td>1798284</td>\n",
" <td>1940498</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2002</th>\n",
" <td>1794358</td>\n",
" <td>1938941</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2003</th>\n",
" <td>1824406</td>\n",
" <td>1972439</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2004</th>\n",
" <td>1833005</td>\n",
" <td>1981557</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2005</th>\n",
" <td>1843890</td>\n",
" <td>1993285</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2006</th>\n",
" <td>1896468</td>\n",
" <td>2050234</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2007</th>\n",
" <td>1916888</td>\n",
" <td>2069242</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2008</th>\n",
" <td>1883645</td>\n",
" <td>2032310</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2009</th>\n",
" <td>1827643</td>\n",
" <td>1973359</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2010</th>\n",
" <td>1759010</td>\n",
" <td>1898382</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>131 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
"sex F M\n",
"year \n",
"1880 90993 110493\n",
"1881 91955 100748\n",
"1882 107851 113687\n",
"1883 112322 104632\n",
"1884 129021 114445\n",
"1885 133056 107802\n",
"1886 144538 110785\n",
"1887 145983 101412\n",
"1888 178631 120857\n",
"1889 178369 110590\n",
"1890 190377 111026\n",
"1891 185486 101198\n",
"1892 212350 122038\n",
"1893 212908 112319\n",
"1894 222923 115775\n",
"1895 233632 117398\n",
"1896 237924 119575\n",
"1897 234199 112760\n",
"1898 258771 122703\n",
"1899 233022 106218\n",
"1900 299873 150554\n",
"1901 239351 106478\n",
"1902 264079 122660\n",
"1903 261976 119240\n",
"1904 275375 128129\n",
"1905 291641 132319\n",
"1906 295301 133159\n",
"1907 318558 146838\n",
"1908 334277 154339\n",
"1909 347191 163983\n",
"... ... ...\n",
"1981 1666833 1789568\n",
"1982 1692036 1812642\n",
"1983 1669486 1790670\n",
"1984 1682396 1802735\n",
"1985 1719450 1846162\n",
"1986 1714053 1839442\n",
"1987 1737508 1865113\n",
"1988 1779112 1911858\n",
"1989 1843057 1999840\n",
"1990 1897256 2052070\n",
"1991 1874110 2019018\n",
"1992 1842818 1995760\n",
"1993 1807795 1959712\n",
"1994 1784407 1930363\n",
"1995 1757240 1902100\n",
"1996 1751681 1892700\n",
"1997 1739331 1883571\n",
"1998 1765390 1909676\n",
"1999 1772139 1918267\n",
"2000 1813960 1961702\n",
"2001 1798284 1940498\n",
"2002 1794358 1938941\n",
"2003 1824406 1972439\n",
"2004 1833005 1981557\n",
"2005 1843890 1993285\n",
"2006 1896468 2050234\n",
"2007 1916888 2069242\n",
"2008 1883645 2032310\n",
"2009 1827643 1973359\n",
"2010 1759010 1898382\n",
"\n",
"[131 rows x 2 columns]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"total_births"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dataframe.pivot_table 메쏘드는 테이블내 두 컬럼을 결합한다. 이 데이터를 가지고, 매년 남녀 출생수(births)를 차트로 표시해보자."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x108097c18>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n5oy4hDh9+MeHtdmQZhoZE3mmfONG1UcfdaOihg/P+nl8PjfS6rnnkpY/Ne0pfe/P97J+gnxm+PLh\n2mNcjwxvPydijl484GL9betv533Onzf+rLU/rq2dRnbSa0Zcozujd6qq+9HwwOQH9OZvb06RTDLr\nymFX6uT1k1U1681TJpf17t2bkSNHnnk/cuRI+vTpc449zIXo65Vfs2b/GubdP49qZdwAwjVroF07\n13G9fj30Pb8pp5IQgREjYPx4mDbtbHm7Gu1YuGth1k+Qz6TXNJVch9AOTLh9AndMvIPfI37P9Pmi\nTkXx6NRHGdZ9GL/c+wtd6nSh4aCGVP+wOnU/q8uKvSv49rZvKVyocKaP7e+B5g8wfOXwc2+UWiYp\nSC/yaU1j9uzZ2rBhQ92wYYMmJCRozZo1dceOHdY8Zc7w+Xx66eeX6qwts5KU33OP6rvv5sw55851\n93pERLj3EUciNPiD4Dx1T0JOizoZpWXfKavRp6Izve+ciDlaaUAlnb11dqb26zu5rz72c9LRCMdi\nj+nO6J26dt9aPRZ7LNOxpOZo7FEt/2553R2zO82ahk29kQZ5PXumJ9fXzn8kcmJto0OHDjRq1Ihq\n1exWFHPW7IjZAHSq3elMWUQETJ8On3+eM+e85hp4+WW48UaYPx9CgkJQVXbG7Dxzr0JB9+PGHwkL\nDaNs8bKZ3jexxtFzQk/G9RxHx9od09w24kgEk9ZP4udNP7MrZhcrH12ZZH2pYqUoVawUNcrWyFQM\nhw7BM8/AVVfBI48kXVe6WGl6NOzB6NWj0z5AapmkIL3IxzWN7du3a0hIiPbq1UvHjBmj8fHxVtMw\nZ3T9pqsOXTY0Sdnjj6u+9FLOn/vZZ1Wvvlr15EnVW767RcetHZfzJ80DTsWd0gafNdCfNv6UpNzn\nU43LRP9zYh/H4CWD9cDxAynWT9s0TS8ecLE++tOj+vPGn/X46eNZDV1VVWfNUq1e3Q2hrlpVdcqU\nlNvM3zFf639W3zrCk8vLX7CJSUNVNSwsTMuVK6cnTpywpGHO2Hhwo1YaUElPnD5xpmzvXtfxvWfP\nOXbMJgkJqrffrvr006rv/PGO/nvGv3P+pHnAW3Pf0u7fdU9R/uabqnXrqq5dm/FjLdy5UHuO76ll\n3ymr1359rQ5aNEh3Re/Sr1d8rVXer6ILdi7IxsjdNDLBwaozZ7r3ixapXnyx6pIlSbfz+Xx63ajr\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10fd97e48>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"total_births.plot(title='Total births by sex and year')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"매년 남녀 출생수 현황을 한눈에 알 수 있다. 1930년전에는 여자가 많았는데, 그 이후에 남자가 많이지는 점이 이채롭다.\n",
"\n",
"이제, 각 레코드에 \"prop\" 컬럼을 만들고, 해당 이름의 빈도를 추가해보자. "
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def add_prop(group):\n",
" #births = group.births.astype(float)\n",
" group['prop'] = group.births / group.births.sum()\n",
" return group\n",
"\n",
"names = names.groupby(['year', 'sex']).apply(add_prop)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>sex</th>\n",
" <th>births</th>\n",
" <th>year</th>\n",
" <th>prop</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Mary</td>\n",
" <td>F</td>\n",
" <td>7065</td>\n",
" <td>1880</td>\n",
" <td>0.077643</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Anna</td>\n",
" <td>F</td>\n",
" <td>2604</td>\n",
" <td>1880</td>\n",
" <td>0.028618</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Emma</td>\n",
" <td>F</td>\n",
" <td>2003</td>\n",
" <td>1880</td>\n",
" <td>0.022013</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Elizabeth</td>\n",
" <td>F</td>\n",
" <td>1939</td>\n",
" <td>1880</td>\n",
" <td>0.021309</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Minnie</td>\n",
" <td>F</td>\n",
" <td>1746</td>\n",
" <td>1880</td>\n",
" <td>0.019188</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Margaret</td>\n",
" <td>F</td>\n",
" <td>1578</td>\n",
" <td>1880</td>\n",
" <td>0.017342</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Ida</td>\n",
" <td>F</td>\n",
" <td>1472</td>\n",
" <td>1880</td>\n",
" <td>0.016177</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Alice</td>\n",
" <td>F</td>\n",
" <td>1414</td>\n",
" <td>1880</td>\n",
" <td>0.015540</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Bertha</td>\n",
" <td>F</td>\n",
" <td>1320</td>\n",
" <td>1880</td>\n",
" <td>0.014507</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Sarah</td>\n",
" <td>F</td>\n",
" <td>1288</td>\n",
" <td>1880</td>\n",
" <td>0.014155</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Annie</td>\n",
" <td>F</td>\n",
" <td>1258</td>\n",
" <td>1880</td>\n",
" <td>0.013825</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Clara</td>\n",
" <td>F</td>\n",
" <td>1226</td>\n",
" <td>1880</td>\n",
" <td>0.013474</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Ella</td>\n",
" <td>F</td>\n",
" <td>1156</td>\n",
" <td>1880</td>\n",
" <td>0.012704</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Florence</td>\n",
" <td>F</td>\n",
" <td>1063</td>\n",
" <td>1880</td>\n",
" <td>0.011682</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Cora</td>\n",
" <td>F</td>\n",
" <td>1045</td>\n",
" <td>1880</td>\n",
" <td>0.011484</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Martha</td>\n",
" <td>F</td>\n",
" <td>1040</td>\n",
" <td>1880</td>\n",
" <td>0.011429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Laura</td>\n",
" <td>F</td>\n",
" <td>1012</td>\n",
" <td>1880</td>\n",
" <td>0.011122</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Nellie</td>\n",
" <td>F</td>\n",
" <td>995</td>\n",
" <td>1880</td>\n",
" <td>0.010935</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Grace</td>\n",
" <td>F</td>\n",
" <td>982</td>\n",
" <td>1880</td>\n",
" <td>0.010792</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Carrie</td>\n",
" <td>F</td>\n",
" <td>949</td>\n",
" <td>1880</td>\n",
" <td>0.010429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>Maude</td>\n",
" <td>F</td>\n",
" <td>858</td>\n",
" <td>1880</td>\n",
" <td>0.009429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Mabel</td>\n",
" <td>F</td>\n",
" <td>808</td>\n",
" <td>1880</td>\n",
" <td>0.008880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>Bessie</td>\n",
" <td>F</td>\n",
" <td>794</td>\n",
" <td>1880</td>\n",
" <td>0.008726</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Jennie</td>\n",
" <td>F</td>\n",
" <td>793</td>\n",
" <td>1880</td>\n",
" <td>0.008715</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>Gertrude</td>\n",
" <td>F</td>\n",
" <td>787</td>\n",
" <td>1880</td>\n",
" <td>0.008649</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>Julia</td>\n",
" <td>F</td>\n",
" <td>783</td>\n",
" <td>1880</td>\n",
" <td>0.008605</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>Hattie</td>\n",
" <td>F</td>\n",
" <td>769</td>\n",
" <td>1880</td>\n",
" <td>0.008451</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>Edith</td>\n",
" <td>F</td>\n",
" <td>768</td>\n",
" <td>1880</td>\n",
" <td>0.008440</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>Mattie</td>\n",
" <td>F</td>\n",
" <td>704</td>\n",
" <td>1880</td>\n",
" <td>0.007737</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>Rose</td>\n",
" <td>F</td>\n",
" <td>700</td>\n",
" <td>1880</td>\n",
" <td>0.007693</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690754</th>\n",
" <td>Zaviyon</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690755</th>\n",
" <td>Zaybrien</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690756</th>\n",
" <td>Zayshawn</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690757</th>\n",
" <td>Zayyan</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690758</th>\n",
" <td>Zeal</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690759</th>\n",
" <td>Zealan</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690760</th>\n",
" <td>Zecharia</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690761</th>\n",
" <td>Zeferino</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690762</th>\n",
" <td>Zekariah</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690763</th>\n",
" <td>Zeki</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690764</th>\n",
" <td>Zeriah</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690765</th>\n",
" <td>Zeshan</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690766</th>\n",
" <td>Zhyier</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690767</th>\n",
" <td>Zildjian</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690768</th>\n",
" <td>Zinn</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690769</th>\n",
" <td>Zishan</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690770</th>\n",
" <td>Ziven</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690771</th>\n",
" <td>Zmari</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690772</th>\n",
" <td>Zoren</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690773</th>\n",
" <td>Zuhaib</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690774</th>\n",
" <td>Zyeire</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690775</th>\n",
" <td>Zygmunt</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690776</th>\n",
" <td>Zykerion</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690777</th>\n",
" <td>Zylar</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690778</th>\n",
" <td>Zylin</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690779</th>\n",
" <td>Zymaire</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690780</th>\n",
" <td>Zyonne</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690781</th>\n",
" <td>Zyquarius</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690782</th>\n",
" <td>Zyran</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1690783</th>\n",
" <td>Zzyzx</td>\n",
" <td>M</td>\n",
" <td>5</td>\n",
" <td>2010</td>\n",
" <td>0.000003</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1690784 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" name sex births year prop\n",
"0 Mary F 7065 1880 0.077643\n",
"1 Anna F 2604 1880 0.028618\n",
"2 Emma F 2003 1880 0.022013\n",
"3 Elizabeth F 1939 1880 0.021309\n",
"4 Minnie F 1746 1880 0.019188\n",
"5 Margaret F 1578 1880 0.017342\n",
"6 Ida F 1472 1880 0.016177\n",
"7 Alice F 1414 1880 0.015540\n",
"8 Bertha F 1320 1880 0.014507\n",
"9 Sarah F 1288 1880 0.014155\n",
"10 Annie F 1258 1880 0.013825\n",
"11 Clara F 1226 1880 0.013474\n",
"12 Ella F 1156 1880 0.012704\n",
"13 Florence F 1063 1880 0.011682\n",
"14 Cora F 1045 1880 0.011484\n",
"15 Martha F 1040 1880 0.011429\n",
"16 Laura F 1012 1880 0.011122\n",
"17 Nellie F 995 1880 0.010935\n",
"18 Grace F 982 1880 0.010792\n",
"19 Carrie F 949 1880 0.010429\n",
"20 Maude F 858 1880 0.009429\n",
"21 Mabel F 808 1880 0.008880\n",
"22 Bessie F 794 1880 0.008726\n",
"23 Jennie F 793 1880 0.008715\n",
"24 Gertrude F 787 1880 0.008649\n",
"25 Julia F 783 1880 0.008605\n",
"26 Hattie F 769 1880 0.008451\n",
"27 Edith F 768 1880 0.008440\n",
"28 Mattie F 704 1880 0.007737\n",
"29 Rose F 700 1880 0.007693\n",
"... ... .. ... ... ...\n",
"1690754 Zaviyon M 5 2010 0.000003\n",
"1690755 Zaybrien M 5 2010 0.000003\n",
"1690756 Zayshawn M 5 2010 0.000003\n",
"1690757 Zayyan M 5 2010 0.000003\n",
"1690758 Zeal M 5 2010 0.000003\n",
"1690759 Zealan M 5 2010 0.000003\n",
"1690760 Zecharia M 5 2010 0.000003\n",
"1690761 Zeferino M 5 2010 0.000003\n",
"1690762 Zekariah M 5 2010 0.000003\n",
"1690763 Zeki M 5 2010 0.000003\n",
"1690764 Zeriah M 5 2010 0.000003\n",
"1690765 Zeshan M 5 2010 0.000003\n",
"1690766 Zhyier M 5 2010 0.000003\n",
"1690767 Zildjian M 5 2010 0.000003\n",
"1690768 Zinn M 5 2010 0.000003\n",
"1690769 Zishan M 5 2010 0.000003\n",
"1690770 Ziven M 5 2010 0.000003\n",
"1690771 Zmari M 5 2010 0.000003\n",
"1690772 Zoren M 5 2010 0.000003\n",
"1690773 Zuhaib M 5 2010 0.000003\n",
"1690774 Zyeire M 5 2010 0.000003\n",
"1690775 Zygmunt M 5 2010 0.000003\n",
"1690776 Zykerion M 5 2010 0.000003\n",
"1690777 Zylar M 5 2010 0.000003\n",
"1690778 Zylin M 5 2010 0.000003\n",
"1690779 Zymaire M 5 2010 0.000003\n",
"1690780 Zyonne M 5 2010 0.000003\n",
"1690781 Zyquarius M 5 2010 0.000003\n",
"1690782 Zyran M 5 2010 0.000003\n",
"1690783 Zzyzx M 5 2010 0.000003\n",
"\n",
"[1690784 rows x 5 columns]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"names"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"해당 연도, 성별을 그룹으로 하고, 그 그룹에서의 이름 빈도가 추가되었다. 이 빈도가 정확하게 계산되었는지 궁금하다. 한번 확인해보자."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"np.allclose(names.groupby(['year', 'sex']).prop.sum(), 1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"오케이. 이제부터 매년, 각 성별별로 특정 이름의 빈도 변화를 살펴보자. 매년, 각 성별별(그룹별)로 데이터수가 다르니, 그룹별 top1000만 쓰기로 하자."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def get_top1000(group):\n",
" return group.sort_values(by='births', ascending=False)[:1000]\n",
"\n",
"grouped = names.groupby(['year', 'sex'])\n",
"top1000 = grouped.apply(get_top1000)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>name</th>\n",
" <th>sex</th>\n",
" <th>births</th>\n",
" <th>year</th>\n",
" <th>prop</th>\n",
" </tr>\n",
" <tr>\n",
" <th>year</th>\n",
" <th>sex</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"30\" valign=\"top\">1880</th>\n",
" <th rowspan=\"30\" valign=\"top\">F</th>\n",
" <th>0</th>\n",
" <td>Mary</td>\n",
" <td>F</td>\n",
" <td>7065</td>\n",
" <td>1880</td>\n",
" <td>0.077643</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Anna</td>\n",
" <td>F</td>\n",
" <td>2604</td>\n",
" <td>1880</td>\n",
" <td>0.028618</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Emma</td>\n",
" <td>F</td>\n",
" <td>2003</td>\n",
" <td>1880</td>\n",
" <td>0.022013</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Elizabeth</td>\n",
" <td>F</td>\n",
" <td>1939</td>\n",
" <td>1880</td>\n",
" <td>0.021309</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Minnie</td>\n",
" <td>F</td>\n",
" <td>1746</td>\n",
" <td>1880</td>\n",
" <td>0.019188</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Margaret</td>\n",
" <td>F</td>\n",
" <td>1578</td>\n",
" <td>1880</td>\n",
" <td>0.017342</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Ida</td>\n",
" <td>F</td>\n",
" <td>1472</td>\n",
" <td>1880</td>\n",
" <td>0.016177</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Alice</td>\n",
" <td>F</td>\n",
" <td>1414</td>\n",
" <td>1880</td>\n",
" <td>0.015540</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Bertha</td>\n",
" <td>F</td>\n",
" <td>1320</td>\n",
" <td>1880</td>\n",
" <td>0.014507</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Sarah</td>\n",
" <td>F</td>\n",
" <td>1288</td>\n",
" <td>1880</td>\n",
" <td>0.014155</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Annie</td>\n",
" <td>F</td>\n",
" <td>1258</td>\n",
" <td>1880</td>\n",
" <td>0.013825</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Clara</td>\n",
" <td>F</td>\n",
" <td>1226</td>\n",
" <td>1880</td>\n",
" <td>0.013474</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Ella</td>\n",
" <td>F</td>\n",
" <td>1156</td>\n",
" <td>1880</td>\n",
" <td>0.012704</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Florence</td>\n",
" <td>F</td>\n",
" <td>1063</td>\n",
" <td>1880</td>\n",
" <td>0.011682</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Cora</td>\n",
" <td>F</td>\n",
" <td>1045</td>\n",
" <td>1880</td>\n",
" <td>0.011484</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Martha</td>\n",
" <td>F</td>\n",
" <td>1040</td>\n",
" <td>1880</td>\n",
" <td>0.011429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Laura</td>\n",
" <td>F</td>\n",
" <td>1012</td>\n",
" <td>1880</td>\n",
" <td>0.011122</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Nellie</td>\n",
" <td>F</td>\n",
" <td>995</td>\n",
" <td>1880</td>\n",
" <td>0.010935</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Grace</td>\n",
" <td>F</td>\n",
" <td>982</td>\n",
" <td>1880</td>\n",
" <td>0.010792</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Carrie</td>\n",
" <td>F</td>\n",
" <td>949</td>\n",
" <td>1880</td>\n",
" <td>0.010429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>Maude</td>\n",
" <td>F</td>\n",
" <td>858</td>\n",
" <td>1880</td>\n",
" <td>0.009429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Mabel</td>\n",
" <td>F</td>\n",
" <td>808</td>\n",
" <td>1880</td>\n",
" <td>0.008880</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>Bessie</td>\n",
" <td>F</td>\n",
" <td>794</td>\n",
" <td>1880</td>\n",
" <td>0.008726</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Jennie</td>\n",
" <td>F</td>\n",
" <td>793</td>\n",
" <td>1880</td>\n",
" <td>0.008715</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>Gertrude</td>\n",
" <td>F</td>\n",
" <td>787</td>\n",
" <td>1880</td>\n",
" <td>0.008649</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>Julia</td>\n",
" <td>F</td>\n",
" <td>783</td>\n",
" <td>1880</td>\n",
" <td>0.008605</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>Hattie</td>\n",
" <td>F</td>\n",
" <td>769</td>\n",
" <td>1880</td>\n",
" <td>0.008451</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>Edith</td>\n",
" <td>F</td>\n",
" <td>768</td>\n",
" <td>1880</td>\n",
" <td>0.008440</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>Mattie</td>\n",
" <td>F</td>\n",
" <td>704</td>\n",
" <td>1880</td>\n",
" <td>0.007737</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>Rose</td>\n",
" <td>F</td>\n",
" <td>700</td>\n",
" <td>1880</td>\n",
" <td>0.007693</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"30\" valign=\"top\">2010</th>\n",
" <th rowspan=\"30\" valign=\"top\">M</th>\n",
" <th>1677617</th>\n",
" <td>Yair</td>\n",
" <td>M</td>\n",
" <td>201</td>\n",
" <td>2010</td>\n",
" <td>0.000106</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677616</th>\n",
" <td>Talan</td>\n",
" <td>M</td>\n",
" <td>201</td>\n",
" <td>2010</td>\n",
" <td>0.000106</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677614</th>\n",
" <td>Keyon</td>\n",
" <td>M</td>\n",
" <td>201</td>\n",
" <td>2010</td>\n",
" <td>0.000106</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677613</th>\n",
" <td>Kael</td>\n",
" <td>M</td>\n",
" <td>201</td>\n",
" <td>2010</td>\n",
" <td>0.000106</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677618</th>\n",
" <td>Demarion</td>\n",
" <td>M</td>\n",
" <td>200</td>\n",
" <td>2010</td>\n",
" <td>0.000105</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677619</th>\n",
" <td>Gibson</td>\n",
" <td>M</td>\n",
" <td>200</td>\n",
" <td>2010</td>\n",
" <td>0.000105</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677620</th>\n",
" <td>Reagan</td>\n",
" <td>M</td>\n",
" <td>200</td>\n",
" <td>2010</td>\n",
" <td>0.000105</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677621</th>\n",
" <td>Cristofer</td>\n",
" <td>M</td>\n",
" <td>199</td>\n",
" <td>2010</td>\n",
" <td>0.000105</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677622</th>\n",
" <td>Daylen</td>\n",
" <td>M</td>\n",
" <td>199</td>\n",
" <td>2010</td>\n",
" <td>0.000105</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677623</th>\n",
" <td>Jordon</td>\n",
" <td>M</td>\n",
" <td>199</td>\n",
" <td>2010</td>\n",
" <td>0.000105</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677624</th>\n",
" <td>Dashawn</td>\n",
" <td>M</td>\n",
" <td>198</td>\n",
" <td>2010</td>\n",
" <td>0.000104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677625</th>\n",
" <td>Masen</td>\n",
" <td>M</td>\n",
" <td>198</td>\n",
" <td>2010</td>\n",
" <td>0.000104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677629</th>\n",
" <td>Rowen</td>\n",
" <td>M</td>\n",
" <td>197</td>\n",
" <td>2010</td>\n",
" <td>0.000104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677631</th>\n",
" <td>Yousef</td>\n",
" <td>M</td>\n",
" <td>197</td>\n",
" <td>2010</td>\n",
" <td>0.000104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677630</th>\n",
" <td>Thaddeus</td>\n",
" <td>M</td>\n",
" <td>197</td>\n",
" <td>2010</td>\n",
" <td>0.000104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677628</th>\n",
" <td>Kadin</td>\n",
" <td>M</td>\n",
" <td>197</td>\n",
" <td>2010</td>\n",
" <td>0.000104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677627</th>\n",
" <td>Dillan</td>\n",
" <td>M</td>\n",
" <td>197</td>\n",
" <td>2010</td>\n",
" <td>0.000104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677626</th>\n",
" <td>Clarence</td>\n",
" <td>M</td>\n",
" <td>197</td>\n",
" <td>2010</td>\n",
" <td>0.000104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677634</th>\n",
" <td>Slade</td>\n",
" <td>M</td>\n",
" <td>196</td>\n",
" <td>2010</td>\n",
" <td>0.000103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677632</th>\n",
" <td>Clinton</td>\n",
" <td>M</td>\n",
" <td>196</td>\n",
" <td>2010</td>\n",
" <td>0.000103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677633</th>\n",
" <td>Sheldon</td>\n",
" <td>M</td>\n",
" <td>196</td>\n",
" <td>2010</td>\n",
" <td>0.000103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677636</th>\n",
" <td>Keshawn</td>\n",
" <td>M</td>\n",
" <td>195</td>\n",
" <td>2010</td>\n",
" <td>0.000103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677637</th>\n",
" <td>Menachem</td>\n",
" <td>M</td>\n",
" <td>195</td>\n",
" <td>2010</td>\n",
" <td>0.000103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677635</th>\n",
" <td>Joziah</td>\n",
" <td>M</td>\n",
" <td>195</td>\n",
" <td>2010</td>\n",
" <td>0.000103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677638</th>\n",
" <td>Bailey</td>\n",
" <td>M</td>\n",
" <td>194</td>\n",
" <td>2010</td>\n",
" <td>0.000102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677639</th>\n",
" <td>Camilo</td>\n",
" <td>M</td>\n",
" <td>194</td>\n",
" <td>2010</td>\n",
" <td>0.000102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677640</th>\n",
" <td>Destin</td>\n",
" <td>M</td>\n",
" <td>194</td>\n",
" <td>2010</td>\n",
" <td>0.000102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677641</th>\n",
" <td>Jaquan</td>\n",
" <td>M</td>\n",
" <td>194</td>\n",
" <td>2010</td>\n",
" <td>0.000102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677642</th>\n",
" <td>Jaydan</td>\n",
" <td>M</td>\n",
" <td>194</td>\n",
" <td>2010</td>\n",
" <td>0.000102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1677645</th>\n",
" <td>Maxton</td>\n",
" <td>M</td>\n",
" <td>193</td>\n",
" <td>2010</td>\n",
" <td>0.000102</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>261877 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" name sex births year prop\n",
"year sex \n",
"1880 F 0 Mary F 7065 1880 0.077643\n",
" 1 Anna F 2604 1880 0.028618\n",
" 2 Emma F 2003 1880 0.022013\n",
" 3 Elizabeth F 1939 1880 0.021309\n",
" 4 Minnie F 1746 1880 0.019188\n",
" 5 Margaret F 1578 1880 0.017342\n",
" 6 Ida F 1472 1880 0.016177\n",
" 7 Alice F 1414 1880 0.015540\n",
" 8 Bertha F 1320 1880 0.014507\n",
" 9 Sarah F 1288 1880 0.014155\n",
" 10 Annie F 1258 1880 0.013825\n",
" 11 Clara F 1226 1880 0.013474\n",
" 12 Ella F 1156 1880 0.012704\n",
" 13 Florence F 1063 1880 0.011682\n",
" 14 Cora F 1045 1880 0.011484\n",
" 15 Martha F 1040 1880 0.011429\n",
" 16 Laura F 1012 1880 0.011122\n",
" 17 Nellie F 995 1880 0.010935\n",
" 18 Grace F 982 1880 0.010792\n",
" 19 Carrie F 949 1880 0.010429\n",
" 20 Maude F 858 1880 0.009429\n",
" 21 Mabel F 808 1880 0.008880\n",
" 22 Bessie F 794 1880 0.008726\n",
" 23 Jennie F 793 1880 0.008715\n",
" 24 Gertrude F 787 1880 0.008649\n",
" 25 Julia F 783 1880 0.008605\n",
" 26 Hattie F 769 1880 0.008451\n",
" 27 Edith F 768 1880 0.008440\n",
" 28 Mattie F 704 1880 0.007737\n",
" 29 Rose F 700 1880 0.007693\n",
"... ... .. ... ... ...\n",
"2010 M 1677617 Yair M 201 2010 0.000106\n",
" 1677616 Talan M 201 2010 0.000106\n",
" 1677614 Keyon M 201 2010 0.000106\n",
" 1677613 Kael M 201 2010 0.000106\n",
" 1677618 Demarion M 200 2010 0.000105\n",
" 1677619 Gibson M 200 2010 0.000105\n",
" 1677620 Reagan M 200 2010 0.000105\n",
" 1677621 Cristofer M 199 2010 0.000105\n",
" 1677622 Daylen M 199 2010 0.000105\n",
" 1677623 Jordon M 199 2010 0.000105\n",
" 1677624 Dashawn M 198 2010 0.000104\n",
" 1677625 Masen M 198 2010 0.000104\n",
" 1677629 Rowen M 197 2010 0.000104\n",
" 1677631 Yousef M 197 2010 0.000104\n",
" 1677630 Thaddeus M 197 2010 0.000104\n",
" 1677628 Kadin M 197 2010 0.000104\n",
" 1677627 Dillan M 197 2010 0.000104\n",
" 1677626 Clarence M 197 2010 0.000104\n",
" 1677634 Slade M 196 2010 0.000103\n",
" 1677632 Clinton M 196 2010 0.000103\n",
" 1677633 Sheldon M 196 2010 0.000103\n",
" 1677636 Keshawn M 195 2010 0.000103\n",
" 1677637 Menachem M 195 2010 0.000103\n",
" 1677635 Joziah M 195 2010 0.000103\n",
" 1677638 Bailey M 194 2010 0.000102\n",
" 1677639 Camilo M 194 2010 0.000102\n",
" 1677640 Destin M 194 2010 0.000102\n",
" 1677641 Jaquan M 194 2010 0.000102\n",
" 1677642 Jaydan M 194 2010 0.000102\n",
" 1677645 Maxton M 193 2010 0.000102\n",
"\n",
"[261877 rows x 5 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"top1000"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"이로서 top1000 변수에 그룹별 1000개의 이름이 정리됐다. \n",
"\n",
"## 이름 유행 분석\n",
"\n",
"이름 유행 분석을 해보자. 먼저 top1000을 boys, girls로 분리해보자."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"boys = top1000[top1000.sex == 'M']\n",
"girls = top1000[top1000.sex == 'F']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"그리고, top1000을 피벗테이블로 펼쳐보자."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"total_births = top1000.pivot_table('births', index='year', columns='name', aggfunc=sum)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>name</th>\n",
" <th>Aaden</th>\n",
" <th>Aaliyah</th>\n",
" <th>Aarav</th>\n",
" <th>Aaron</th>\n",
" <th>Aarush</th>\n",
" <th>Ab</th>\n",
" <th>Abagail</th>\n",
" <th>Abb</th>\n",
" <th>Abbey</th>\n",
" <th>Abbie</th>\n",
" <th>...</th>\n",
" <th>Zoa</th>\n",
" <th>Zoe</th>\n",
" <th>Zoey</th>\n",
" <th>Zoie</th>\n",
" <th>Zola</th>\n",
" <th>Zollie</th>\n",
" <th>Zona</th>\n",
" <th>Zora</th>\n",
" <th>Zula</th>\n",
" <th>Zuri</th>\n",
" </tr>\n",
" <tr>\n",
" <th>year</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1880</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>102.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>71.0</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>23.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7.0</td>\n",
" <td>NaN</td>\n",
" <td>8.0</td>\n",
" <td>28.0</td>\n",
" <td>27.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1881</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>94.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>81.0</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>22.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>10.0</td>\n",
" <td>NaN</td>\n",
" <td>9.0</td>\n",
" <td>21.0</td>\n",
" <td>27.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1882</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>85.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>80.0</td>\n",
" <td>...</td>\n",
" <td>8.0</td>\n",
" <td>25.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>9.0</td>\n",
" <td>NaN</td>\n",
" <td>17.0</td>\n",
" <td>32.0</td>\n",
" <td>21.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1883</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>105.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>79.0</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>23.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>10.0</td>\n",
" <td>NaN</td>\n",
" <td>11.0</td>\n",
" <td>35.0</td>\n",
" <td>25.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1884</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>97.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>98.0</td>\n",
" <td>...</td>\n",
" <td>13.0</td>\n",
" <td>31.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>14.0</td>\n",
" <td>6.0</td>\n",
" <td>8.0</td>\n",
" <td>58.0</td>\n",
" <td>27.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1885</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>88.0</td>\n",
" <td>NaN</td>\n",
" <td>6.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>88.0</td>\n",
" <td>...</td>\n",
" <td>6.0</td>\n",
" <td>27.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>12.0</td>\n",
" <td>6.0</td>\n",
" <td>14.0</td>\n",
" <td>48.0</td>\n",
" <td>38.0</td>\n",
" <td>NaN</td>\n",