File size: 51,999 Bytes
6f00d18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "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>in_sf</th>\n",
       "      <th>beds</th>\n",
       "      <th>bath</th>\n",
       "      <th>price</th>\n",
       "      <th>year_built</th>\n",
       "      <th>sqft</th>\n",
       "      <th>price_per_sqft</th>\n",
       "      <th>elevation</th>\n",
       "      <th>city</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>999000</td>\n",
       "      <td>1960</td>\n",
       "      <td>1000</td>\n",
       "      <td>999</td>\n",
       "      <td>10</td>\n",
       "      <td>NY</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2750000</td>\n",
       "      <td>2006</td>\n",
       "      <td>1418</td>\n",
       "      <td>1939</td>\n",
       "      <td>0</td>\n",
       "      <td>NY</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1350000</td>\n",
       "      <td>1900</td>\n",
       "      <td>2150</td>\n",
       "      <td>628</td>\n",
       "      <td>9</td>\n",
       "      <td>NY</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>629000</td>\n",
       "      <td>1903</td>\n",
       "      <td>500</td>\n",
       "      <td>1258</td>\n",
       "      <td>9</td>\n",
       "      <td>NY</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>439000</td>\n",
       "      <td>1930</td>\n",
       "      <td>500</td>\n",
       "      <td>878</td>\n",
       "      <td>10</td>\n",
       "      <td>NY</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   in_sf  beds  bath    price  year_built  sqft  price_per_sqft  elevation  \\\n",
       "0      0   2.0   1.0   999000        1960  1000             999         10   \n",
       "1      0   2.0   2.0  2750000        2006  1418            1939          0   \n",
       "2      0   2.0   2.0  1350000        1900  2150             628          9   \n",
       "3      0   1.0   1.0   629000        1903   500            1258          9   \n",
       "4      0   0.0   1.0   439000        1930   500             878         10   \n",
       "\n",
       "  city  \n",
       "0   NY  \n",
       "1   NY  \n",
       "2   NY  \n",
       "3   NY  \n",
       "4   NY  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('../data/ny-vs-sf-houses.csv')\n",
    "df.head()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([<Axes: title={'center': 'NY'}>, <Axes: title={'center': 'SF'}>],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.hist('elevation', by='city')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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AHAN6NatmwICApSXl3fJvv7+/pJ+eFbXj/3mN7/RokWLtHDhQiUnJys2NtbptTobYQcAgGtA27ZtNX36dP32t7/VkiVLdOTIEW3btk3vvvtuk76dOnWSxWLRqlWr9N1336mqqsre9vDDD+ubb77Rn/70Jz366KOtuQstRtgBAOAakZ2draeeekozZsxQr1699OCDD+r48eNN+l1//fWaPXu2fve736ljx46aPHmyvS00NFRpaWkKCgrS6NGjW7H6lmPODgAA1wgfHx8999xzeu6555q0/fi54NnZ2crOzr7gON9++63S09NltVpdUqezEXYAAMBl+f7775Wfn6/8/Hy9/fbb7i7nshF2AADAZenfv7++//57vfjii+rRw3uuMibsAACAy/KvNx/0JkxQBgAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApsal5wAAeIGSkhJVVFS0yrYiIiIUFxfXKttqDYQdAAA8XElJiXr27KWzZ6tbZXsBAYE6cKDoigLP+PHjtXjxYuXm5up3v/udff3KlSt1//33a8mSJXr88cf1j3/8QzfeeKO9/dixY7rpppv0+9//3uEZXM5E2AEAwMNVVFTo7NlqJT46UyHRnV26LVvpUW1/b7YqKiqu+OxO27Zt9eKLL+qxxx5Tu3btHNoeeeQRrVixQuPHj9emTZvk4/PDTJqJEydq4MCBysjIcNo+/BhhBwAALxES3VnhcZ77mIbk5GQdPnxYubm5mjNnTpP2//zP/9RNN92kuXPn6umnn9aiRYu0ZcsW/fOf/5TFYnFZXUxQBgAATuHr66s//vGPevPNN/XNN980ae/QoYPeeecdZWdna+3atZo2bZpef/11xcbGurQuwg4AAHCa+++/X/369dPMmTMv2D569Gj98pe/VEpKiu68806NGzfO5TURdgAAgFO9+OKLWrx4sYqKii7Ynp2drcbGRj3//POtUg9hBwAAONUdd9yhkSNHKisr64Ltbdq0cfivqzFBGQAAON0LL7ygfv36qUcP90+o5swOAABwuj59+ig9PV1vvPGGu0vhzA4AAN7CVnrUq7aRk5Ojjz76yGnjtRRhBwAADxcREaGAgEBtf292q2wvICBQERERV/SeRYsWNVnXuXNn1dTUXHC9YRgtLe+KEXYAAPBwcXFxOnCgiGdjtZBbw86mTZv00ksv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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "\n",
    "fig = sns.histplot(df, x='elevation', hue='city', multiple='stack')\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "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>in_sf</th>\n",
       "      <th>beds</th>\n",
       "      <th>bath</th>\n",
       "      <th>price</th>\n",
       "      <th>year_built</th>\n",
       "      <th>sqft</th>\n",
       "      <th>price_per_sqft</th>\n",
       "      <th>elevation</th>\n",
       "      <th>city</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>999000</td>\n",
       "      <td>1982</td>\n",
       "      <td>784</td>\n",
       "      <td>1274</td>\n",
       "      <td>5</td>\n",
       "      <td>NY</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>775000</td>\n",
       "      <td>2009</td>\n",
       "      <td>546</td>\n",
       "      <td>1419</td>\n",
       "      <td>6</td>\n",
       "      <td>NY</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>3995000</td>\n",
       "      <td>1906</td>\n",
       "      <td>2400</td>\n",
       "      <td>1665</td>\n",
       "      <td>10</td>\n",
       "      <td>NY</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>439</th>\n",
       "      <td>1</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>849000</td>\n",
       "      <td>1947</td>\n",
       "      <td>1622</td>\n",
       "      <td>523</td>\n",
       "      <td>106</td>\n",
       "      <td>SF</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>220</th>\n",
       "      <td>0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>529000</td>\n",
       "      <td>1986</td>\n",
       "      <td>650</td>\n",
       "      <td>814</td>\n",
       "      <td>0</td>\n",
       "      <td>NY</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     in_sf  beds  bath    price  year_built  sqft  price_per_sqft  elevation  \\\n",
       "11       0   1.0   1.0   999000        1982   784            1274          5   \n",
       "58       0   0.0   1.0   775000        2009   546            1419          6   \n",
       "44       0   2.0   2.0  3995000        1906  2400            1665         10   \n",
       "439      1   3.0   2.0   849000        1947  1622             523        106   \n",
       "220      0   1.0   1.0   529000        1986   650             814          0   \n",
       "\n",
       "    city  \n",
       "11    NY  \n",
       "58    NY  \n",
       "44    NY  \n",
       "439   SF  \n",
       "220   NY  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby('city')['price'].mean().round(0)\n",
    "\n",
    "\n",
    "df.sample(n=5)"
   ]
  },
  {
   "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 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>a</th>\n",
       "      <th>b</th>\n",
       "      <th>c</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.288585</td>\n",
       "      <td>-1.823887</td>\n",
       "      <td>-0.930694</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-2.020028</td>\n",
       "      <td>0.322731</td>\n",
       "      <td>1.634198</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.551412</td>\n",
       "      <td>0.966280</td>\n",
       "      <td>0.689169</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.548931</td>\n",
       "      <td>-0.416653</td>\n",
       "      <td>0.088240</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1.180181</td>\n",
       "      <td>-0.218380</td>\n",
       "      <td>0.350026</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.984890</td>\n",
       "      <td>-0.620657</td>\n",
       "      <td>0.218497</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>-1.174211</td>\n",
       "      <td>0.985980</td>\n",
       "      <td>0.591793</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>-0.461553</td>\n",
       "      <td>2.075740</td>\n",
       "      <td>0.371126</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>-1.692228</td>\n",
       "      <td>1.191046</td>\n",
       "      <td>0.863126</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>-0.354696</td>\n",
       "      <td>-0.853733</td>\n",
       "      <td>1.799386</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1.165250</td>\n",
       "      <td>2.035038</td>\n",
       "      <td>-0.953814</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>-0.899864</td>\n",
       "      <td>-0.469766</td>\n",
       "      <td>0.531577</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>-0.608545</td>\n",
       "      <td>-0.576878</td>\n",
       "      <td>0.674811</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>-1.193892</td>\n",
       "      <td>-0.498491</td>\n",
       "      <td>-2.542653</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>-1.729489</td>\n",
       "      <td>0.637867</td>\n",
       "      <td>-1.093362</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>-0.994024</td>\n",
       "      <td>-0.714704</td>\n",
       "      <td>-0.166540</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>0.098802</td>\n",
       "      <td>1.637319</td>\n",
       "      <td>0.922935</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>1.326211</td>\n",
       "      <td>0.282339</td>\n",
       "      <td>1.709445</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>-0.955390</td>\n",
       "      <td>1.292335</td>\n",
       "      <td>-0.140798</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>0.019700</td>\n",
       "      <td>-2.386171</td>\n",
       "      <td>-0.452989</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           a         b         c\n",
       "0  -0.288585 -1.823887 -0.930694\n",
       "1  -2.020028  0.322731  1.634198\n",
       "2  -0.551412  0.966280  0.689169\n",
       "3   0.548931 -0.416653  0.088240\n",
       "4  -1.180181 -0.218380  0.350026\n",
       "5   0.984890 -0.620657  0.218497\n",
       "6  -1.174211  0.985980  0.591793\n",
       "7  -0.461553  2.075740  0.371126\n",
       "8  -1.692228  1.191046  0.863126\n",
       "9  -0.354696 -0.853733  1.799386\n",
       "10  1.165250  2.035038 -0.953814\n",
       "11 -0.899864 -0.469766  0.531577\n",
       "12 -0.608545 -0.576878  0.674811\n",
       "13 -1.193892 -0.498491 -2.542653\n",
       "14 -1.729489  0.637867 -1.093362\n",
       "15 -0.994024 -0.714704 -0.166540\n",
       "16  0.098802  1.637319  0.922935\n",
       "17  1.326211  0.282339  1.709445\n",
       "18 -0.955390  1.292335 -0.140798\n",
       "19  0.019700 -2.386171 -0.452989"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "chart_data = pd.DataFrame(np.random.randn(20, 3), columns=[\"a\", \"b\", \"c\"])\n",
    "chart_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "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.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}