{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "6a5f234f",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/ec2-user/anaconda3/envs/python3/lib/python3.10/site-packages/pandas/core/computation/expressions.py:21: UserWarning: Pandas requires version '2.8.0' or newer of 'numexpr' (version '2.7.3' currently installed).\n",
      "  from pandas.core.computation.check import NUMEXPR_INSTALLED\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import boto3 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "e62f1239",
   "metadata": {},
   "outputs": [],
   "source": [
    "s3 = boto3.resource('s3')\n",
    "bucket_name = 'dev-cucumbers'\n",
    "bucket = s3.Bucket(bucket_name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "4d13d74d",
   "metadata": {},
   "outputs": [],
   "source": [
    "path = 'eimpara/TikTok_analysis/Pop'\n",
    "table_names = []\n",
    "\n",
    "for obj in bucket.objects.filter(Prefix=path):\n",
    "    table_name = obj.key.split('/')[-1]\n",
    "    if len(table_name) > 0:\n",
    "        table_names.append(table_name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "0a2e9805",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "56"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Expected 56 files: 2 chunks * 28 parallel processes\n",
    "\n",
    "len(table_names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "2ea55271",
   "metadata": {},
   "outputs": [],
   "source": [
    "# for table_name in table_names:\n",
    "#     print(f'{path}/{table_name}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "27640424",
   "metadata": {},
   "outputs": [],
   "source": [
    "merged_df = pd.DataFrame() \n",
    "\n",
    "for table_name in table_names:\n",
    "    obj = bucket.Object(f'{path}/{table_name}')\n",
    "    table_data = pd.read_csv(obj.get()['Body'])\n",
    "    merged_df = pd.concat([merged_df,table_data])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "7dd7c99b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7530, 3)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "merged_df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "878333c9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7530"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Pop should have 7517 unique ISRCs (there are 13 ISRCs more here?)\n",
    "\n",
    "merged_df['ISRC'].nunique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "6f13af77",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7530, 3)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "merged_df = merged_df.drop_duplicates()\n",
    "merged_df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "9b2230a5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Index: 7530 entries, 0 to 134\n",
      "Data columns (total 3 columns):\n",
      " #   Column      Non-Null Count  Dtype  \n",
      "---  ------      --------------  -----  \n",
      " 0   ISRC        7530 non-null   object \n",
      " 1   exog_coeff  7530 non-null   float64\n",
      " 2   pvalue      6173 non-null   float64\n",
      "dtypes: float64(2), object(1)\n",
      "memory usage: 235.3+ KB\n"
     ]
    }
   ],
   "source": [
    "merged_df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "0c9187d7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "NaAs in coeff:  0\n",
      "NaAs in pvalue:  1357\n"
     ]
    }
   ],
   "source": [
    "print('NaAs in coeff: ', merged_df['exog_coeff'].isnull().sum())\n",
    "print('NaAs in pvalue: ', merged_df['pvalue'].isnull().sum())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "0428e92f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6173"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "no_nans_pval = len(merged_df) - (merged_df['pvalue'].isnull().sum())\n",
    "no_nans_pval"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "3d039dfa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "226"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len_pval_sig = len(merged_df[~(merged_df['pvalue'].isnull()) & (merged_df['pvalue'] <= 0.05)])\n",
    "len_pval_sig"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "f83b6bc6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Proportion of significant p-values:  0.037\n"
     ]
    }
   ],
   "source": [
    "print('Proportion of significant p-values: ', round(len_pval_sig/no_nans_pval, 3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "e08b78a1",
   "metadata": {},
   "outputs": [],
   "source": [
    "subset = merged_df[~merged_df['pvalue'].isnull()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "4c6ddfa0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    6173.000000\n",
       "mean        0.009947\n",
       "std         1.848729\n",
       "min       -33.138576\n",
       "25%        -0.000039\n",
       "50%         0.000000\n",
       "75%         0.000050\n",
       "max        83.682948\n",
       "Name: exog_coeff, dtype: float64"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "subset['exog_coeff'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "555376a6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x7f415cdff1f0>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 1500x500 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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N2+uNm3aaOzYsdqzZ098KtqINmzYoFGjRikrK0tNmzbVscceq7vvvjvq3hL1/kMO9mhUr8rPz9cpp5yiFi1aqG3btrrooou0Zs2asGuMMbrnnnvUvn17NW3aVH/4wx/09ddfx6nGh1d+fr58Pp/GjRvnlCX6/W/ZskVXX321WrdurWbNmql3794qLCx0Xk/k+6+srNSf//xn5793Xbt21eTJkxUMBp1rPHP/xkJjx441gwcPNpLMsmXLnPLKykrTs2dPM3DgQLN06VJTUFBg2rdvb26++eb4VbaRvPPOO2bkyJHmvffeM2vXrjX/93//Z9q2bWtuu+0255pEvn9jjHn55ZdNkyZNzHPPPWdWrVplbrnlFtO8eXOzcePGeFet0Z133nlm1qxZ5l//+pdZvny5GTJkiOncubP55ZdfnGsefPBB06JFC/Paa6+ZlStXmmHDhpl27dqZ8vLyONa88X3xxRfmmGOOMSeddJK55ZZbnPJEvv8ff/zRdOnSxYwcOdJ8/vnnZv369ebvf/+7+f77751rEvn+77vvPtO6dWvz17/+1axfv9688sor5qijjjJTp051rvHK/VsX0gsWLDDdu3c3X3/9dVRIL1iwwPj9frNlyxanbN68eSYQCJiysrI41Pbwevjhh01WVpbzPNHvv2/fviY3NzesrHv37mbChAlxqtGRU1paaiSZjz/+2BhjTDAYNJmZmebBBx90rtm9e7dJT083Tz/9dLyq2eh27NhhunXrZgoKCsyZZ57phHSi3/8dd9xhzjjjjDpfT/T7HzJkiLnuuuvCyi655BJz9dVXG2O8df9WdXf/8MMPuv766/W///u/atYs+ozgzz77TD179lT79u2dsvPOO08VFRVh3USJoqysTK1a1ZyxnMj3HzoaNfKo0/0djZpIQqe/hX7e69evV0lJSdi/RyAQ0JlnnplQ/x433XSThgwZonPOOSesPNHv/6233lJOTo4uu+wytW3bVieffLKee+455/VEv/8zzjhDH3zwgb799ltJ0ooVK/TJJ5/oggsukOSt+4/7ZiZHijFGI0eOVG5urnJycrRhw4aoa2IdhdmyZUulpKTUeXymV61du1ZPPPGEHn30Uacske+/IUejJgpjjPLy8nTGGWeoZ8+ekuTcc6x/j40bNx7xOh4OL7/8spYuXaovv/wy6rVEv/9169Zp+vTpysvL05133qkvvvhCY8eOVSAQ0PDhwxP+/u+44w6VlZWpe/fuSkpKUlVVle6//35deeWVkrz18/d8S/qee+6Rz+fb72PJkiV64oknVF5erokTJ+7382IdeWkOcHxmPNX3/mvbunWrzj//fF122WUaPXp02Gteu/+DdbBHoyaCm2++WV999ZXmzZsX9Vqi/nts2rRJt9xyi1588UWlpqbWeV2i3n8wGFSfPn30wAMP6OSTT9YNN9yg66+/XtOnTw+7LlHvf/78+XrxxRf10ksvaenSpXrhhRf0yCOP6IUXXgi7zgv37/mW9M0336wrrrhiv9ccc8wxuu+++/TPf/4zaiu4nJwc/dd//ZdeeOEFZWZm6vPPPw97/aefftLevXvrPD4z3up7/yFbt27VwIED1a9fPz377LNh13nx/uurIUejJoI//vGPeuutt7Rw4UJ17NjRKc/MzJRU3aJo166dU54o/x6FhYUqLS1Vdna2U1ZVVaWFCxfqySefdGa6J+r9t2vXTieeeGJYWY8ePfTaa69JSvyf/+23364JEyY4/2383e9+p40bNyo/P18jRozw1v3HbTT8CNu4caNZuXKl83jvvfeMJPPqq6+aTZs2GWNqJk5t3brVed/LL7+cMBOnNm/ebLp162auuOIKU1lZGfV6ot9/3759zY033hhW1qNHj4ScOBYMBs1NN91k2rdvb7799tuYr2dmZpqHHnrIKauoqHDlxJmGKC8vD/vf+8qVK01OTo65+uqrzcqVKxP+/q+88sqoiWPjxo0z/fr1M8Yk/s+/VatWZtq0aWFlDzzwgOnWrZsxxlv3b01IR1q/fn2dS7DOPvtss3TpUvP3v//ddOzYMSGWIG3ZssUcd9xx5qyzzjKbN282xcXFziMkke/fmJolWDNmzDCrVq0y48aNM82bNzcbNmyId9Ua3Y033mjS09PNRx99FPaz3rlzp3PNgw8+aNLT083rr79uVq5caa688kpXLkFpLLVndxuT2Pf/xRdfmOTkZHP//feb7777zsydO9c0a9bMvPjii841iXz/I0aMMB06dHCWYL3++uumTZs25k9/+pNzjVfun5CuFdLGVLe4hwwZYpo2bWpatWplbr75ZrN79+74VLIRzZo1y0iK+agtUe8/5KmnnjJdunQxKSkppk+fPs6SpERT18961qxZzjXBYNDcfffdJjMz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",
      "text/plain": [
       "<Figure size 500x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(15, 5))\n",
    "\n",
    "sns.displot(subset, x='exog_coeff', kind='kde')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e2fa33ab",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "conda_python3",
   "language": "python",
   "name": "conda_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.10.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
