Skip to content

Instantly share code, notes, and snippets.

@self-methods
Created January 11, 2021 18:20
Show Gist options
  • Save self-methods/709f4aa5a9a19d1fef9b51a23f003fa4 to your computer and use it in GitHub Desktop.
Save self-methods/709f4aa5a9a19d1fef9b51a23f003fa4 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import seaborn as sns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## pivot()\n",
"DataFrame.pivot(index=None, columns=None, value=None)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>passengers</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1949</td>\n",
" <td>Jan</td>\n",
" <td>112</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1949</td>\n",
" <td>Feb</td>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1949</td>\n",
" <td>Mar</td>\n",
" <td>132</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1949</td>\n",
" <td>Apr</td>\n",
" <td>129</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1949</td>\n",
" <td>May</td>\n",
" <td>121</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" year month passengers\n",
"0 1949 Jan 112\n",
"1 1949 Feb 118\n",
"2 1949 Mar 132\n",
"3 1949 Apr 129\n",
"4 1949 May 121"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flights = sns.load_dataset(\"flights\")\n",
"flights.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 基本形"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>month</th>\n",
" <th>Jan</th>\n",
" <th>Feb</th>\n",
" <th>Mar</th>\n",
" <th>Apr</th>\n",
" <th>May</th>\n",
" <th>Jun</th>\n",
" <th>Jul</th>\n",
" <th>Aug</th>\n",
" <th>Sep</th>\n",
" <th>Oct</th>\n",
" <th>Nov</th>\n",
" <th>Dec</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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1949</th>\n",
" <td>112</td>\n",
" <td>118</td>\n",
" <td>132</td>\n",
" <td>129</td>\n",
" <td>121</td>\n",
" <td>135</td>\n",
" <td>148</td>\n",
" <td>148</td>\n",
" <td>136</td>\n",
" <td>119</td>\n",
" <td>104</td>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1950</th>\n",
" <td>115</td>\n",
" <td>126</td>\n",
" <td>141</td>\n",
" <td>135</td>\n",
" <td>125</td>\n",
" <td>149</td>\n",
" <td>170</td>\n",
" <td>170</td>\n",
" <td>158</td>\n",
" <td>133</td>\n",
" <td>114</td>\n",
" <td>140</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1951</th>\n",
" <td>145</td>\n",
" <td>150</td>\n",
" <td>178</td>\n",
" <td>163</td>\n",
" <td>172</td>\n",
" <td>178</td>\n",
" <td>199</td>\n",
" <td>199</td>\n",
" <td>184</td>\n",
" <td>162</td>\n",
" <td>146</td>\n",
" <td>166</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1952</th>\n",
" <td>171</td>\n",
" <td>180</td>\n",
" <td>193</td>\n",
" <td>181</td>\n",
" <td>183</td>\n",
" <td>218</td>\n",
" <td>230</td>\n",
" <td>242</td>\n",
" <td>209</td>\n",
" <td>191</td>\n",
" <td>172</td>\n",
" <td>194</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1953</th>\n",
" <td>196</td>\n",
" <td>196</td>\n",
" <td>236</td>\n",
" <td>235</td>\n",
" <td>229</td>\n",
" <td>243</td>\n",
" <td>264</td>\n",
" <td>272</td>\n",
" <td>237</td>\n",
" <td>211</td>\n",
" <td>180</td>\n",
" <td>201</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1954</th>\n",
" <td>204</td>\n",
" <td>188</td>\n",
" <td>235</td>\n",
" <td>227</td>\n",
" <td>234</td>\n",
" <td>264</td>\n",
" <td>302</td>\n",
" <td>293</td>\n",
" <td>259</td>\n",
" <td>229</td>\n",
" <td>203</td>\n",
" <td>229</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1955</th>\n",
" <td>242</td>\n",
" <td>233</td>\n",
" <td>267</td>\n",
" <td>269</td>\n",
" <td>270</td>\n",
" <td>315</td>\n",
" <td>364</td>\n",
" <td>347</td>\n",
" <td>312</td>\n",
" <td>274</td>\n",
" <td>237</td>\n",
" <td>278</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1956</th>\n",
" <td>284</td>\n",
" <td>277</td>\n",
" <td>317</td>\n",
" <td>313</td>\n",
" <td>318</td>\n",
" <td>374</td>\n",
" <td>413</td>\n",
" <td>405</td>\n",
" <td>355</td>\n",
" <td>306</td>\n",
" <td>271</td>\n",
" <td>306</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1957</th>\n",
" <td>315</td>\n",
" <td>301</td>\n",
" <td>356</td>\n",
" <td>348</td>\n",
" <td>355</td>\n",
" <td>422</td>\n",
" <td>465</td>\n",
" <td>467</td>\n",
" <td>404</td>\n",
" <td>347</td>\n",
" <td>305</td>\n",
" <td>336</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1958</th>\n",
" <td>340</td>\n",
" <td>318</td>\n",
" <td>362</td>\n",
" <td>348</td>\n",
" <td>363</td>\n",
" <td>435</td>\n",
" <td>491</td>\n",
" <td>505</td>\n",
" <td>404</td>\n",
" <td>359</td>\n",
" <td>310</td>\n",
" <td>337</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1959</th>\n",
" <td>360</td>\n",
" <td>342</td>\n",
" <td>406</td>\n",
" <td>396</td>\n",
" <td>420</td>\n",
" <td>472</td>\n",
" <td>548</td>\n",
" <td>559</td>\n",
" <td>463</td>\n",
" <td>407</td>\n",
" <td>362</td>\n",
" <td>405</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1960</th>\n",
" <td>417</td>\n",
" <td>391</td>\n",
" <td>419</td>\n",
" <td>461</td>\n",
" <td>472</td>\n",
" <td>535</td>\n",
" <td>622</td>\n",
" <td>606</td>\n",
" <td>508</td>\n",
" <td>461</td>\n",
" <td>390</td>\n",
" <td>432</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"month Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\n",
"year \n",
"1949 112 118 132 129 121 135 148 148 136 119 104 118\n",
"1950 115 126 141 135 125 149 170 170 158 133 114 140\n",
"1951 145 150 178 163 172 178 199 199 184 162 146 166\n",
"1952 171 180 193 181 183 218 230 242 209 191 172 194\n",
"1953 196 196 236 235 229 243 264 272 237 211 180 201\n",
"1954 204 188 235 227 234 264 302 293 259 229 203 229\n",
"1955 242 233 267 269 270 315 364 347 312 274 237 278\n",
"1956 284 277 317 313 318 374 413 405 355 306 271 306\n",
"1957 315 301 356 348 355 422 465 467 404 347 305 336\n",
"1958 340 318 362 348 363 435 491 505 404 359 310 337\n",
"1959 360 342 406 396 420 472 548 559 463 407 362 405\n",
"1960 417 391 419 461 472 535 622 606 508 461 390 432"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flights_p = flights.pivot(index=\"year\", columns=\"month\", values=[\"passengers\"])\n",
"# もしくは\n",
"flights_p = flights.pivot(\"year\", \"month\",\"passengers\")\n",
"flights_p"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<AxesSubplot:xlabel='month', ylabel='year'>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.heatmap(flights_p)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 複数表示"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>total_bill</th>\n",
" <th>tip</th>\n",
" <th>sex</th>\n",
" <th>smoker</th>\n",
" <th>day</th>\n",
" <th>time</th>\n",
" <th>size</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>16.99</td>\n",
" <td>1.01</td>\n",
" <td>Female</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>10.34</td>\n",
" <td>1.66</td>\n",
" <td>Male</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>21.01</td>\n",
" <td>3.50</td>\n",
" <td>Male</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>23.68</td>\n",
" <td>3.31</td>\n",
" <td>Male</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>24.59</td>\n",
" <td>3.61</td>\n",
" <td>Female</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>4</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" total_bill tip sex smoker day time size\n",
"0 16.99 1.01 Female No Sun Dinner 2\n",
"1 10.34 1.66 Male No Sun Dinner 3\n",
"2 21.01 3.50 Male No Sun Dinner 3\n",
"3 23.68 3.31 Male No Sun Dinner 2\n",
"4 24.59 3.61 Female No Sun Dinner 4"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tips = sns.load_dataset(\"tips\")\n",
"tips.head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"ename": "ValueError",
"evalue": "Index contains duplicate entries, cannot reshape",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-6-3b5f49aa9e53>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mtips\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtips\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpivot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"day\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"time\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[1;31m# 重複するラベルがあるとエラーが発生する\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\pandas\\core\\frame.py\u001b[0m in \u001b[0;36mpivot\u001b[1;34m(self, index, columns, values)\u001b[0m\n\u001b[0;32m 6672\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mpandas\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcore\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpivot\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mpivot\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6673\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 6674\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mpivot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvalues\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 6675\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 6676\u001b[0m _shared_docs[\n",
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\pandas\\core\\reshape\\pivot.py\u001b[0m in \u001b[0;36mpivot\u001b[1;34m(data, index, columns, values)\u001b[0m\n\u001b[0;32m 475\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 476\u001b[0m \u001b[0mindexed\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_constructor_sliced\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mvalues\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_values\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 477\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mindexed\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munstack\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcolumns\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 478\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 479\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\pandas\\core\\frame.py\u001b[0m in \u001b[0;36munstack\u001b[1;34m(self, level, fill_value)\u001b[0m\n\u001b[0;32m 7140\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mpandas\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcore\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreshape\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0munstack\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7141\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m-> 7142\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0munstack\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlevel\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfill_value\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 7143\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7144\u001b[0m @Appender(\n",
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\pandas\\core\\reshape\\reshape.py\u001b[0m in \u001b[0;36munstack\u001b[1;34m(obj, level, fill_value)\u001b[0m\n\u001b[0;32m 416\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mDataFrame\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 417\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mMultiIndex\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 418\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0m_unstack_frame\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlevel\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfill_value\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mfill_value\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 419\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 420\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mobj\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mT\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstack\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdropna\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\pandas\\core\\reshape\\reshape.py\u001b[0m in \u001b[0;36m_unstack_frame\u001b[1;34m(obj, level, fill_value)\u001b[0m\n\u001b[0;32m 432\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_unstack_frame\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlevel\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfill_value\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 433\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mobj\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_can_fast_transpose\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 434\u001b[1;33m \u001b[0munstacker\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_Unstacker\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mobj\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlevel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mlevel\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 435\u001b[0m \u001b[0mmgr\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mobj\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_mgr\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munstack\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0munstacker\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfill_value\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mfill_value\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 436\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mobj\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_constructor\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmgr\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\pandas\\core\\reshape\\reshape.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, index, level, constructor)\u001b[0m\n\u001b[0;32m 118\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Unstacked DataFrame is too big, causing int32 overflow\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 119\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 120\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_make_selectors\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 121\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 122\u001b[0m \u001b[1;33m@\u001b[0m\u001b[0mcache_readonly\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\pandas\\core\\reshape\\reshape.py\u001b[0m in \u001b[0;36m_make_selectors\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 167\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 168\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mmask\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msum\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 169\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Index contains duplicate entries, cannot reshape\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 170\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 171\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgroup_index\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcomp_index\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mValueError\u001b[0m: Index contains duplicate entries, cannot reshape"
]
}
],
"source": [
"tips = tips.pivot(\"day\", \"time\")\n",
"# 重複するラベルがあるとエラーが発生する"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>day</th>\n",
" <th>time</th>\n",
" <th>total_bill</th>\n",
" <th>tip</th>\n",
" <th>size</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Thur</td>\n",
" <td>Lunch</td>\n",
" <td>1077.55</td>\n",
" <td>168.83</td>\n",
" <td>150.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Thur</td>\n",
" <td>Dinner</td>\n",
" <td>18.78</td>\n",
" <td>3.00</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Fri</td>\n",
" <td>Lunch</td>\n",
" <td>89.92</td>\n",
" <td>16.68</td>\n",
" <td>14.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Fri</td>\n",
" <td>Dinner</td>\n",
" <td>235.96</td>\n",
" <td>35.28</td>\n",
" <td>26.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Sat</td>\n",
" <td>Lunch</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Sat</td>\n",
" <td>Dinner</td>\n",
" <td>1778.40</td>\n",
" <td>260.40</td>\n",
" <td>219.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Sun</td>\n",
" <td>Lunch</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>1627.16</td>\n",
" <td>247.39</td>\n",
" <td>216.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" day time total_bill tip size\n",
"0 Thur Lunch 1077.55 168.83 150.0\n",
"1 Thur Dinner 18.78 3.00 2.0\n",
"2 Fri Lunch 89.92 16.68 14.0\n",
"3 Fri Dinner 235.96 35.28 26.0\n",
"4 Sat Lunch NaN NaN NaN\n",
"5 Sat Dinner 1778.40 260.40 219.0\n",
"6 Sun Lunch NaN NaN NaN\n",
"7 Sun Dinner 1627.16 247.39 216.0"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tips_g = tips.groupby([\"day\", \"time\"], as_index=False).sum()\n",
"tips_g"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th colspan=\"2\" halign=\"left\">total_bill</th>\n",
" <th colspan=\"2\" halign=\"left\">tip</th>\n",
" <th colspan=\"2\" halign=\"left\">size</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th>Lunch</th>\n",
" <th>Dinner</th>\n",
" <th>Lunch</th>\n",
" <th>Dinner</th>\n",
" <th>Lunch</th>\n",
" <th>Dinner</th>\n",
" </tr>\n",
" <tr>\n",
" <th>day</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>Thur</th>\n",
" <td>1077.55</td>\n",
" <td>18.78</td>\n",
" <td>168.83</td>\n",
" <td>3.00</td>\n",
" <td>150.0</td>\n",
" <td>2.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fri</th>\n",
" <td>89.92</td>\n",
" <td>235.96</td>\n",
" <td>16.68</td>\n",
" <td>35.28</td>\n",
" <td>14.0</td>\n",
" <td>26.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sat</th>\n",
" <td>NaN</td>\n",
" <td>1778.40</td>\n",
" <td>NaN</td>\n",
" <td>260.40</td>\n",
" <td>NaN</td>\n",
" <td>219.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sun</th>\n",
" <td>NaN</td>\n",
" <td>1627.16</td>\n",
" <td>NaN</td>\n",
" <td>247.39</td>\n",
" <td>NaN</td>\n",
" <td>216.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" total_bill tip size \n",
"time Lunch Dinner Lunch Dinner Lunch Dinner\n",
"day \n",
"Thur 1077.55 18.78 168.83 3.00 150.0 2.0\n",
"Fri 89.92 235.96 16.68 35.28 14.0 26.0\n",
"Sat NaN 1778.40 NaN 260.40 NaN 219.0\n",
"Sun NaN 1627.16 NaN 247.39 NaN 216.0"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tips_p = tips_g.pivot(\"day\",\"time\")\n",
"tips_p"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 特定カラムの指定"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"tips_p2 = tips_g.pivot(\"day\",\"time\", values=[\"total_bill\", \"size\"])\n",
"tips_p2"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sns.heatmap(data=tips_p2, annot=True, fmt=\"g\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## pivot_table()\n",
"DataFrame.pivot_table()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>month</th>\n",
" <th>passengers</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1949</td>\n",
" <td>Jan</td>\n",
" <td>112</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1949</td>\n",
" <td>Feb</td>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1949</td>\n",
" <td>Mar</td>\n",
" <td>132</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1949</td>\n",
" <td>Apr</td>\n",
" <td>129</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1949</td>\n",
" <td>May</td>\n",
" <td>121</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" year month passengers\n",
"0 1949 Jan 112\n",
"1 1949 Feb 118\n",
"2 1949 Mar 132\n",
"3 1949 Apr 129\n",
"4 1949 May 121"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flights.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 基本形"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>month</th>\n",
" <th>Jan</th>\n",
" <th>Feb</th>\n",
" <th>Mar</th>\n",
" <th>Apr</th>\n",
" <th>May</th>\n",
" <th>Jun</th>\n",
" <th>Jul</th>\n",
" <th>Aug</th>\n",
" <th>Sep</th>\n",
" <th>Oct</th>\n",
" <th>Nov</th>\n",
" <th>Dec</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",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1949</th>\n",
" <td>112</td>\n",
" <td>118</td>\n",
" <td>132</td>\n",
" <td>129</td>\n",
" <td>121</td>\n",
" <td>135</td>\n",
" <td>148</td>\n",
" <td>148</td>\n",
" <td>136</td>\n",
" <td>119</td>\n",
" <td>104</td>\n",
" <td>118</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1950</th>\n",
" <td>115</td>\n",
" <td>126</td>\n",
" <td>141</td>\n",
" <td>135</td>\n",
" <td>125</td>\n",
" <td>149</td>\n",
" <td>170</td>\n",
" <td>170</td>\n",
" <td>158</td>\n",
" <td>133</td>\n",
" <td>114</td>\n",
" <td>140</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1951</th>\n",
" <td>145</td>\n",
" <td>150</td>\n",
" <td>178</td>\n",
" <td>163</td>\n",
" <td>172</td>\n",
" <td>178</td>\n",
" <td>199</td>\n",
" <td>199</td>\n",
" <td>184</td>\n",
" <td>162</td>\n",
" <td>146</td>\n",
" <td>166</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1952</th>\n",
" <td>171</td>\n",
" <td>180</td>\n",
" <td>193</td>\n",
" <td>181</td>\n",
" <td>183</td>\n",
" <td>218</td>\n",
" <td>230</td>\n",
" <td>242</td>\n",
" <td>209</td>\n",
" <td>191</td>\n",
" <td>172</td>\n",
" <td>194</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1953</th>\n",
" <td>196</td>\n",
" <td>196</td>\n",
" <td>236</td>\n",
" <td>235</td>\n",
" <td>229</td>\n",
" <td>243</td>\n",
" <td>264</td>\n",
" <td>272</td>\n",
" <td>237</td>\n",
" <td>211</td>\n",
" <td>180</td>\n",
" <td>201</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1954</th>\n",
" <td>204</td>\n",
" <td>188</td>\n",
" <td>235</td>\n",
" <td>227</td>\n",
" <td>234</td>\n",
" <td>264</td>\n",
" <td>302</td>\n",
" <td>293</td>\n",
" <td>259</td>\n",
" <td>229</td>\n",
" <td>203</td>\n",
" <td>229</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1955</th>\n",
" <td>242</td>\n",
" <td>233</td>\n",
" <td>267</td>\n",
" <td>269</td>\n",
" <td>270</td>\n",
" <td>315</td>\n",
" <td>364</td>\n",
" <td>347</td>\n",
" <td>312</td>\n",
" <td>274</td>\n",
" <td>237</td>\n",
" <td>278</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1956</th>\n",
" <td>284</td>\n",
" <td>277</td>\n",
" <td>317</td>\n",
" <td>313</td>\n",
" <td>318</td>\n",
" <td>374</td>\n",
" <td>413</td>\n",
" <td>405</td>\n",
" <td>355</td>\n",
" <td>306</td>\n",
" <td>271</td>\n",
" <td>306</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1957</th>\n",
" <td>315</td>\n",
" <td>301</td>\n",
" <td>356</td>\n",
" <td>348</td>\n",
" <td>355</td>\n",
" <td>422</td>\n",
" <td>465</td>\n",
" <td>467</td>\n",
" <td>404</td>\n",
" <td>347</td>\n",
" <td>305</td>\n",
" <td>336</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1958</th>\n",
" <td>340</td>\n",
" <td>318</td>\n",
" <td>362</td>\n",
" <td>348</td>\n",
" <td>363</td>\n",
" <td>435</td>\n",
" <td>491</td>\n",
" <td>505</td>\n",
" <td>404</td>\n",
" <td>359</td>\n",
" <td>310</td>\n",
" <td>337</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1959</th>\n",
" <td>360</td>\n",
" <td>342</td>\n",
" <td>406</td>\n",
" <td>396</td>\n",
" <td>420</td>\n",
" <td>472</td>\n",
" <td>548</td>\n",
" <td>559</td>\n",
" <td>463</td>\n",
" <td>407</td>\n",
" <td>362</td>\n",
" <td>405</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1960</th>\n",
" <td>417</td>\n",
" <td>391</td>\n",
" <td>419</td>\n",
" <td>461</td>\n",
" <td>472</td>\n",
" <td>535</td>\n",
" <td>622</td>\n",
" <td>606</td>\n",
" <td>508</td>\n",
" <td>461</td>\n",
" <td>390</td>\n",
" <td>432</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"month Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\n",
"year \n",
"1949 112 118 132 129 121 135 148 148 136 119 104 118\n",
"1950 115 126 141 135 125 149 170 170 158 133 114 140\n",
"1951 145 150 178 163 172 178 199 199 184 162 146 166\n",
"1952 171 180 193 181 183 218 230 242 209 191 172 194\n",
"1953 196 196 236 235 229 243 264 272 237 211 180 201\n",
"1954 204 188 235 227 234 264 302 293 259 229 203 229\n",
"1955 242 233 267 269 270 315 364 347 312 274 237 278\n",
"1956 284 277 317 313 318 374 413 405 355 306 271 306\n",
"1957 315 301 356 348 355 422 465 467 404 347 305 336\n",
"1958 340 318 362 348 363 435 491 505 404 359 310 337\n",
"1959 360 342 406 396 420 472 548 559 463 407 362 405\n",
"1960 417 391 419 461 472 535 622 606 508 461 390 432"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flight_pt = flights.pivot_table(index=\"year\", columns=\"month\", values=\"passengers\")\n",
"flight_pt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 複数リストの指定"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>total_bill</th>\n",
" <th>tip</th>\n",
" <th>sex</th>\n",
" <th>smoker</th>\n",
" <th>day</th>\n",
" <th>time</th>\n",
" <th>size</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>16.99</td>\n",
" <td>1.01</td>\n",
" <td>Female</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>10.34</td>\n",
" <td>1.66</td>\n",
" <td>Male</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>21.01</td>\n",
" <td>3.50</td>\n",
" <td>Male</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>23.68</td>\n",
" <td>3.31</td>\n",
" <td>Male</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>24.59</td>\n",
" <td>3.61</td>\n",
" <td>Female</td>\n",
" <td>No</td>\n",
" <td>Sun</td>\n",
" <td>Dinner</td>\n",
" <td>4</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" total_bill tip sex smoker day time size\n",
"0 16.99 1.01 Female No Sun Dinner 2\n",
"1 10.34 1.66 Male No Sun Dinner 3\n",
"2 21.01 3.50 Male No Sun Dinner 3\n",
"3 23.68 3.31 Male No Sun Dinner 2\n",
"4 24.59 3.61 Female No Sun Dinner 4"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tips.head()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th>sex</th>\n",
" <th colspan=\"2\" halign=\"left\">Male</th>\n",
" <th colspan=\"2\" halign=\"left\">Female</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>smoker</th>\n",
" <th>Yes</th>\n",
" <th>No</th>\n",
" <th>Yes</th>\n",
" <th>No</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th>day</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Lunch</th>\n",
" <th>Thur</th>\n",
" <td>19.171000</td>\n",
" <td>18.486500</td>\n",
" <td>19.218571</td>\n",
" <td>15.899167</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fri</th>\n",
" <td>11.386667</td>\n",
" <td>NaN</td>\n",
" <td>13.260000</td>\n",
" <td>15.980000</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Dinner</th>\n",
" <th>Thur</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>18.780000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fri</th>\n",
" <td>25.892000</td>\n",
" <td>17.475000</td>\n",
" <td>12.200000</td>\n",
" <td>22.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sat</th>\n",
" <td>21.837778</td>\n",
" <td>19.929063</td>\n",
" <td>20.266667</td>\n",
" <td>19.003846</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sun</th>\n",
" <td>26.141333</td>\n",
" <td>20.403256</td>\n",
" <td>16.540000</td>\n",
" <td>20.824286</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"sex Male Female \n",
"smoker Yes No Yes No\n",
"time day \n",
"Lunch Thur 19.171000 18.486500 19.218571 15.899167\n",
" Fri 11.386667 NaN 13.260000 15.980000\n",
"Dinner Thur NaN NaN NaN 18.780000\n",
" Fri 25.892000 17.475000 12.200000 22.750000\n",
" Sat 21.837778 19.929063 20.266667 19.003846\n",
" Sun 26.141333 20.403256 16.540000 20.824286"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tips_pt = tips.pivot_table(index=[\"time\", \"day\"], \n",
" columns=[\"sex\",\"smoker\"], \n",
" values=\"total_bill\")\n",
"tips_pt"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th>sex</th>\n",
" <th colspan=\"2\" halign=\"left\">Male</th>\n",
" <th colspan=\"2\" halign=\"left\">Female</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>smoker</th>\n",
" <th>Yes</th>\n",
" <th>No</th>\n",
" <th>Yes</th>\n",
" <th>No</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th>day</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">Lunch</th>\n",
" <th>Thur</th>\n",
" <td>19.171000</td>\n",
" <td>18.486500</td>\n",
" <td>19.218571</td>\n",
" <td>15.899167</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fri</th>\n",
" <td>11.386667</td>\n",
" <td>0.000000</td>\n",
" <td>13.260000</td>\n",
" <td>15.980000</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Dinner</th>\n",
" <th>Thur</th>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>18.780000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fri</th>\n",
" <td>25.892000</td>\n",
" <td>17.475000</td>\n",
" <td>12.200000</td>\n",
" <td>22.750000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sat</th>\n",
" <td>21.837778</td>\n",
" <td>19.929063</td>\n",
" <td>20.266667</td>\n",
" <td>19.003846</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sun</th>\n",
" <td>26.141333</td>\n",
" <td>20.403256</td>\n",
" <td>16.540000</td>\n",
" <td>20.824286</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"sex Male Female \n",
"smoker Yes No Yes No\n",
"time day \n",
"Lunch Thur 19.171000 18.486500 19.218571 15.899167\n",
" Fri 11.386667 0.000000 13.260000 15.980000\n",
"Dinner Thur 0.000000 0.000000 0.000000 18.780000\n",
" Fri 25.892000 17.475000 12.200000 22.750000\n",
" Sat 21.837778 19.929063 20.266667 19.003846\n",
" Sun 26.141333 20.403256 16.540000 20.824286"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tips_pt2 = tips.pivot_table(fill_value=0, \n",
" index=[\"time\", \"day\"], \n",
" columns=[\"sex\",\"smoker\"], \n",
" values=\"total_bill\")\n",
"tips_pt2"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th></th>\n",
" <th colspan=\"3\" halign=\"left\">size</th>\n",
" <th colspan=\"3\" halign=\"left\">total_bill</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>sex</th>\n",
" <th>Male</th>\n",
" <th>Female</th>\n",
" <th>All</th>\n",
" <th>Male</th>\n",
" <th>Female</th>\n",
" <th>All</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th>day</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=\"2\" valign=\"top\">Lunch</th>\n",
" <th>Thur</th>\n",
" <td>2.433333</td>\n",
" <td>2.483871</td>\n",
" <td>2.459016</td>\n",
" <td>18.714667</td>\n",
" <td>16.648710</td>\n",
" <td>17.664754</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fri</th>\n",
" <td>1.666667</td>\n",
" <td>2.250000</td>\n",
" <td>2.000000</td>\n",
" <td>11.386667</td>\n",
" <td>13.940000</td>\n",
" <td>12.845714</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Dinner</th>\n",
" <th>Thur</th>\n",
" <td>0.000000</td>\n",
" <td>2.000000</td>\n",
" <td>2.000000</td>\n",
" <td>0.000000</td>\n",
" <td>18.780000</td>\n",
" <td>18.780000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fri</th>\n",
" <td>2.285714</td>\n",
" <td>2.000000</td>\n",
" <td>2.166667</td>\n",
" <td>23.487143</td>\n",
" <td>14.310000</td>\n",
" <td>19.663333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sat</th>\n",
" <td>2.644068</td>\n",
" <td>2.250000</td>\n",
" <td>2.517241</td>\n",
" <td>20.802542</td>\n",
" <td>19.680357</td>\n",
" <td>20.441379</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sun</th>\n",
" <td>2.810345</td>\n",
" <td>2.944444</td>\n",
" <td>2.842105</td>\n",
" <td>21.887241</td>\n",
" <td>19.872222</td>\n",
" <td>21.410000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <th></th>\n",
" <td>2.630573</td>\n",
" <td>2.459770</td>\n",
" <td>2.569672</td>\n",
" <td>20.744076</td>\n",
" <td>18.056897</td>\n",
" <td>19.785943</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" size total_bill \n",
"sex Male Female All Male Female All\n",
"time day \n",
"Lunch Thur 2.433333 2.483871 2.459016 18.714667 16.648710 17.664754\n",
" Fri 1.666667 2.250000 2.000000 11.386667 13.940000 12.845714\n",
"Dinner Thur 0.000000 2.000000 2.000000 0.000000 18.780000 18.780000\n",
" Fri 2.285714 2.000000 2.166667 23.487143 14.310000 19.663333\n",
" Sat 2.644068 2.250000 2.517241 20.802542 19.680357 20.441379\n",
" Sun 2.810345 2.944444 2.842105 21.887241 19.872222 21.410000\n",
"All 2.630573 2.459770 2.569672 20.744076 18.056897 19.785943"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tips_pt = tips.pivot_table(index=[\"time\", \"day\"], \n",
" columns=[\"sex\"], \n",
" values=[\"total_bill\",\"size\"],\n",
" fill_value=0,\n",
" margins=True)\n",
"tips_pt"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th></th>\n",
" <th colspan=\"3\" halign=\"left\">size</th>\n",
" <th colspan=\"3\" halign=\"left\">total_bill</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>sex</th>\n",
" <th>Male</th>\n",
" <th>Female</th>\n",
" <th>All</th>\n",
" <th>Male</th>\n",
" <th>Female</th>\n",
" <th>All</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th>day</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=\"2\" valign=\"top\">Lunch</th>\n",
" <th>Thur</th>\n",
" <td>73</td>\n",
" <td>77</td>\n",
" <td>150</td>\n",
" <td>561.44</td>\n",
" <td>516.11</td>\n",
" <td>1077.55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fri</th>\n",
" <td>5</td>\n",
" <td>9</td>\n",
" <td>14</td>\n",
" <td>34.16</td>\n",
" <td>55.76</td>\n",
" <td>89.92</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Dinner</th>\n",
" <th>Thur</th>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0.00</td>\n",
" <td>18.78</td>\n",
" <td>18.78</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fri</th>\n",
" <td>16</td>\n",
" <td>10</td>\n",
" <td>26</td>\n",
" <td>164.41</td>\n",
" <td>71.55</td>\n",
" <td>235.96</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sat</th>\n",
" <td>156</td>\n",
" <td>63</td>\n",
" <td>219</td>\n",
" <td>1227.35</td>\n",
" <td>551.05</td>\n",
" <td>1778.40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sun</th>\n",
" <td>163</td>\n",
" <td>53</td>\n",
" <td>216</td>\n",
" <td>1269.46</td>\n",
" <td>357.70</td>\n",
" <td>1627.16</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <th></th>\n",
" <td>413</td>\n",
" <td>214</td>\n",
" <td>627</td>\n",
" <td>3256.82</td>\n",
" <td>1570.95</td>\n",
" <td>4827.77</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" size total_bill \n",
"sex Male Female All Male Female All\n",
"time day \n",
"Lunch Thur 73 77 150 561.44 516.11 1077.55\n",
" Fri 5 9 14 34.16 55.76 89.92\n",
"Dinner Thur 0 2 2 0.00 18.78 18.78\n",
" Fri 16 10 26 164.41 71.55 235.96\n",
" Sat 156 63 219 1227.35 551.05 1778.40\n",
" Sun 163 53 216 1269.46 357.70 1627.16\n",
"All 413 214 627 3256.82 1570.95 4827.77"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tips_pt = tips.pivot_table(index=[\"time\", \"day\"], \n",
" columns=[\"sex\"], \n",
" values=[\"total_bill\",\"size\"],\n",
" fill_value=0,\n",
" margins=True,\n",
" aggfunc=sum)\n",
"tips_pt"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead tr th {\n",
" text-align: left;\n",
" }\n",
"\n",
" .dataframe thead tr:last-of-type th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr>\n",
" <th></th>\n",
" <th></th>\n",
" <th colspan=\"3\" halign=\"left\">sum</th>\n",
" <th colspan=\"3\" halign=\"left\">max</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th></th>\n",
" <th colspan=\"3\" halign=\"left\">total_bill</th>\n",
" <th colspan=\"3\" halign=\"left\">total_bill</th>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <th>sex</th>\n",
" <th>Male</th>\n",
" <th>Female</th>\n",
" <th>All</th>\n",
" <th>Male</th>\n",
" <th>Female</th>\n",
" <th>All</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th>day</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=\"2\" valign=\"top\">Lunch</th>\n",
" <th>Thur</th>\n",
" <td>561.44</td>\n",
" <td>516.11</td>\n",
" <td>1077.55</td>\n",
" <td>41.19</td>\n",
" <td>43.11</td>\n",
" <td>43.11</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fri</th>\n",
" <td>34.16</td>\n",
" <td>55.76</td>\n",
" <td>89.92</td>\n",
" <td>13.42</td>\n",
" <td>16.27</td>\n",
" <td>16.27</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"4\" valign=\"top\">Dinner</th>\n",
" <th>Thur</th>\n",
" <td>0.00</td>\n",
" <td>18.78</td>\n",
" <td>18.78</td>\n",
" <td>0.00</td>\n",
" <td>18.78</td>\n",
" <td>18.78</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fri</th>\n",
" <td>164.41</td>\n",
" <td>71.55</td>\n",
" <td>235.96</td>\n",
" <td>40.17</td>\n",
" <td>22.75</td>\n",
" <td>40.17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sat</th>\n",
" <td>1227.35</td>\n",
" <td>551.05</td>\n",
" <td>1778.40</td>\n",
" <td>50.81</td>\n",
" <td>44.30</td>\n",
" <td>50.81</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sun</th>\n",
" <td>1269.46</td>\n",
" <td>357.70</td>\n",
" <td>1627.16</td>\n",
" <td>48.17</td>\n",
" <td>35.26</td>\n",
" <td>48.17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>All</th>\n",
" <th></th>\n",
" <td>3256.82</td>\n",
" <td>1570.95</td>\n",
" <td>4827.77</td>\n",
" <td>50.81</td>\n",
" <td>44.30</td>\n",
" <td>50.81</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" sum max \n",
" total_bill total_bill \n",
"sex Male Female All Male Female All\n",
"time day \n",
"Lunch Thur 561.44 516.11 1077.55 41.19 43.11 43.11\n",
" Fri 34.16 55.76 89.92 13.42 16.27 16.27\n",
"Dinner Thur 0.00 18.78 18.78 0.00 18.78 18.78\n",
" Fri 164.41 71.55 235.96 40.17 22.75 40.17\n",
" Sat 1227.35 551.05 1778.40 50.81 44.30 50.81\n",
" Sun 1269.46 357.70 1627.16 48.17 35.26 48.17\n",
"All 3256.82 1570.95 4827.77 50.81 44.30 50.81"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tips_pt = tips.pivot_table(index=[\"time\", \"day\"], \n",
" columns=[\"sex\"], \n",
" values=[\"total_bill\"],\n",
" fill_value=0,\n",
" margins=True,\n",
" aggfunc=[sum, max])\n",
"tips_pt"
]
}
],
"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.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment