1317 lines
118 KiB
Plaintext
1317 lines
118 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {
|
||
"id": "mkIYsNGPtEfb"
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import pandas as pd\n",
|
||
"from sklearn.preprocessing import OneHotEncoder\n",
|
||
"from sklearn.preprocessing import MinMaxScaler\n",
|
||
"from sklearn.model_selection import train_test_split\n",
|
||
"import numpy as np\n",
|
||
"from sklearn.metrics import mean_squared_error\n",
|
||
"from sklearn.metrics import mean_absolute_error\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import seaborn as sns"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/"
|
||
},
|
||
"id": "ZazUCR02tMH0",
|
||
"outputId": "4e3a1d0d-163b-41e2-d6f3-799556908a66"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"\n",
|
||
"\u001b7\u001b[1A\u001b[1G\u001b[27G[Files: 0 Bytes: 0 [0 B/s] Re]\u001b8\u001b7\u001b[2A\u001b[1G\u001b[27G[https://docs.google.com/spread]\u001b8\u001b7\u001b[2A\u001b[1G0 files 100% [=============================>] 354 --.-KB/s\u001b8\u001b7\u001b[1A\u001b[1G\u001b[27G[Files: 0 Bytes: 354 [654 B/s]\u001b8\u001b7\u001b[2A\u001b[1G\u001b[27G[https://doc-08-1k-sheets.googl]\u001b8\u001b7\u001b[2A\u001b[1G0 files 100% [=============================>] 354 --.-KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [<=> ] 12.36K --.-KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 55.91K 348.35KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 123.69K 296.08KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 187.58K 349.73KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 283.42K 432.99KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 411.97K 532.09KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 583.28K 651.72KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 813.84K 800.67KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 1.11M 1001KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 1.24M 1008KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 1.40M 1.01MB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 1.51M 1.00MB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 1.61M 1012KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 0% [ <=> ] 1.73M 1006KB/s\u001b8\u001b7\u001b[2A\u001b[1GmuseumDataset.csv 100% [=============================>] 1.81M 1016KB/s\u001b8\u001b7\u001b[1A\u001b[1G\u001b[27G[Files: 1 Bytes: 1.81M [486.82]\u001b8\u001b[m\u001b[m\u001b[m\u001b[m"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"!wget -O museumDataset.csv \"https://docs.google.com/spreadsheets/d/1lS9HEz8FreAkCpR_w_ykAHy3oWeQBqiuc_RJyr3dfbE/export?format=csv&gid=1322780754\""
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 930
|
||
},
|
||
"id": "jxUFPkPs8oTT",
|
||
"outputId": "1b1b8c1a-4597-4738-a79c-dc7615e4cecc"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" Museum Type \\\n",
|
||
"0 HISTORY MUSEUM \n",
|
||
"1 ARBORETUM, BOTANICAL GARDEN, OR NATURE CENTER \n",
|
||
"2 SCIENCE & TECHNOLOGY MUSEUM OR PLANETARIUM \n",
|
||
"3 HISTORIC PRESERVATION \n",
|
||
"4 HISTORY MUSEUM \n",
|
||
"... ... \n",
|
||
"33067 HISTORIC PRESERVATION \n",
|
||
"33068 GENERAL MUSEUM \n",
|
||
"33069 HISTORIC PRESERVATION \n",
|
||
"33070 HISTORY MUSEUM \n",
|
||
"33071 HISTORIC PRESERVATION \n",
|
||
"\n",
|
||
" Zip Code (Administrative Location) City (Physical Location) \\\n",
|
||
"0 99502 NaN \n",
|
||
"1 99507 NaN \n",
|
||
"2 99611 NaN \n",
|
||
"3 99611 NaN \n",
|
||
"4 99503 NaN \n",
|
||
"... ... ... \n",
|
||
"33067 82801 SHERIDAN \n",
|
||
"33068 82001 CHEYENNE \n",
|
||
"33069 82072 NaN \n",
|
||
"33070 82003 CHEYENNE \n",
|
||
"33071 82190 NaN \n",
|
||
"\n",
|
||
" State (Physical Location) Zip Code (Physical Location) Latitude \\\n",
|
||
"0 NaN NaN 61.17925 \n",
|
||
"1 NaN NaN 61.16890 \n",
|
||
"2 NaN NaN 60.56149 \n",
|
||
"3 NaN NaN 60.56280 \n",
|
||
"4 NaN NaN 61.17925 \n",
|
||
"... ... ... ... \n",
|
||
"33067 WY 82801.0 44.82345 \n",
|
||
"33068 WY 82001.0 41.13941 \n",
|
||
"33069 NaN NaN 41.32276 \n",
|
||
"33070 WY 82003.0 41.13010 \n",
|
||
"33071 NaN NaN 44.91303 \n",
|
||
"\n",
|
||
" Longitude Locale Code (NCES) County Code (FIPS) State Code (FIPS) \\\n",
|
||
"0 -149.97254 1.0 20.0 2.0 \n",
|
||
"1 -149.76708 4.0 20.0 2.0 \n",
|
||
"2 -151.21598 3.0 122.0 2.0 \n",
|
||
"3 -151.26597 3.0 122.0 2.0 \n",
|
||
"4 -149.97254 1.0 20.0 2.0 \n",
|
||
"... ... ... ... ... \n",
|
||
"33067 -106.87592 4.0 33.0 56.0 \n",
|
||
"33068 -104.81813 1.0 21.0 56.0 \n",
|
||
"33069 -105.57686 3.0 1.0 56.0 \n",
|
||
"33070 -104.81916 1.0 21.0 56.0 \n",
|
||
"33071 -110.41584 4.0 29.0 56.0 \n",
|
||
"\n",
|
||
" Region Code (AAM) Tax Period Income Revenue \n",
|
||
"0 6 201312.0 602912.0 550236.0 \n",
|
||
"1 6 201312.0 1379576.0 1323742.0 \n",
|
||
"2 6 201312.0 740030.0 729080.0 \n",
|
||
"3 6 201412.0 0.0 0.0 \n",
|
||
"4 6 201312.0 602912.0 550236.0 \n",
|
||
"... ... ... ... ... \n",
|
||
"33067 5 NaN NaN NaN \n",
|
||
"33068 5 201404.0 0.0 0.0 \n",
|
||
"33069 5 201312.0 208508.0 83981.0 \n",
|
||
"33070 5 201309.0 0.0 0.0 \n",
|
||
"33071 5 201312.0 127496.0 126762.0 \n",
|
||
"\n",
|
||
"[33072 rows x 14 columns]\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stderr",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"/tmp/ipykernel_79886/482214211.py:2: DtypeWarning: Columns (9,14,21) have mixed types. Specify dtype option on import or set low_memory=False.\n",
|
||
" df = pd.read_csv(file_path)\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"Index(['Museum Type', 'Zip Code (Administrative Location)',\n",
|
||
" 'City (Physical Location)', 'State (Physical Location)',\n",
|
||
" 'Zip Code (Physical Location)', 'Latitude', 'Longitude',\n",
|
||
" 'Locale Code (NCES)', 'County Code (FIPS)', 'State Code (FIPS)',\n",
|
||
" 'Region Code (AAM)', 'Tax Period', 'Income', 'Revenue'],\n",
|
||
" dtype='object')"
|
||
]
|
||
},
|
||
"execution_count": 14,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"file_path = 'museumDataset.csv'\n",
|
||
"df = pd.read_csv(file_path)\n",
|
||
"for i in [\"Museum ID\", \"Museum Name\", \"Legal Name\", \"Alternate Name\", \"Institution Name\", \"Phone Number\", \"Employer ID Number\", \"Street Address (Administrative Location)\", \"Street Address (Physical Location)\", \"State (Administrative Location)\", \"City (Administrative Location)\"]:\n",
|
||
" df=df.drop(i, axis=1)\n",
|
||
"print(df)\n",
|
||
"df.columns"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "WEt2Wz708C6a"
|
||
},
|
||
"source": [
|
||
"# EDA\n",
|
||
"\n",
|
||
"Code up the following concepts with regards to EDA.\n",
|
||
"\n",
|
||
"* Correlation\n",
|
||
"* Mean, median, mode\n",
|
||
"In addition, write down inferences from the dataset."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 95,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"array([5, 8, 9, 8, 5])"
|
||
]
|
||
},
|
||
"execution_count": 95,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# exp1: numpy array multiplication:\n",
|
||
"a=np.array([1,2,3,4,5])\n",
|
||
"b=np.array([5,4,3,2,1])\n",
|
||
"a*b"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {
|
||
"id": "RSrcX_7N8Drv"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"<Axes: >"
|
||
]
|
||
},
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
},
|
||
{
|
||
"data": {
|
||
"image/png": "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+RBr8leNiIhUhPJy5/8EvqPTJ3fz5k18+eWXGDVqFObMmYMqVarg6NGj8Pf3R25ursLJs1gsLvIpNS8vr0x9ZGVlQUNDAwkJCUXKQYorIXkrIiICM2fOlFlX26MzrDw9y3R8IiIiUk28YZA+uYSEBBQWFmLhwoVo2bIl6tWrh/v378u00dbWRkFBwQf70tLSKtLOxMQEaWlpMusSExOF/7e2toaWlhZOnjwprHv69CmuXLkivHZ2dkZBQQEePnwIGxsbmaW0EpHipu2p9c7TlIiIiJSunGbbUFcceaYK9ezZM5nEFW/meszLy8NPP/2E7t27Iz4+HitXrpRpY2VlhaysLMTExMDR0RF6enrFjkhbWVkhJiYGbm5ukEgkqFy5Mjp06ID58+dj7dq1cHV1xfr163HhwgU4OzsDb0aO/f39MXHiRFStWhXVq1fHlClTZG5SqFevHry9veHj44OFCxfC2dkZjx49QkxMDBo3boxu3boVe77FPVmJJRtERKRa1DjzLQcceaYKdeTIETg7O8ss69atw6JFi/D999+jYcOG2LBhQ5EnErVq1QojR45E//79YWJigh9++KHY/hcuXIiDBw/C0tJSSI49PDwwbdo0BAcHo3nz5njx4gV8fHxk9ps/fz5at26N7t27w93dHV988QWaNm0q0yYqKgo+Pj4ICgpC/fr14eXlhdOnT6NWrVrlfp2IiIjo8yCSlnQLIxGVi3aLf1R2CKV6svauskMokbhnDWWHUKqcXNX+82lpIf/0jZ/ajVv5yg6hVDXMVffaAUD2S9X9t6e6kf0fJU40IZczkwMr/Bi2PWbK0erDru4KK5d+Pjf8PpmIiIhInaj4BwhVx7INIiIiIiI5ceSZiIiISK1w6FkRTJ6JiIiI1IiUubNCmDwTERERqRMmzwphzTMRERERkZw48kxERESkVjj0rAgmz0RERERqhDXPimHZBhERERGRnDjyTERERKROOPKsECbPRERERGqF2bMiWLZBRERERCQnjjwTERERqRMOPCuEyTNRBfNuqaHsEEq17FkNZYdQosKd95QdQqkM+qjutQOAJ08LlR1CiQoLlB1B6bxdVfv39peYfGWHUCKp6v6zAwBIlR2ACuBsG4ph2QYRERERkZw48kxERESkTjjyrBAmz0RERERqhdmzIpg8ExEREakR1jwrhjXPRERERERy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",
|
||
"text/plain": [
|
||
"<Figure size 640x480 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# df=df.fillna(0)\n",
|
||
"numericColumns = df.select_dtypes(include=[np.number]).columns.tolist() # https://stackoverflow.com/a/29442936\n",
|
||
"# print(numericColumns)\n",
|
||
"\n",
|
||
"def covariance(x, y):\n",
|
||
" \"\"\"\n",
|
||
" from https://www.indeed.com/career-advice/career-development/how-to-calculate-covariance\n",
|
||
" \"\"\"\n",
|
||
" xBar = x.mean()\n",
|
||
" yBar = y.mean()\n",
|
||
" return ((x-xBar)*(y-yBar)).mean()\n",
|
||
"\n",
|
||
"def correlation(x, y):\n",
|
||
" return covariance(x, y) / (x.std() * y.std())\n",
|
||
"\n",
|
||
"correlationMat = np.zeros((len(numericColumns), len(numericColumns)))\n",
|
||
"\n",
|
||
"for i in range(len(numericColumns)):\n",
|
||
" correlationMat[i,i]=1.0\n",
|
||
" for j in range(i+1, len(numericColumns)):\n",
|
||
" correlationMat[i][j] =correlationMat[j][i]= correlation(df[numericColumns[i]].dropna(), df[numericColumns[j]].dropna())\n",
|
||
"\n",
|
||
"# print(correlationMat, correlationMat.shape)\n",
|
||
"sns.heatmap(correlationMat, xticklabels=numericColumns, yticklabels=numericColumns, center=0, cmap=\"crest\") # https://seaborn.pydata.org/generated/seaborn.heatmap.html"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"metadata": {
|
||
"id": "yqWZAUjO9kRd"
|
||
},
|
||
"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>name</th>\n",
|
||
" <th>mean</th>\n",
|
||
" <th>median</th>\n",
|
||
" <th>mode</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>Zip Code (Physical Location)</td>\n",
|
||
" <td>4.780564e+04</td>\n",
|
||
" <td>47448.00000</td>\n",
|
||
" <td>74743.00000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>Latitude</td>\n",
|
||
" <td>3.892537e+01</td>\n",
|
||
" <td>39.83164</td>\n",
|
||
" <td>40.79792</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>Longitude</td>\n",
|
||
" <td>-9.081676e+01</td>\n",
|
||
" <td>-86.77684</td>\n",
|
||
" <td>-77.86267</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>Locale Code (NCES)</td>\n",
|
||
" <td>2.505834e+00</td>\n",
|
||
" <td>2.00000</td>\n",
|
||
" <td>4.00000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>County Code (FIPS)</td>\n",
|
||
" <td>8.570193e+01</td>\n",
|
||
" <td>61.00000</td>\n",
|
||
" <td>1.00000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>5</th>\n",
|
||
" <td>State Code (FIPS)</td>\n",
|
||
" <td>2.906583e+01</td>\n",
|
||
" <td>29.00000</td>\n",
|
||
" <td>6.00000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>6</th>\n",
|
||
" <td>Region Code (AAM)</td>\n",
|
||
" <td>3.670083e+00</td>\n",
|
||
" <td>4.00000</td>\n",
|
||
" <td>4.00000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>7</th>\n",
|
||
" <td>Tax Period</td>\n",
|
||
" <td>2.013475e+05</td>\n",
|
||
" <td>201312.00000</td>\n",
|
||
" <td>201312.00000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>8</th>\n",
|
||
" <td>Income</td>\n",
|
||
" <td>1.069682e+08</td>\n",
|
||
" <td>8781.00000</td>\n",
|
||
" <td>0.00000</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>9</th>\n",
|
||
" <td>Revenue</td>\n",
|
||
" <td>2.097605e+07</td>\n",
|
||
" <td>3307.00000</td>\n",
|
||
" <td>0.00000</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"</div>"
|
||
],
|
||
"text/plain": [
|
||
" name mean median mode\n",
|
||
"0 Zip Code (Physical Location) 4.780564e+04 47448.00000 74743.00000\n",
|
||
"1 Latitude 3.892537e+01 39.83164 40.79792\n",
|
||
"2 Longitude -9.081676e+01 -86.77684 -77.86267\n",
|
||
"3 Locale Code (NCES) 2.505834e+00 2.00000 4.00000\n",
|
||
"4 County Code (FIPS) 8.570193e+01 61.00000 1.00000\n",
|
||
"5 State Code (FIPS) 2.906583e+01 29.00000 6.00000\n",
|
||
"6 Region Code (AAM) 3.670083e+00 4.00000 4.00000\n",
|
||
"7 Tax Period 2.013475e+05 201312.00000 201312.00000\n",
|
||
"8 Income 1.069682e+08 8781.00000 0.00000\n",
|
||
"9 Revenue 2.097605e+07 3307.00000 0.00000"
|
||
]
|
||
},
|
||
"execution_count": 4,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"featureMap = {\"name\":[], \"mean\":[], \"median\":[], \"mode\":[]}\n",
|
||
"for i in numericColumns:\n",
|
||
" # print(f\"{i}: Mean: {df[i].to_numpy().mean()}, Median: {np.median(df[i].to_numpy())}, Mode: {df[i].mode()[0]}\" )\n",
|
||
" featureMap[\"name\"].append(i)\n",
|
||
" featureMap[\"mean\"].append(df[i].dropna().to_numpy().mean())\n",
|
||
" featureMap[\"median\"].append(np.median(df[i].dropna().to_numpy()))\n",
|
||
" featureMap[\"mode\"].append(df[i].dropna().mode()[0])\n",
|
||
"\n",
|
||
"featureMap = pd.DataFrame(featureMap)\n",
|
||
"featureMap"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "_xRWSeC99oe1"
|
||
},
|
||
"source": [
|
||
"### Inferences from the dataset\n",
|
||
"\n",
|
||
"* The dataset has a lot of zero and nan values\n",
|
||
"* Income and Revenue are highly correlated\n",
|
||
"* Region code and Zip code are also highly correlated\n",
|
||
"* \n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "dbtxb55w9xoF"
|
||
},
|
||
"source": [
|
||
"# Preprocessing\n",
|
||
"Code up the following concepts with regards to Preprocessing. Justify the reason for using them for this specific dataset\n",
|
||
"\n",
|
||
"* Filling in missing values.\n",
|
||
"* Encoding\n",
|
||
"\n",
|
||
"Any other techniques that you might need, please justify their usage and code them up."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {
|
||
"id": "VZZnnUTU9ss3"
|
||
},
|
||
"source": [
|
||
"Conditional Filling:\n",
|
||
"\n",
|
||
"- filling certain nan values based on a model fit over that column and some of the other columns\n",
|
||
"- This will result in linearly dependent features, which can be ignored in the first place.\n",
|
||
"- example: latitude and longitude based street/area code categorical estimation\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def countNA(col):\n",
|
||
" return col.isna().sum()\n",
|
||
"\n",
|
||
"def printNAinDF(frame):\n",
|
||
" print(\"NaNs in df\")\n",
|
||
" for i in numericColumns:\n",
|
||
" print(f\"{i}: {countNA(df[i])}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"NaNs in df\n",
|
||
"Zip Code (Physical Location): 23851\n",
|
||
"Latitude: 65\n",
|
||
"Longitude: 65\n",
|
||
"Locale Code (NCES): 77\n",
|
||
"County Code (FIPS): 2536\n",
|
||
"State Code (FIPS): 1\n",
|
||
"Region Code (AAM): 0\n",
|
||
"Tax Period: 9792\n",
|
||
"Income: 10111\n",
|
||
"Revenue: 10782\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"printNAinDF(df)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"NaNs in df\n",
|
||
"Zip Code (Physical Location): 0\n",
|
||
"Latitude: 0\n",
|
||
"Longitude: 0\n",
|
||
"Locale Code (NCES): 0\n",
|
||
"County Code (FIPS): 0\n",
|
||
"State Code (FIPS): 0\n",
|
||
"Region Code (AAM): 0\n",
|
||
"Tax Period: 0\n",
|
||
"Income: 0\n",
|
||
"Revenue: 0\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"for i in numericColumns:\n",
|
||
" df[i] = df[i].fillna(df[i].mean())\n",
|
||
"\n",
|
||
"printNAinDF(df)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"metadata": {
|
||
"id": "B1aC4Lv--eqR"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"['Museum Type', 'Zip Code (Administrative Location)', 'City (Physical Location)', 'State (Physical Location)']\n",
|
||
"9\n",
|
||
"15522\n",
|
||
"4481\n",
|
||
"52\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Encoding\n",
|
||
"# Hint: Figure out which columns need to be encoded. Would One-Hot Encoding be enough for handling this type of data? What are the alternatives?\n",
|
||
"\n",
|
||
"categoricalColumns= df.select_dtypes(include=[\"object\", \"category\"]).columns\n",
|
||
"categoricalColumns=categoricalColumns.to_list()\n",
|
||
"print(categoricalColumns)\n",
|
||
"\n",
|
||
"for i in categoricalColumns:\n",
|
||
" uniq = set(df[i])\n",
|
||
" print(len(uniq))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"id": "_l2tFo0RBlZ9"
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Any other preprocessing...?\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"colab": {
|
||
"base_uri": "https://localhost:8080/",
|
||
"height": 930
|
||
},
|
||
"id": "CdPfPeMg-gTG",
|
||
"outputId": "1554caf7-37c2-4135-bbdc-aeea16a7a9d2"
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"application/vnd.google.colaboratory.intrinsic+json": {
|
||
"type": "dataframe",
|
||
"variable_name": "df"
|
||
},
|
||
"text/html": [
|
||
"\n",
|
||
" <div id=\"df-648e6204-c75e-4ff8-9030-826148b87a6b\" class=\"colab-df-container\">\n",
|
||
" <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>Museum ID</th>\n",
|
||
" <th>Museum Name</th>\n",
|
||
" <th>Legal Name</th>\n",
|
||
" <th>Alternate Name</th>\n",
|
||
" <th>Museum Type</th>\n",
|
||
" <th>Institution Name</th>\n",
|
||
" <th>Street Address (Administrative Location)</th>\n",
|
||
" <th>City (Administrative Location)</th>\n",
|
||
" <th>State (Administrative Location)</th>\n",
|
||
" <th>Zip Code (Administrative Location)</th>\n",
|
||
" <th>...</th>\n",
|
||
" <th>Latitude</th>\n",
|
||
" <th>Longitude</th>\n",
|
||
" <th>Locale Code (NCES)</th>\n",
|
||
" <th>County Code (FIPS)</th>\n",
|
||
" <th>State Code (FIPS)</th>\n",
|
||
" <th>Region Code (AAM)</th>\n",
|
||
" <th>Employer ID Number</th>\n",
|
||
" <th>Tax Period</th>\n",
|
||
" <th>Income</th>\n",
|
||
" <th>Revenue</th>\n",
|
||
" </tr>\n",
|
||
" </thead>\n",
|
||
" <tbody>\n",
|
||
" <tr>\n",
|
||
" <th>0</th>\n",
|
||
" <td>8400200098</td>\n",
|
||
" <td>ALASKA AVIATION HERITAGE MUSEUM</td>\n",
|
||
" <td>ALASKA AVIATION HERITAGE MUSEUM</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>HISTORY MUSEUM</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>4721 AIRCRAFT DR</td>\n",
|
||
" <td>153</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>99502</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>61.17925</td>\n",
|
||
" <td>-149.97254</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>20.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>6</td>\n",
|
||
" <td>920071852</td>\n",
|
||
" <td>201312.000000</td>\n",
|
||
" <td>6.029120e+05</td>\n",
|
||
" <td>5.502360e+05</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>1</th>\n",
|
||
" <td>8400200117</td>\n",
|
||
" <td>ALASKA BOTANICAL GARDEN</td>\n",
|
||
" <td>ALASKA BOTANICAL GARDEN INC</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>ARBORETUM, BOTANICAL GARDEN, OR NATURE CENTER</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>4601 CAMPBELL AIRSTRIP RD</td>\n",
|
||
" <td>153</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>99507</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>61.16890</td>\n",
|
||
" <td>-149.76708</td>\n",
|
||
" <td>4.0</td>\n",
|
||
" <td>20.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>6</td>\n",
|
||
" <td>920115504</td>\n",
|
||
" <td>201312.000000</td>\n",
|
||
" <td>1.379576e+06</td>\n",
|
||
" <td>1.323742e+06</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>2</th>\n",
|
||
" <td>8400200153</td>\n",
|
||
" <td>ALASKA CHALLENGER CENTER FOR SPACE SCIENCE TEC...</td>\n",
|
||
" <td>ALASKA CHALLENGER CENTER FOR SPACE SCIENCE TEC...</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>SCIENCE & TECHNOLOGY MUSEUM OR PLANETARIUM</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>9711 KENAI SPUR HWY</td>\n",
|
||
" <td>3809</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>99611</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>60.56149</td>\n",
|
||
" <td>-151.21598</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>122.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>6</td>\n",
|
||
" <td>921761906</td>\n",
|
||
" <td>201312.000000</td>\n",
|
||
" <td>7.400300e+05</td>\n",
|
||
" <td>7.290800e+05</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>3</th>\n",
|
||
" <td>8400200143</td>\n",
|
||
" <td>ALASKA EDUCATORS HISTORICAL SOCIETY</td>\n",
|
||
" <td>ALASKA EDUCATORS HISTORICAL SOCIETY</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>HISTORIC PRESERVATION</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>214 BIRCH STREET</td>\n",
|
||
" <td>3809</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>99611</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>60.56280</td>\n",
|
||
" <td>-151.26597</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>122.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>6</td>\n",
|
||
" <td>920165178</td>\n",
|
||
" <td>201412.000000</td>\n",
|
||
" <td>0.000000e+00</td>\n",
|
||
" <td>0.000000e+00</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>4</th>\n",
|
||
" <td>8400200027</td>\n",
|
||
" <td>ALASKA HERITAGE MUSEUM</td>\n",
|
||
" <td>ALASKA AVIATION HERITAGE MUSEUM</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>HISTORY MUSEUM</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>301 W NORTHERN LIGHTS BLVD</td>\n",
|
||
" <td>153</td>\n",
|
||
" <td>0</td>\n",
|
||
" <td>99503</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>61.17925</td>\n",
|
||
" <td>-149.97254</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>20.0</td>\n",
|
||
" <td>2.0</td>\n",
|
||
" <td>6</td>\n",
|
||
" <td>920071852</td>\n",
|
||
" <td>201312.000000</td>\n",
|
||
" <td>6.029120e+05</td>\n",
|
||
" <td>5.502360e+05</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>...</th>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>...</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>33067</th>\n",
|
||
" <td>8405600184</td>\n",
|
||
" <td>WYOMING STATE HISTORICAL SOCIETY</td>\n",
|
||
" <td>WYOMING STATE HISTORICAL SOCIETY</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>HISTORIC PRESERVATION</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>PO BOX 73</td>\n",
|
||
" <td>7003</td>\n",
|
||
" <td>50</td>\n",
|
||
" <td>82801</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>44.82345</td>\n",
|
||
" <td>-106.87592</td>\n",
|
||
" <td>4.0</td>\n",
|
||
" <td>33.0</td>\n",
|
||
" <td>56.0</td>\n",
|
||
" <td>5</td>\n",
|
||
" <td>836007540.0</td>\n",
|
||
" <td>201347.458548</td>\n",
|
||
" <td>1.069682e+08</td>\n",
|
||
" <td>2.097605e+07</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>33068</th>\n",
|
||
" <td>8405600061</td>\n",
|
||
" <td>WYOMING STATE MUSEUM</td>\n",
|
||
" <td>WYOMING STATE MUSEUM VOLUNTEERS INC</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>GENERAL MUSEUM</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>2301 CENTRAL AVENUE</td>\n",
|
||
" <td>1323</td>\n",
|
||
" <td>50</td>\n",
|
||
" <td>82001</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>41.13941</td>\n",
|
||
" <td>-104.81813</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>21.0</td>\n",
|
||
" <td>56.0</td>\n",
|
||
" <td>5</td>\n",
|
||
" <td>237368629.0</td>\n",
|
||
" <td>201404.000000</td>\n",
|
||
" <td>0.000000e+00</td>\n",
|
||
" <td>0.000000e+00</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>33069</th>\n",
|
||
" <td>8405600158</td>\n",
|
||
" <td>WYOMING TERRITORIAL PARK HISTORIC ASSOCIATION</td>\n",
|
||
" <td>WYOMING TERRITORIAL PARK HISTORIC ASSOCIATION INC</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>HISTORIC PRESERVATION</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>1273 N 15TH ST STE 121</td>\n",
|
||
" <td>4101</td>\n",
|
||
" <td>50</td>\n",
|
||
" <td>82072</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>41.32276</td>\n",
|
||
" <td>-105.57686</td>\n",
|
||
" <td>3.0</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>56.0</td>\n",
|
||
" <td>5</td>\n",
|
||
" <td>830318392.0</td>\n",
|
||
" <td>201312.000000</td>\n",
|
||
" <td>2.085080e+05</td>\n",
|
||
" <td>8.398100e+04</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>33070</th>\n",
|
||
" <td>8405600137</td>\n",
|
||
" <td>WYOMING TRANSPORTATION MUSEUM</td>\n",
|
||
" <td>WYOMING TRANSPORTATION MUSEUM CORP</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>HISTORY MUSEUM</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>PO BOX 704</td>\n",
|
||
" <td>1323</td>\n",
|
||
" <td>50</td>\n",
|
||
" <td>82003</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>41.13010</td>\n",
|
||
" <td>-104.81916</td>\n",
|
||
" <td>1.0</td>\n",
|
||
" <td>21.0</td>\n",
|
||
" <td>56.0</td>\n",
|
||
" <td>5</td>\n",
|
||
" <td>830295570.0</td>\n",
|
||
" <td>201309.000000</td>\n",
|
||
" <td>0.000000e+00</td>\n",
|
||
" <td>0.000000e+00</td>\n",
|
||
" </tr>\n",
|
||
" <tr>\n",
|
||
" <th>33071</th>\n",
|
||
" <td>8405600199</td>\n",
|
||
" <td>YELLOWSTONE NATIONAL PARK</td>\n",
|
||
" <td>LITTLE PEOPLE LEARNING CENTER INC</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>HISTORIC PRESERVATION</td>\n",
|
||
" <td>NaN</td>\n",
|
||
" <td>NATIONAL PARK SERVICE</td>\n",
|
||
" <td>8575</td>\n",
|
||
" <td>50</td>\n",
|
||
" <td>82190</td>\n",
|
||
" <td>...</td>\n",
|
||
" <td>44.91303</td>\n",
|
||
" <td>-110.41584</td>\n",
|
||
" <td>4.0</td>\n",
|
||
" <td>29.0</td>\n",
|
||
" <td>56.0</td>\n",
|
||
" <td>5</td>\n",
|
||
" <td>830249072.0</td>\n",
|
||
" <td>201312.000000</td>\n",
|
||
" <td>1.274960e+05</td>\n",
|
||
" <td>1.267620e+05</td>\n",
|
||
" </tr>\n",
|
||
" </tbody>\n",
|
||
"</table>\n",
|
||
"<p>33072 rows × 25 columns</p>\n",
|
||
"</div>\n",
|
||
" <div class=\"colab-df-buttons\">\n",
|
||
"\n",
|
||
" <div class=\"colab-df-container\">\n",
|
||
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-648e6204-c75e-4ff8-9030-826148b87a6b')\"\n",
|
||
" title=\"Convert this dataframe to an interactive table.\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
|
||
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
|
||
" </svg>\n",
|
||
" </button>\n",
|
||
"\n",
|
||
" <style>\n",
|
||
" .colab-df-container {\n",
|
||
" display:flex;\n",
|
||
" gap: 12px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-convert {\n",
|
||
" background-color: #E8F0FE;\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: #1967D2;\n",
|
||
" height: 32px;\n",
|
||
" padding: 0 0 0 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-convert:hover {\n",
|
||
" background-color: #E2EBFA;\n",
|
||
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: #174EA6;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-buttons div {\n",
|
||
" margin-bottom: 4px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-convert {\n",
|
||
" background-color: #3B4455;\n",
|
||
" fill: #D2E3FC;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-convert:hover {\n",
|
||
" background-color: #434B5C;\n",
|
||
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
||
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
||
" fill: #FFFFFF;\n",
|
||
" }\n",
|
||
" </style>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
" const buttonEl =\n",
|
||
" document.querySelector('#df-648e6204-c75e-4ff8-9030-826148b87a6b button.colab-df-convert');\n",
|
||
" buttonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
"\n",
|
||
" async function convertToInteractive(key) {\n",
|
||
" const element = document.querySelector('#df-648e6204-c75e-4ff8-9030-826148b87a6b');\n",
|
||
" const dataTable =\n",
|
||
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
|
||
" [key], {});\n",
|
||
" if (!dataTable) return;\n",
|
||
"\n",
|
||
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
|
||
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
|
||
" + ' to learn more about interactive tables.';\n",
|
||
" element.innerHTML = '';\n",
|
||
" dataTable['output_type'] = 'display_data';\n",
|
||
" await google.colab.output.renderOutput(dataTable, element);\n",
|
||
" const docLink = document.createElement('div');\n",
|
||
" docLink.innerHTML = docLinkHtml;\n",
|
||
" element.appendChild(docLink);\n",
|
||
" }\n",
|
||
" </script>\n",
|
||
" </div>\n",
|
||
"\n",
|
||
"\n",
|
||
"<div id=\"df-4abe840c-7d36-44a5-9d79-0ae4d832ae62\">\n",
|
||
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-4abe840c-7d36-44a5-9d79-0ae4d832ae62')\"\n",
|
||
" title=\"Suggest charts\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
||
" width=\"24px\">\n",
|
||
" <g>\n",
|
||
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
|
||
" </g>\n",
|
||
"</svg>\n",
|
||
" </button>\n",
|
||
"\n",
|
||
"<style>\n",
|
||
" .colab-df-quickchart {\n",
|
||
" --bg-color: #E8F0FE;\n",
|
||
" --fill-color: #1967D2;\n",
|
||
" --hover-bg-color: #E2EBFA;\n",
|
||
" --hover-fill-color: #174EA6;\n",
|
||
" --disabled-fill-color: #AAA;\n",
|
||
" --disabled-bg-color: #DDD;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-quickchart {\n",
|
||
" --bg-color: #3B4455;\n",
|
||
" --fill-color: #D2E3FC;\n",
|
||
" --hover-bg-color: #434B5C;\n",
|
||
" --hover-fill-color: #FFFFFF;\n",
|
||
" --disabled-bg-color: #3B4455;\n",
|
||
" --disabled-fill-color: #666;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-quickchart {\n",
|
||
" background-color: var(--bg-color);\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: var(--fill-color);\n",
|
||
" height: 32px;\n",
|
||
" padding: 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-quickchart:hover {\n",
|
||
" background-color: var(--hover-bg-color);\n",
|
||
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: var(--button-hover-fill-color);\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-quickchart-complete:disabled,\n",
|
||
" .colab-df-quickchart-complete:disabled:hover {\n",
|
||
" background-color: var(--disabled-bg-color);\n",
|
||
" fill: var(--disabled-fill-color);\n",
|
||
" box-shadow: none;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-spinner {\n",
|
||
" border: 2px solid var(--fill-color);\n",
|
||
" border-color: transparent;\n",
|
||
" border-bottom-color: var(--fill-color);\n",
|
||
" animation:\n",
|
||
" spin 1s steps(1) infinite;\n",
|
||
" }\n",
|
||
"\n",
|
||
" @keyframes spin {\n",
|
||
" 0% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-bottom-color: var(--fill-color);\n",
|
||
" border-left-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" 20% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-left-color: var(--fill-color);\n",
|
||
" border-top-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" 30% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-left-color: var(--fill-color);\n",
|
||
" border-top-color: var(--fill-color);\n",
|
||
" border-right-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" 40% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-right-color: var(--fill-color);\n",
|
||
" border-top-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" 60% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-right-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" 80% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-right-color: var(--fill-color);\n",
|
||
" border-bottom-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" 90% {\n",
|
||
" border-color: transparent;\n",
|
||
" border-bottom-color: var(--fill-color);\n",
|
||
" }\n",
|
||
" }\n",
|
||
"</style>\n",
|
||
"\n",
|
||
" <script>\n",
|
||
" async function quickchart(key) {\n",
|
||
" const quickchartButtonEl =\n",
|
||
" document.querySelector('#' + key + ' button');\n",
|
||
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
|
||
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
|
||
" try {\n",
|
||
" const charts = await google.colab.kernel.invokeFunction(\n",
|
||
" 'suggestCharts', [key], {});\n",
|
||
" } catch (error) {\n",
|
||
" console.error('Error during call to suggestCharts:', error);\n",
|
||
" }\n",
|
||
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
|
||
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
|
||
" }\n",
|
||
" (() => {\n",
|
||
" let quickchartButtonEl =\n",
|
||
" document.querySelector('#df-4abe840c-7d36-44a5-9d79-0ae4d832ae62 button');\n",
|
||
" quickchartButtonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
" })();\n",
|
||
" </script>\n",
|
||
"</div>\n",
|
||
"\n",
|
||
" <div id=\"id_d53297d3-063b-4f7f-aabb-8e56b146b49d\">\n",
|
||
" <style>\n",
|
||
" .colab-df-generate {\n",
|
||
" background-color: #E8F0FE;\n",
|
||
" border: none;\n",
|
||
" border-radius: 50%;\n",
|
||
" cursor: pointer;\n",
|
||
" display: none;\n",
|
||
" fill: #1967D2;\n",
|
||
" height: 32px;\n",
|
||
" padding: 0 0 0 0;\n",
|
||
" width: 32px;\n",
|
||
" }\n",
|
||
"\n",
|
||
" .colab-df-generate:hover {\n",
|
||
" background-color: #E2EBFA;\n",
|
||
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
|
||
" fill: #174EA6;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-generate {\n",
|
||
" background-color: #3B4455;\n",
|
||
" fill: #D2E3FC;\n",
|
||
" }\n",
|
||
"\n",
|
||
" [theme=dark] .colab-df-generate:hover {\n",
|
||
" background-color: #434B5C;\n",
|
||
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
|
||
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
|
||
" fill: #FFFFFF;\n",
|
||
" }\n",
|
||
" </style>\n",
|
||
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('df')\"\n",
|
||
" title=\"Generate code using this dataframe.\"\n",
|
||
" style=\"display:none;\">\n",
|
||
"\n",
|
||
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
|
||
" width=\"24px\">\n",
|
||
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
|
||
" </svg>\n",
|
||
" </button>\n",
|
||
" <script>\n",
|
||
" (() => {\n",
|
||
" const buttonEl =\n",
|
||
" document.querySelector('#id_d53297d3-063b-4f7f-aabb-8e56b146b49d button.colab-df-generate');\n",
|
||
" buttonEl.style.display =\n",
|
||
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
|
||
"\n",
|
||
" buttonEl.onclick = () => {\n",
|
||
" google.colab.notebook.generateWithVariable('df');\n",
|
||
" }\n",
|
||
" })();\n",
|
||
" </script>\n",
|
||
" </div>\n",
|
||
"\n",
|
||
" </div>\n",
|
||
" </div>\n"
|
||
],
|
||
"text/plain": [
|
||
" Museum ID Museum Name \\\n",
|
||
"0 8400200098 ALASKA AVIATION HERITAGE MUSEUM \n",
|
||
"1 8400200117 ALASKA BOTANICAL GARDEN \n",
|
||
"2 8400200153 ALASKA CHALLENGER CENTER FOR SPACE SCIENCE TEC... \n",
|
||
"3 8400200143 ALASKA EDUCATORS HISTORICAL SOCIETY \n",
|
||
"4 8400200027 ALASKA HERITAGE MUSEUM \n",
|
||
"... ... ... \n",
|
||
"33067 8405600184 WYOMING STATE HISTORICAL SOCIETY \n",
|
||
"33068 8405600061 WYOMING STATE MUSEUM \n",
|
||
"33069 8405600158 WYOMING TERRITORIAL PARK HISTORIC ASSOCIATION \n",
|
||
"33070 8405600137 WYOMING TRANSPORTATION MUSEUM \n",
|
||
"33071 8405600199 YELLOWSTONE NATIONAL PARK \n",
|
||
"\n",
|
||
" Legal Name Alternate Name \\\n",
|
||
"0 ALASKA AVIATION HERITAGE MUSEUM NaN \n",
|
||
"1 ALASKA BOTANICAL GARDEN INC NaN \n",
|
||
"2 ALASKA CHALLENGER CENTER FOR SPACE SCIENCE TEC... NaN \n",
|
||
"3 ALASKA EDUCATORS HISTORICAL SOCIETY NaN \n",
|
||
"4 ALASKA AVIATION HERITAGE MUSEUM NaN \n",
|
||
"... ... ... \n",
|
||
"33067 WYOMING STATE HISTORICAL SOCIETY NaN \n",
|
||
"33068 WYOMING STATE MUSEUM VOLUNTEERS INC NaN \n",
|
||
"33069 WYOMING TERRITORIAL PARK HISTORIC ASSOCIATION INC NaN \n",
|
||
"33070 WYOMING TRANSPORTATION MUSEUM CORP NaN \n",
|
||
"33071 LITTLE PEOPLE LEARNING CENTER INC NaN \n",
|
||
"\n",
|
||
" Museum Type Institution Name \\\n",
|
||
"0 HISTORY MUSEUM NaN \n",
|
||
"1 ARBORETUM, BOTANICAL GARDEN, OR NATURE CENTER NaN \n",
|
||
"2 SCIENCE & TECHNOLOGY MUSEUM OR PLANETARIUM NaN \n",
|
||
"3 HISTORIC PRESERVATION NaN \n",
|
||
"4 HISTORY MUSEUM NaN \n",
|
||
"... ... ... \n",
|
||
"33067 HISTORIC PRESERVATION NaN \n",
|
||
"33068 GENERAL MUSEUM NaN \n",
|
||
"33069 HISTORIC PRESERVATION NaN \n",
|
||
"33070 HISTORY MUSEUM NaN \n",
|
||
"33071 HISTORIC PRESERVATION NaN \n",
|
||
"\n",
|
||
" Street Address (Administrative Location) \\\n",
|
||
"0 4721 AIRCRAFT DR \n",
|
||
"1 4601 CAMPBELL AIRSTRIP RD \n",
|
||
"2 9711 KENAI SPUR HWY \n",
|
||
"3 214 BIRCH STREET \n",
|
||
"4 301 W NORTHERN LIGHTS BLVD \n",
|
||
"... ... \n",
|
||
"33067 PO BOX 73 \n",
|
||
"33068 2301 CENTRAL AVENUE \n",
|
||
"33069 1273 N 15TH ST STE 121 \n",
|
||
"33070 PO BOX 704 \n",
|
||
"33071 NATIONAL PARK SERVICE \n",
|
||
"\n",
|
||
" City (Administrative Location) State (Administrative Location) \\\n",
|
||
"0 153 0 \n",
|
||
"1 153 0 \n",
|
||
"2 3809 0 \n",
|
||
"3 3809 0 \n",
|
||
"4 153 0 \n",
|
||
"... ... ... \n",
|
||
"33067 7003 50 \n",
|
||
"33068 1323 50 \n",
|
||
"33069 4101 50 \n",
|
||
"33070 1323 50 \n",
|
||
"33071 8575 50 \n",
|
||
"\n",
|
||
" Zip Code (Administrative Location) ... Latitude Longitude \\\n",
|
||
"0 99502 ... 61.17925 -149.97254 \n",
|
||
"1 99507 ... 61.16890 -149.76708 \n",
|
||
"2 99611 ... 60.56149 -151.21598 \n",
|
||
"3 99611 ... 60.56280 -151.26597 \n",
|
||
"4 99503 ... 61.17925 -149.97254 \n",
|
||
"... ... ... ... ... \n",
|
||
"33067 82801 ... 44.82345 -106.87592 \n",
|
||
"33068 82001 ... 41.13941 -104.81813 \n",
|
||
"33069 82072 ... 41.32276 -105.57686 \n",
|
||
"33070 82003 ... 41.13010 -104.81916 \n",
|
||
"33071 82190 ... 44.91303 -110.41584 \n",
|
||
"\n",
|
||
" Locale Code (NCES) County Code (FIPS) State Code (FIPS) \\\n",
|
||
"0 1.0 20.0 2.0 \n",
|
||
"1 4.0 20.0 2.0 \n",
|
||
"2 3.0 122.0 2.0 \n",
|
||
"3 3.0 122.0 2.0 \n",
|
||
"4 1.0 20.0 2.0 \n",
|
||
"... ... ... ... \n",
|
||
"33067 4.0 33.0 56.0 \n",
|
||
"33068 1.0 21.0 56.0 \n",
|
||
"33069 3.0 1.0 56.0 \n",
|
||
"33070 1.0 21.0 56.0 \n",
|
||
"33071 4.0 29.0 56.0 \n",
|
||
"\n",
|
||
" Region Code (AAM) Employer ID Number Tax Period Income \\\n",
|
||
"0 6 920071852 201312.000000 6.029120e+05 \n",
|
||
"1 6 920115504 201312.000000 1.379576e+06 \n",
|
||
"2 6 921761906 201312.000000 7.400300e+05 \n",
|
||
"3 6 920165178 201412.000000 0.000000e+00 \n",
|
||
"4 6 920071852 201312.000000 6.029120e+05 \n",
|
||
"... ... ... ... ... \n",
|
||
"33067 5 836007540.0 201347.458548 1.069682e+08 \n",
|
||
"33068 5 237368629.0 201404.000000 0.000000e+00 \n",
|
||
"33069 5 830318392.0 201312.000000 2.085080e+05 \n",
|
||
"33070 5 830295570.0 201309.000000 0.000000e+00 \n",
|
||
"33071 5 830249072.0 201312.000000 1.274960e+05 \n",
|
||
"\n",
|
||
" Revenue \n",
|
||
"0 5.502360e+05 \n",
|
||
"1 1.323742e+06 \n",
|
||
"2 7.290800e+05 \n",
|
||
"3 0.000000e+00 \n",
|
||
"4 5.502360e+05 \n",
|
||
"... ... \n",
|
||
"33067 2.097605e+07 \n",
|
||
"33068 0.000000e+00 \n",
|
||
"33069 8.398100e+04 \n",
|
||
"33070 0.000000e+00 \n",
|
||
"33071 1.267620e+05 \n",
|
||
"\n",
|
||
"[33072 rows x 25 columns]"
|
||
]
|
||
},
|
||
"execution_count": 31,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Final dataset"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {
|
||
"id": "hFzaF_CMBrCd"
|
||
},
|
||
"outputs": [],
|
||
"source": []
|
||
}
|
||
],
|
||
"metadata": {
|
||
"colab": {
|
||
"provenance": [],
|
||
"toc_visible": true
|
||
},
|
||
"kernelspec": {
|
||
"display_name": "Python 3 (ipykernel)",
|
||
"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.11.9"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 4
|
||
}
|