{ "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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
in_sfbedsbathpriceyear_builtsqftprice_per_sqftelevationcity
002.01.09990001960100099910NY
102.02.027500002006141819390NY
202.02.01350000190021506289NY
301.01.0629000190350012589NY
400.01.0439000193050087810NY
\n", "
" ], "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([, ],\n", " dtype=object)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "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": [ "
" ] }, "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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
in_sfbedsbathpriceyear_builtsqftprice_per_sqftelevationcity
1101.01.0999000198278412745NY
5800.01.0775000200954614196NY
4402.02.0399500019062400166510NY
43913.02.084900019471622523106SF
22001.01.052900019866508140NY
\n", "
" ], "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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
abc
0-0.288585-1.823887-0.930694
1-2.0200280.3227311.634198
2-0.5514120.9662800.689169
30.548931-0.4166530.088240
4-1.180181-0.2183800.350026
50.984890-0.6206570.218497
6-1.1742110.9859800.591793
7-0.4615532.0757400.371126
8-1.6922281.1910460.863126
9-0.354696-0.8537331.799386
101.1652502.035038-0.953814
11-0.899864-0.4697660.531577
12-0.608545-0.5768780.674811
13-1.193892-0.498491-2.542653
14-1.7294890.637867-1.093362
15-0.994024-0.714704-0.166540
160.0988021.6373190.922935
171.3262110.2823391.709445
18-0.9553901.292335-0.140798
190.019700-2.386171-0.452989
\n", "
" ], "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 }