Skip to content

Commit 9edf24b

Browse files
author
Christopher Fonnesbeck
committed
Edits to sections 2 and 3
1 parent 3e50460 commit 9edf24b

2 files changed

Lines changed: 925 additions & 59 deletions

File tree

2. Data Wrangling with Pandas.ipynb

Lines changed: 315 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1854,7 +1854,265 @@
18541854
],
18551855
"language": "python",
18561856
"metadata": {},
1857-
"outputs": []
1857+
"outputs": [
1858+
{
1859+
"html": [
1860+
"<hr><h2>Data frame:titanic3</h2>1309 observations and 14 variables, maximum # NAs:1188<hr>\n",
1861+
"<TABLE BORDER>\n",
1862+
"<tr><td>Name</td><td>Labels</td><td>Units</td><td>Levels</td><td>Storage</td><td>NAs</td></tr>\n",
1863+
"<tr><td>pclass</td><td></td><td></td><td><a href=\"#pclass\"><div align=right> 3</div></a></td><td>integer</td><td><div align=right> 0</div></td></tr>\n",
1864+
"<tr><td>survived</td><td>Survived</td><td></td><td><div align=right></div></td><td>double</td><td><div align=right> 0</div></td></tr>\n",
1865+
"<tr><td>name</td><td>Name</td><td></td><td><div align=right></div></td><td>character</td><td><div align=right> 0</div></td></tr>\n",
1866+
"<tr><td>sex</td><td></td><td></td><td><a href=\"#sex\"><div align=right> 2</div></a></td><td>integer</td><td><div align=right> 0</div></td></tr>\n",
1867+
"<tr><td>age</td><td>Age</td><td>Year</td><td><div align=right></div></td><td>double</td><td><div align=right> 263</div></td></tr>\n",
1868+
"<tr><td>sibsp</td><td>Number of Siblings/Spouses Aboard</td><td></td><td><div align=right></div></td><td>double</td><td><div align=right> 0</div></td></tr>\n",
1869+
"<tr><td>parch</td><td>Number of Parents/Children Aboard</td><td></td><td><div align=right></div></td><td>double</td><td><div align=right> 0</div></td></tr>\n",
1870+
"<tr><td>ticket</td><td>Ticket Number</td><td></td><td><div align=right></div></td><td>character</td><td><div align=right> 0</div></td></tr>\n",
1871+
"<tr><td>fare</td><td>Passenger Fare</td><td>British Pound (\\243)</td><td><div align=right></div></td><td>double</td><td><div align=right> 1</div></td></tr>\n",
1872+
"<tr><td>cabin</td><td></td><td></td><td><a href=\"#cabin\"><div align=right>187</div></a></td><td>integer</td><td><div align=right> 0</div></td></tr>\n",
1873+
"<tr><td>embarked</td><td></td><td></td><td><a href=\"#embarked\"><div align=right> 3</div></a></td><td>integer</td><td><div align=right> 2</div></td></tr>\n",
1874+
"<tr><td>boat</td><td></td><td></td><td><a href=\"#boat\"><div align=right> 28</div></a></td><td>integer</td><td><div align=right> 0</div></td></tr>\n",
1875+
"<tr><td>body</td><td>Body Identification Number</td><td></td><td><div align=right></div></td><td>double</td><td><div align=right>1188</div></td></tr>\n",
1876+
"<tr><td>home.dest</td><td>Home/Destination</td><td></td><td><div align=right></div></td><td>character</td><td><div align=right> 0</div></td></tr>\n",
1877+
"</TABLE>\n",
1878+
"<hr>\n",
1879+
"<TABLE BORDER>\n",
1880+
"<tr><td>Variable</td><td>Levels</td></tr>\n",
1881+
"<tr><td><a name=\"pclass\">pclass</a></td><td>1st</td></tr>\n",
1882+
"<tr><td></td><td>2nd</td></tr>\n",
1883+
"<tr><td></td><td>3rd</td></tr>\n",
1884+
"<tr><td><a name=\"sex\">sex</a></td><td>female</td></tr>\n",
1885+
"<tr><td></td><td>male</td></tr>\n",
1886+
"<tr><td><a name=\"cabin\">cabin</a></td><td></td></tr>\n",
1887+
"<tr><td></td><td>A10</td></tr>\n",
1888+
"<tr><td></td><td>A11</td></tr>\n",
1889+
"<tr><td></td><td>A14</td></tr>\n",
1890+
"<tr><td></td><td>A16</td></tr>\n",
1891+
"<tr><td></td><td>A18</td></tr>\n",
1892+
"<tr><td></td><td>A19</td></tr>\n",
1893+
"<tr><td></td><td>A20</td></tr>\n",
1894+
"<tr><td></td><td>A21</td></tr>\n",
1895+
"<tr><td></td><td>A23</td></tr>\n",
1896+
"<tr><td></td><td>A24</td></tr>\n",
1897+
"<tr><td></td><td>A26</td></tr>\n",
1898+
"<tr><td></td><td>A29</td></tr>\n",
1899+
"<tr><td></td><td>A31</td></tr>\n",
1900+
"<tr><td></td><td>A32</td></tr>\n",
1901+
"<tr><td></td><td>A34</td></tr>\n",
1902+
"<tr><td></td><td>A36</td></tr>\n",
1903+
"<tr><td></td><td>A5</td></tr>\n",
1904+
"<tr><td></td><td>A6</td></tr>\n",
1905+
"<tr><td></td><td>A7</td></tr>\n",
1906+
"<tr><td></td><td>A9</td></tr>\n",
1907+
"<tr><td></td><td>B10</td></tr>\n",
1908+
"<tr><td></td><td>B101</td></tr>\n",
1909+
"<tr><td></td><td>B102</td></tr>\n",
1910+
"<tr><td></td><td>B11</td></tr>\n",
1911+
"<tr><td></td><td>B18</td></tr>\n",
1912+
"<tr><td></td><td>B19</td></tr>\n",
1913+
"<tr><td></td><td>B20</td></tr>\n",
1914+
"<tr><td></td><td>B22</td></tr>\n",
1915+
"<tr><td></td><td>B24</td></tr>\n",
1916+
"<tr><td></td><td>B26</td></tr>\n",
1917+
"<tr><td></td><td>B28</td></tr>\n",
1918+
"<tr><td></td><td>B3</td></tr>\n",
1919+
"<tr><td></td><td>B30</td></tr>\n",
1920+
"<tr><td></td><td>B35</td></tr>\n",
1921+
"<tr><td></td><td>B36</td></tr>\n",
1922+
"<tr><td></td><td>B37</td></tr>\n",
1923+
"<tr><td></td><td>B38</td></tr>\n",
1924+
"<tr><td></td><td>B39</td></tr>\n",
1925+
"<tr><td></td><td>B4</td></tr>\n",
1926+
"<tr><td></td><td>B41</td></tr>\n",
1927+
"<tr><td></td><td>B42</td></tr>\n",
1928+
"<tr><td></td><td>B45</td></tr>\n",
1929+
"<tr><td></td><td>B49</td></tr>\n",
1930+
"<tr><td></td><td>B5</td></tr>\n",
1931+
"<tr><td></td><td>B50</td></tr>\n",
1932+
"<tr><td></td><td>B51 B53 B55</td></tr>\n",
1933+
"<tr><td></td><td>B52 B54 B56</td></tr>\n",
1934+
"<tr><td></td><td>B57 B59 B63 B66</td></tr>\n",
1935+
"<tr><td></td><td>B58 B60</td></tr>\n",
1936+
"<tr><td></td><td>B61</td></tr>\n",
1937+
"<tr><td></td><td>B69</td></tr>\n",
1938+
"<tr><td></td><td>B71</td></tr>\n",
1939+
"<tr><td></td><td>B73</td></tr>\n",
1940+
"<tr><td></td><td>B77</td></tr>\n",
1941+
"<tr><td></td><td>B78</td></tr>\n",
1942+
"<tr><td></td><td>B79</td></tr>\n",
1943+
"<tr><td></td><td>B80</td></tr>\n",
1944+
"<tr><td></td><td>B82 B84</td></tr>\n",
1945+
"<tr><td></td><td>B86</td></tr>\n",
1946+
"<tr><td></td><td>B94</td></tr>\n",
1947+
"<tr><td></td><td>B96 B98</td></tr>\n",
1948+
"<tr><td></td><td>C101</td></tr>\n",
1949+
"<tr><td></td><td>C103</td></tr>\n",
1950+
"<tr><td></td><td>C104</td></tr>\n",
1951+
"<tr><td></td><td>C105</td></tr>\n",
1952+
"<tr><td></td><td>C106</td></tr>\n",
1953+
"<tr><td></td><td>C110</td></tr>\n",
1954+
"<tr><td></td><td>C111</td></tr>\n",
1955+
"<tr><td></td><td>C116</td></tr>\n",
1956+
"<tr><td></td><td>C118</td></tr>\n",
1957+
"<tr><td></td><td>C123</td></tr>\n",
1958+
"<tr><td></td><td>C124</td></tr>\n",
1959+
"<tr><td></td><td>C125</td></tr>\n",
1960+
"<tr><td></td><td>C126</td></tr>\n",
1961+
"<tr><td></td><td>C128</td></tr>\n",
1962+
"<tr><td></td><td>C130</td></tr>\n",
1963+
"<tr><td></td><td>C132</td></tr>\n",
1964+
"<tr><td></td><td>C148</td></tr>\n",
1965+
"<tr><td></td><td>C2</td></tr>\n",
1966+
"<tr><td></td><td>C22 C26</td></tr>\n",
1967+
"<tr><td></td><td>C23 C25 C27</td></tr>\n",
1968+
"<tr><td></td><td>C28</td></tr>\n",
1969+
"<tr><td></td><td>C30</td></tr>\n",
1970+
"<tr><td></td><td>C31</td></tr>\n",
1971+
"<tr><td></td><td>C32</td></tr>\n",
1972+
"<tr><td></td><td>C39</td></tr>\n",
1973+
"<tr><td></td><td>C45</td></tr>\n",
1974+
"<tr><td></td><td>C46</td></tr>\n",
1975+
"<tr><td></td><td>C47</td></tr>\n",
1976+
"<tr><td></td><td>C49</td></tr>\n",
1977+
"<tr><td></td><td>C50</td></tr>\n",
1978+
"<tr><td></td><td>C51</td></tr>\n",
1979+
"<tr><td></td><td>C52</td></tr>\n",
1980+
"<tr><td></td><td>C53</td></tr>\n",
1981+
"<tr><td></td><td>C54</td></tr>\n",
1982+
"<tr><td></td><td>C55 C57</td></tr>\n",
1983+
"<tr><td></td><td>C6</td></tr>\n",
1984+
"<tr><td></td><td>C62 C64</td></tr>\n",
1985+
"<tr><td></td><td>C65</td></tr>\n",
1986+
"<tr><td></td><td>C68</td></tr>\n",
1987+
"<tr><td></td><td>C7</td></tr>\n",
1988+
"<tr><td></td><td>C70</td></tr>\n",
1989+
"<tr><td></td><td>C78</td></tr>\n",
1990+
"<tr><td></td><td>C80</td></tr>\n",
1991+
"<tr><td></td><td>C82</td></tr>\n",
1992+
"<tr><td></td><td>C83</td></tr>\n",
1993+
"<tr><td></td><td>C85</td></tr>\n",
1994+
"<tr><td></td><td>C86</td></tr>\n",
1995+
"<tr><td></td><td>C87</td></tr>\n",
1996+
"<tr><td></td><td>C89</td></tr>\n",
1997+
"<tr><td></td><td>C90</td></tr>\n",
1998+
"<tr><td></td><td>C91</td></tr>\n",
1999+
"<tr><td></td><td>C92</td></tr>\n",
2000+
"<tr><td></td><td>C93</td></tr>\n",
2001+
"<tr><td></td><td>C95</td></tr>\n",
2002+
"<tr><td></td><td>C97</td></tr>\n",
2003+
"<tr><td></td><td>C99</td></tr>\n",
2004+
"<tr><td></td><td>D</td></tr>\n",
2005+
"<tr><td></td><td>D10 D12</td></tr>\n",
2006+
"<tr><td></td><td>D11</td></tr>\n",
2007+
"<tr><td></td><td>D15</td></tr>\n",
2008+
"<tr><td></td><td>D17</td></tr>\n",
2009+
"<tr><td></td><td>D19</td></tr>\n",
2010+
"<tr><td></td><td>D20</td></tr>\n",
2011+
"<tr><td></td><td>D21</td></tr>\n",
2012+
"<tr><td></td><td>D22</td></tr>\n",
2013+
"<tr><td></td><td>D26</td></tr>\n",
2014+
"<tr><td></td><td>D28</td></tr>\n",
2015+
"<tr><td></td><td>D30</td></tr>\n",
2016+
"<tr><td></td><td>D33</td></tr>\n",
2017+
"<tr><td></td><td>D34</td></tr>\n",
2018+
"<tr><td></td><td>D35</td></tr>\n",
2019+
"<tr><td></td><td>D36</td></tr>\n",
2020+
"<tr><td></td><td>D37</td></tr>\n",
2021+
"<tr><td></td><td>D38</td></tr>\n",
2022+
"<tr><td></td><td>D40</td></tr>\n",
2023+
"<tr><td></td><td>D43</td></tr>\n",
2024+
"<tr><td></td><td>D45</td></tr>\n",
2025+
"<tr><td></td><td>D46</td></tr>\n",
2026+
"<tr><td></td><td>D47</td></tr>\n",
2027+
"<tr><td></td><td>D48</td></tr>\n",
2028+
"<tr><td></td><td>D49</td></tr>\n",
2029+
"<tr><td></td><td>D50</td></tr>\n",
2030+
"<tr><td></td><td>D56</td></tr>\n",
2031+
"<tr><td></td><td>D6</td></tr>\n",
2032+
"<tr><td></td><td>D7</td></tr>\n",
2033+
"<tr><td></td><td>D9</td></tr>\n",
2034+
"<tr><td></td><td>E10</td></tr>\n",
2035+
"<tr><td></td><td>E101</td></tr>\n",
2036+
"<tr><td></td><td>E12</td></tr>\n",
2037+
"<tr><td></td><td>E121</td></tr>\n",
2038+
"<tr><td></td><td>E17</td></tr>\n",
2039+
"<tr><td></td><td>E24</td></tr>\n",
2040+
"<tr><td></td><td>E25</td></tr>\n",
2041+
"<tr><td></td><td>E31</td></tr>\n",
2042+
"<tr><td></td><td>E33</td></tr>\n",
2043+
"<tr><td></td><td>E34</td></tr>\n",
2044+
"<tr><td></td><td>E36</td></tr>\n",
2045+
"<tr><td></td><td>E38</td></tr>\n",
2046+
"<tr><td></td><td>E39 E41</td></tr>\n",
2047+
"<tr><td></td><td>E40</td></tr>\n",
2048+
"<tr><td></td><td>E44</td></tr>\n",
2049+
"<tr><td></td><td>E45</td></tr>\n",
2050+
"<tr><td></td><td>E46</td></tr>\n",
2051+
"<tr><td></td><td>E49</td></tr>\n",
2052+
"<tr><td></td><td>E50</td></tr>\n",
2053+
"<tr><td></td><td>E52</td></tr>\n",
2054+
"<tr><td></td><td>E58</td></tr>\n",
2055+
"<tr><td></td><td>E60</td></tr>\n",
2056+
"<tr><td></td><td>E63</td></tr>\n",
2057+
"<tr><td></td><td>E67</td></tr>\n",
2058+
"<tr><td></td><td>E68</td></tr>\n",
2059+
"<tr><td></td><td>E77</td></tr>\n",
2060+
"<tr><td></td><td>E8</td></tr>\n",
2061+
"<tr><td></td><td>F</td></tr>\n",
2062+
"<tr><td></td><td>F E46</td></tr>\n",
2063+
"<tr><td></td><td>F E57</td></tr>\n",
2064+
"<tr><td></td><td>F E69</td></tr>\n",
2065+
"<tr><td></td><td>F G63</td></tr>\n",
2066+
"<tr><td></td><td>F G73</td></tr>\n",
2067+
"<tr><td></td><td>F2</td></tr>\n",
2068+
"<tr><td></td><td>F33</td></tr>\n",
2069+
"<tr><td></td><td>F38</td></tr>\n",
2070+
"<tr><td></td><td>F4</td></tr>\n",
2071+
"<tr><td></td><td>G6</td></tr>\n",
2072+
"<tr><td></td><td>T</td></tr>\n",
2073+
"<tr><td><a name=\"embarked\">embarked</a></td><td>Cherbourg</td></tr>\n",
2074+
"<tr><td></td><td>Queenstown</td></tr>\n",
2075+
"<tr><td></td><td>Southampton</td></tr>\n",
2076+
"<tr><td><a name=\"boat\">boat</a></td><td></td></tr>\n",
2077+
"<tr><td></td><td>1</td></tr>\n",
2078+
"<tr><td></td><td>10</td></tr>\n",
2079+
"<tr><td></td><td>11</td></tr>\n",
2080+
"<tr><td></td><td>12</td></tr>\n",
2081+
"<tr><td></td><td>13</td></tr>\n",
2082+
"<tr><td></td><td>13 15</td></tr>\n",
2083+
"<tr><td></td><td>13 15 B</td></tr>\n",
2084+
"<tr><td></td><td>14</td></tr>\n",
2085+
"<tr><td></td><td>15</td></tr>\n",
2086+
"<tr><td></td><td>15 16</td></tr>\n",
2087+
"<tr><td></td><td>16</td></tr>\n",
2088+
"<tr><td></td><td>2</td></tr>\n",
2089+
"<tr><td></td><td>3</td></tr>\n",
2090+
"<tr><td></td><td>4</td></tr>\n",
2091+
"<tr><td></td><td>5</td></tr>\n",
2092+
"<tr><td></td><td>5 7</td></tr>\n",
2093+
"<tr><td></td><td>5 9</td></tr>\n",
2094+
"<tr><td></td><td>6</td></tr>\n",
2095+
"<tr><td></td><td>7</td></tr>\n",
2096+
"<tr><td></td><td>8</td></tr>\n",
2097+
"<tr><td></td><td>8 10</td></tr>\n",
2098+
"<tr><td></td><td>9</td></tr>\n",
2099+
"<tr><td></td><td>A</td></tr>\n",
2100+
"<tr><td></td><td>B</td></tr>\n",
2101+
"<tr><td></td><td>C</td></tr>\n",
2102+
"<tr><td></td><td>C D</td></tr>\n",
2103+
"<tr><td></td><td>D</td></tr>\n",
2104+
"</TABLE>\n",
2105+
"<hr>\n"
2106+
],
2107+
"metadata": {},
2108+
"output_type": "pyout",
2109+
"prompt_number": 202,
2110+
"text": [
2111+
"<IPython.core.display.HTML at 0x125cd3fd0>"
2112+
]
2113+
}
2114+
],
2115+
"prompt_number": 202
18582116
},
18592117
{
18602118
"cell_type": "markdown",
@@ -1864,9 +2122,64 @@
18642122
"\n",
18652123
"1. Use the `groupby` method to calculate the proportion of passengers that survived by sex.\n",
18662124
"2. Calculate the same proportion, but by class and sex.\n",
1867-
"3. Create age categories: children (under 14 years), adolescents (14-20), adult (21-64), and senior(65+), and calculate survival proportions by age, class and sex."
2125+
"3. Create age categories: children (under 14 years), adolescents (14-20), adult (21-64), and senior(65+), and calculate survival proportions by age category, class and sex."
18682126
]
18692127
},
2128+
{
2129+
"cell_type": "code",
2130+
"collapsed": false,
2131+
"input": [
2132+
"titanic = pd.read_excel(\"data/titanic.xls\", \"titanic\")"
2133+
],
2134+
"language": "python",
2135+
"metadata": {},
2136+
"outputs": [],
2137+
"prompt_number": 203
2138+
},
2139+
{
2140+
"cell_type": "code",
2141+
"collapsed": false,
2142+
"input": [
2143+
"titanic['agecat'] = pd.cut(titanic.age, [0, 13, 20, 64, 100], labels)\n",
2144+
"titanic.groupby(['agecat', 'pclass','sex'])['survived'].mean()"
2145+
],
2146+
"language": "python",
2147+
"metadata": {},
2148+
"outputs": [
2149+
{
2150+
"metadata": {},
2151+
"output_type": "pyout",
2152+
"prompt_number": 209,
2153+
"text": [
2154+
"agecat pclass sex \n",
2155+
"(0, 13] 1 female 0.000000\n",
2156+
" male 1.000000\n",
2157+
" 2 female 1.000000\n",
2158+
" male 1.000000\n",
2159+
" 3 female 0.483871\n",
2160+
" male 0.324324\n",
2161+
"(13, 20] 1 female 1.000000\n",
2162+
" male 0.200000\n",
2163+
" 2 female 0.923077\n",
2164+
" male 0.117647\n",
2165+
" 3 female 0.542857\n",
2166+
" male 0.125000\n",
2167+
"(20, 64] 1 female 0.965517\n",
2168+
" male 0.343284\n",
2169+
" 2 female 0.868421\n",
2170+
" male 0.078125\n",
2171+
" 3 female 0.441860\n",
2172+
" male 0.159184\n",
2173+
"(64, 100] 1 female 1.000000\n",
2174+
" male 0.142857\n",
2175+
" 2 male 0.000000\n",
2176+
" 3 male 0.000000\n",
2177+
"Name: survived, dtype: float64"
2178+
]
2179+
}
2180+
],
2181+
"prompt_number": 209
2182+
},
18702183
{
18712184
"cell_type": "code",
18722185
"collapsed": false,

0 commit comments

Comments
 (0)