{
 "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/World_Latin'\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": [
       "80"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Expected 80 files: 4 chunks * 20 parallel processes\n",
    "\n",
    "len(table_names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "2ea55271",
   "metadata": {},
   "outputs": [],
   "source": [
    "# for table_name in table_names:\n",
    "#     print(f'{path}/{table_name}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "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": [
       "(5876, 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": [
       "5876"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Rock should have 5883 unique ISRCs (7 missing)\n",
    "merged_df['ISRC'].nunique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "6f13af77",
   "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>ISRC</th>\n",
       "      <th>exog_coeff</th>\n",
       "      <th>pvalue</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>BRWNV1900180</td>\n",
       "      <td>0.000008</td>\n",
       "      <td>0.414426</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>BRWNV1900192</td>\n",
       "      <td>-0.000069</td>\n",
       "      <td>0.517034</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>BRWNV1900194</td>\n",
       "      <td>-0.000033</td>\n",
       "      <td>0.722171</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>BRWNV1900268</td>\n",
       "      <td>-0.000013</td>\n",
       "      <td>0.339153</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>BRWNV1900304</td>\n",
       "      <td>0.000111</td>\n",
       "      <td>0.017528</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>69</th>\n",
       "      <td>USBMF9100431</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>70</th>\n",
       "      <td>USBMF9100622</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>71</th>\n",
       "      <td>USBMF9120221</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>72</th>\n",
       "      <td>USBMF9120254</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>73</th>\n",
       "      <td>USBMF9120521</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5876 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            ISRC  exog_coeff    pvalue\n",
       "0   BRWNV1900180    0.000008  0.414426\n",
       "1   BRWNV1900192   -0.000069  0.517034\n",
       "2   BRWNV1900194   -0.000033  0.722171\n",
       "3   BRWNV1900268   -0.000013  0.339153\n",
       "4   BRWNV1900304    0.000111  0.017528\n",
       "..           ...         ...       ...\n",
       "69  USBMF9100431    0.000000  1.000000\n",
       "70  USBMF9100622    0.000000  1.000000\n",
       "71  USBMF9120221    0.000000  1.000000\n",
       "72  USBMF9120254    0.000000  1.000000\n",
       "73  USBMF9120521    0.000000  1.000000\n",
       "\n",
       "[5876 rows x 3 columns]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "merged_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "9b2230a5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Index: 5876 entries, 0 to 73\n",
      "Data columns (total 3 columns):\n",
      " #   Column      Non-Null Count  Dtype  \n",
      "---  ------      --------------  -----  \n",
      " 0   ISRC        5876 non-null   object \n",
      " 1   exog_coeff  5876 non-null   float64\n",
      " 2   pvalue      4997 non-null   float64\n",
      "dtypes: float64(2), object(1)\n",
      "memory usage: 183.6+ 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:  879\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": 12,
   "id": "3d039dfa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "4997"
      ]
     },
     "execution_count": 12,
     "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": 13,
   "id": "e446e739",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "217"
      ]
     },
     "execution_count": 13,
     "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": 14,
   "id": "f83b6bc6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Proportion of significant p-values:  0.043\n"
     ]
    }
   ],
   "source": [
    "print('Proportion of significant p-values: ', round(len_pval_sig/no_nans_pval, 3))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "e08b78a1",
   "metadata": {},
   "outputs": [],
   "source": [
    "subset = merged_df[~merged_df['pvalue'].isnull()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "4c6ddfa0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    4997.000000\n",
       "mean        0.018066\n",
       "std         1.124923\n",
       "min       -33.486871\n",
       "25%        -0.000016\n",
       "50%         0.000000\n",
       "75%         0.000019\n",
       "max        32.752902\n",
       "Name: exog_coeff, dtype: float64"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "subset['exog_coeff'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "555376a6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x7ff82c914610>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 3000x4500 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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5eW68cYbrePl5eWaOHFiyNeMGTNGb775ZsCxVatWadSoUR1en/Z4PPJ4AjdoOP3000+u8TGWkZGRkP+DRQv96/ySvY/J3j8p+fvYmfsX19uziouL9eKLL2rhwoXasmWL7r//flVVVamoqEhS62i4sLDQOr+oqEg7d+5UcXGxtmzZooULF2rBggWaMWNGvLoAAICj4nqNetKkSfr22281a9YsVVdXa/jw4Vq5cqUGDx4sSaqurg64pzo3N1crV67U/fffrz/+8Y/q16+fnn32Wf3oRz+KVxcAAHBU3BeTTZs2TdOmTQv5XFlZWdCxyy67TOvXr3e4VYnB4/Ho0UcfDZq6Txb0r/NL9j4me/+k5O9jMvQvrhueAACA44v7Xt8AAKBjBDUAAAmMoAYAIIER1Anohz/8oQYNGqT09HT17dtXt912m/buDdyqtKqqShMmTNCpp56qXr16afr06WpsbIxTi+355ptvNGXKFOXm5qp79+46++yz9eijjwa1vzP38Te/+Y3Gjh2rU045pcP79jtz/yT7JWoT2Zo1azRhwgT169dPLpdLK1asCHjeGKPHHntM/fr1U/fu3XX55Zfriy++iE9jI1BaWqrvf//76tGjh/r06aMbbrhBW7duDTinM/dx/vz5uuCCC6x7pceMGaO33nrLer4z900iqBPS+PHj9fLLL2vr1q169dVXtX37dv34xz+2nm9padH111+vQ4cO6cMPP9RLL72kV199VQ888EAcWx2+L7/8Ul6vV88//7y++OIL/f73v9dzzz2nhx9+2Dqns/exsbFRN998s+6+++6Qz3f2/tktUZvoDh06pBEjRmju3Lkhn3/qqac0e/ZszZ07V5999plycnJ09dVXq76+PsYtjcz777+ve+65R5988onKy8vV3Nys/Px8HTp0yDqnM/dxwIABevLJJ7Vu3TqtW7dOV1xxhSZOnGiFcWfumyTJIOG9/vrrxuVymcbGRmOMMStXrjRut9vs2bPHOmfp0qXG4/GY2traeDXzpDz11FMmNzfX+j5Z+rho0SKTmZkZdLyz92/06NGmqKgo4Nh5551nHnrooTi1KHokmeXLl1vfe71ek5OTY5588knr2NGjR01mZqZ57rnn4tDCk7dv3z4jybz//vvGmOTs4xlnnGFefPHFpOgbI+oEd+DAAS1ZskRjx461tkn9+OOPNXz4cPXr188675prrlFDQ4MqKiri1dSTUltbq6ysLOv7ZOyjv87cP1+J2vYlZ49XorYz27Fjh2pqagL66/F4dNlll3Xa/vqqCPp+5pKpjy0tLXrppZd06NAhjRkzJin6RlAnqAcffFCnnnqqevbsqaqqKr3++uvWc6HKfZ5xxhlKS0vrsERoItu+fbv+8Ic/WFvHSsnXx/Y6c/8iKVHbmfn6lCz9NcaouLhYl156qYYPHy4pOfr4+eef67TTTpPH41FRUZGWL1+u733ve0nRN4I6Rh577DG5XK7jPtatW2ed/8tf/lKVlZVatWqVUlJSVFhYGFDoPVTlL3OCEqFOs9tHSdq7d6+uvfZa3XzzzZo6dWrAc4nWx0j6dzyJ1j+77Jao7eySpb/33nuvNm3apKVLlwY915n7eO6552rDhg365JNPdPfdd2vy5MnavLmtUGtn7lvctxDtKu6991795Cc/Oe45Z555pvV1r1691KtXLw0dOlTDhg3TwIED9cknn2jMmDHKycnRp59+GvDa7777Tk1NTR2WCI0Fu33cu3evxo8frzFjxuiFF14IOC8R+2i3f8eTiP0LVyQlajuznJwcSa2jzr59+1rHO2N/f/GLX+iNN97QmjVrNGDAAOt4MvQxLS1NQ4YMkSSNGjVKn332mZ555hk9+OCDkjp331hM1glUVVUZSebdd981xrQtRNq7d691zksvvdRpFiIZY8zu3bvNOeecY37yk5+Y5ubmoOeToY/GnHgxWWft3+jRo83dd98dcGzYsGFJvZjst7/9rXWsoaGhUy1G8nq95p577jH9+vUzf/vb30I+39n72N4VV1xhJk+enBR9I6gTzKeffmr+8Ic/mMrKSvPNN9+Y1atXm0svvdScffbZ5ujRo8YYY5qbm83w4cPNlVdeadavX2/+93//1wwYMMDce++9cW59ePbs2WOGDBlirrjiCrN7925TXV1tPXw6ex937txpKisrzeOPP25OO+00U1lZaSorK019fb0xpvP376WXXjLdunUzCxYsMJs3bzb33XefOfXUU80333wT76ZFpL6+3vpvJMnMnj3bVFZWmp07dxpjjHnyySdNZmamee2118znn39ufvrTn5q+ffuaurq6OLc8PHfffbfJzMw07733XsDP2+HDh61zOnMfS0pKzJo1a8yOHTvMpk2bzMMPP2zcbrdZtWqVMaZz980YgjrhbNq0yYwfP95kZWUZj8djzjzzTFNUVGR2794dcN7OnTvN9ddfb7p3726ysrLMvffeawV5olu0aJGRFPLhrzP3cfLkySH755sVMaZz988YY/74xz+awYMHm7S0NHPRRRdZt/p0Ru+++27I/16TJ082xrSOOB999FGTk5NjPB6P+dd//Vfz+eefx7fRNnT087Zo0SLrnM7cxzvvvNP6f7F3797myiuvtELamM7dN2OMoXoWAAAJjFXfAAAkMIIaAIAERlADAJDACGoAABIYQQ0AQAIjqAEASGAENQAACYygBgAggRHUADqNxx57TNnZ2XK5XFqxYkWHx4Bkws5kADqFLVu26Hvf+56WL1+uiy++WGeccYa+/vrroGMejyfeTQWiijKXADqF7du3S5ImTpxo1REOdQxINkx9A52EMUZPPfWUzjrrLHXv3l0jRozQK6+8ImOMrrrqKl177bXyTZD985//1KBBgzRz5kxJktfr1axZszRgwAB5PB5deOGFevvttwPef+3atbrwwguVnp6uUaNGacWKFXK5XNqwYUNY7fviiy90/fXXKyMjQz169NC4ceOsIA3n8/fs2aNJkybpjDPOUM+ePTVx4kR98803klqntydMmCBJcrvdcrlcIY8BSSmOBUEA2PDwww+b8847z7z99ttm+/btZtGiRcbj8Zj33nvP7N6925xxxhlmzpw5xhhjJk2aZEaNGmUaGxuNMcbMnj3bZGRkmKVLl5ovv/zS/OpXvzLdunWzahPX1dWZrKws87Of/cx88cUXZuXKlWbo0KFGkqmsrDxh23bv3m2ysrLMTTfdZD777DOzdetWs3DhQvPll1+G9fmHDh0y55xzjrnzzjvNpk2bzObNm82tt95qzj33XNPQ0GDq6+utqmu+Eo2hjgHJiKAGOoGDBw+a9PR0s3bt2oDjU6ZMMT/96U+NMca8/PLLxuPxmJKSEnPKKaeYrVu3Wuf169fP/OY3vwl47fe//30zbdo0Y4wx8+fPNz179jRHjhyxnv+v//qvsIO6pKTE5ObmWn8xaO9En79gwQJz7rnnGq/Xaz3f0NBgunfvbt555x1jjDHLly8PKoUa6hiQbLhGDXQCmzdv1tGjR3X11VcHHG9sbNTIkSMlSTfffLOWL1+u0tJSzZ8/X0OHDpUk1dXVae/evbrkkksCXnvJJZdo48aNkqStW7fqggsuUHp6uvX86NGjw27fhg0bNG7cOHXr1i3ouXA+v6KiQl999ZV69OgRcM7Ro0et6XOgqyKogU7A6/VKkv7yl7+of//+Ac/5VjkfPnxYFRUVSklJ0bZt24Leo/01XGOMdcz/a//nw9W9e/cTnnO8z/d6vcrLy9OSJUuCXte7d++w2wEkIxaTAZ3A9773PXk8HlVVVWnIkCEBj4EDB0qSHnjgAbndbr311lt69tlntXr1aklSRkaG+vXrpw8//DDgPdeuXathw4ZJks477zxt2rRJDQ0N1vPr1q0Lu30XXHCBPvjgAzU1NQU9F87nX3TRRdq2bZv69OkT1L/MzMyw2wEkpfjOvAMI18yZM03Pnj1NWVmZ+eqrr8z69evN3LlzTVlZmfmf//kfk5aWZioqKowxxvz7v/+7GTBggDlw4IAxxpjf//73JiMjw7z00kvmyy+/NA8++GDAYq7a2lqTlZVlCgsLzebNm83bb79tzjvvPCPJbNiw4YRt279/v+nZs6e1mOxvf/ubWbx4sbWY7ESf71tMdvnll5s1a9aYr7/+2rz33ntm+vTpZteuXcYYrlGj6+L/cKCT8Hq95plnnjHnnnuu6datm+ndu7e55pprzHvvvWeys7PNE088YZ3b1NRkRo8ebW655RZjjDEtLS3m8ccfN/379zfdunUzI0aMMG+99VbA+3/00UfmggsuMGlpaSYvL8/86U9/MpKssD2RjRs3mvz8fHPKKaeYHj16mHHjxpnt27eH/fnV1dWmsLDQ9OrVy3g8HnPWWWeZn//856a2ttYYQ1Cj62JnMgAhLVmyRHfccYdqa2vDugYNwBksJgMgSVq8eLHOOuss9e/fXxs3btSDDz6oW265hZAG4ozFZAAkSTU1NfrZz36mYcOG6f7779fNN9+sF154QZJUVFSk0047LeSjqKgozi0HkhtT3wBOaN++faqrqwv5XEZGhvr06RPjFgFdB0ENAEACY+obAIAERlADAJDACGoAABIYQQ0AQAIjqAEASGAENQAACYygBgAggRHUAAAksP8PVCFXEUluio8AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 500x500 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(30, 45))\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
}
