{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Taking what we have learned from analyzing the kaggle dataset, we decided that we needed more information to try to  \n",
    "# predict profit. We are applying what we learned from our Kaggle analysis to our the numbers dataset. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Ali and Kendra Final Project \n",
    "\n",
    "#importing pandas, csv, \n",
    "import csv \n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import statistics\n",
    "#To create testing and training dfs and labels \n",
    "from sklearn.model_selection import train_test_split \n",
    "# To model the Gaussian Navie Bayes classifier\n",
    "from sklearn.naive_bayes import GaussianNB\n",
    "# To calculate the accuracy score of the model\n",
    "from sklearn.metrics import accuracy_score\n",
    "#confusion matrix \n",
    "from sklearn.metrics import confusion_matrix, classification_report\n",
    "#To get a count or tally of a category in our df \n",
    "from collections import Counter\n",
    "#for pre-processing to fit all numeric data on the standard scale \n",
    "from sklearn.preprocessing import StandardScaler\n",
    "#for applying PCA function on training and testing sets \n",
    "from sklearn.decomposition import PCA\n",
    "#logistic regression \n",
    "from sklearn.linear_model import LogisticRegression\n",
    "#SVMs \n",
    "from sklearn.svm import SVC\n",
    "#For association rule mining \n",
    "from apyori import apriori\n",
    "#This will allow us to silence the warnings\n",
    "import warnings \n",
    "warnings.simplefilter(\"ignore\")\n",
    "#For the confusion matrix \n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Functions that we are going to use in our file: \n",
    "\n",
    "#Creating a function that will change a column data type to category \n",
    "def cat_fun(df, column): \n",
    "    df[column] = df[column].astype(\"category\") \n",
    "    return(df[column])\n",
    "\n",
    "#Creating a function that will remove anything in our df and replace it with nothing \n",
    "def remove(df, column, object_to_remove): \n",
    "    df[column] = df[column].str.replace(object_to_remove, \"\")\n",
    "    return(df[column])\n",
    "\n",
    "#Creating a function that will discretize our columns based on quartiles \n",
    "def quartile_discretize(df, column, categories): \n",
    "    df[column] = pd.qcut(df[column], 4, labels = categories)\n",
    "    return(df[column])\n",
    "\n",
    "#Creating a function that will merge our dfs with a left join\n",
    "def left_merge_2_conditions(df1, df2, column1, column2):\n",
    "    df = pd.merge(df1, df2, how = \"left\", on=[column1, column2])\n",
    "    return(df)\n",
    "\n",
    "#Creating a function that groups by, counts, creates a new column from the index, drops the index and changes the column names\n",
    "def groupby_count(df, groupby_column, count_column): \n",
    "    new_df = pd.DataFrame(df.groupby(groupby_column)[count_column].count())\n",
    "    new_df.columns = [\"count\"]\n",
    "    new_df[groupby_column] = new_df.index.get_level_values(0)\n",
    "    new_df.reset_index(drop = True, inplace = True)\n",
    "    return(new_df)\n",
    "\n",
    "#Creating a function that groups by, counts, creates a new column from the index, drops the index and changes the column names\n",
    "def groupby_2_count(df, groupby_column1, groupby_column2, count_column): \n",
    "    new_df = pd.DataFrame(df.groupby([groupby_column1, groupby_column2 ])[count_column].count())\n",
    "    new_df.columns = [\"count\"]\n",
    "    new_df[groupby_column1] = new_df.index.get_level_values(0)\n",
    "    new_df[groupby_column2] = new_df.index.get_level_values(1)\n",
    "    new_df.reset_index(drop = True, inplace = True)\n",
    "    return(new_df)\n",
    "\n",
    "#Creating a function that groups by, counts, creates a new column from the index, drops the index and changes the column names\n",
    "def groupby_3_count(df, groupby_column1, groupby_column2, groupby_column3, count_column): \n",
    "    new_df = pd.DataFrame(df.groupby([groupby_column1, groupby_column2, groupby_column3 ])[count_column].count())\n",
    "    new_df.columns = [\"count\"]\n",
    "    new_df[groupby_column1] = new_df.index.get_level_values(0)\n",
    "    new_df[groupby_column2] = new_df.index.get_level_values(1)\n",
    "    new_df[groupby_column3] = new_df.index.get_level_values(2)\n",
    "    new_df.reset_index(drop = True, inplace = True)\n",
    "    return(new_df)\n",
    "\n",
    "# Going to use matplotlib for plotting... \n",
    "# To create a plot we followed the following formula: \n",
    "# df.plot(x-axis, y-axis, kind = type of plot, color = [(we specified colors to use here)], legend = False (we did not \n",
    "# want a legend displayed), title = \"Title\") then we added a ylabel with plt.ylabel(\"Type label here\") and an x label \n",
    "# with plt.xlabel(\"type label here\"). Finally, we wanted to change the direction of the xtick names from a 90 degree angle \n",
    "# to no angle with plt.xticks(rotation = rotation angle desired)\n",
    "def bar_graph_count(df, x_column, y_column, title):\n",
    "    g = df.plot(x_column, y_column, kind = \"bar\", legend = False, title = title)\n",
    "    g = plt.ylabel(y_column)\n",
    "    g = plt.xlabel(x_column)\n",
    "    return(g)\n",
    "\n",
    "\n",
    "#This will calculate the exponential moving average of the columns we want\n",
    "#exponential moving averages give more weight to the most recent data and less weight to older data \n",
    "def exp_moving_avg(d, column_to_be_meaned):\n",
    "    d[\"exp_moving_avg\"] = d[column_to_be_meaned].ewm(com = 0.5,adjust=False).mean()\n",
    "    exp_moving_avg = list(d[\"exp_moving_avg\"])\n",
    "    #Adding a 0 to the first entry to exp_moving_avg\n",
    "    exp_moving_avg = [0] + exp_moving_avg\n",
    "    #Removing the last entry in the list \n",
    "    exp_moving_avg.pop()\n",
    "    #Creating a column named exp_moving_avg with the results \n",
    "    d[\"exp_moving_avg\"] = exp_moving_avg\n",
    "    return(exp_moving_avg)\n",
    "\n",
    "#This will calculate the cumulative moving average\n",
    "def cumulative_moving_avg(d): \n",
    "    d[\"moving_avg\"] = d.expanding(min_periods = 1).mean()\n",
    "    moving_avg = list(d[\"moving_avg\"])\n",
    "    #Adding a 0 to the first entry to moving avg\n",
    "    cumulative_moving_avg = [0] + moving_avg\n",
    "    #Removing the last entry in the list \n",
    "    cumulative_moving_avg.pop()\n",
    "    return(cumulative_moving_avg)\n",
    "\n",
    "#This will get the list of all of the entries in the column that we are interested in for calculating the averages\n",
    "def getting_list_of_entries(df, column_interested_in, column_to_be_meaned): \n",
    "    avg_people = pd.DataFrame(df.groupby([column_interested_in, \"released\"])[column_to_be_meaned].mean())\n",
    "    avg_column_scores = pd.DataFrame()\n",
    "    column_interested = list(df[column_interested_in].unique())\n",
    "    return([avg_people, column_interested])\n",
    "\n",
    "#This will make a df for our moving averages that we are calculating \n",
    "def making_df(people_df, column_interested_in, released, person, cumulative_avg, exp_avg): \n",
    "    df_2 = pd.DataFrame({column_interested_in: person, \"released\": released, \"cumulative_mean\": cumulative_avg, \"exp_mean\": exp_avg})\n",
    "    return(df_2)\n",
    "\n",
    "#This includes the functions above, and will calculate the exponential and cumulative moving averages for which ever \n",
    "#column we specify and return a df will the column interested in, released, cumulative_mean, exp_mean\n",
    "def calculating_moving_avg(df, column_interested_in, column_to_be_meaned, ty):\n",
    "    people_df = pd.DataFrame()\n",
    "    people = getting_list_of_entries(df, column_interested_in, column_to_be_meaned)\n",
    "    cumulative_avg = []\n",
    "    avg_people = people[0]\n",
    "    avg_people\n",
    "    for person in people[1]: \n",
    "        d = avg_people.groupby(column_interested_in).get_group(person)\n",
    "        cumulative_avg = cumulative_moving_avg(d)\n",
    "        exp_avg = exp_moving_avg(d, column_to_be_meaned)\n",
    "        d.reset_index(inplace = True)\n",
    "        released = d[\"released\"]\n",
    "        df = pd.DataFrame({column_interested_in: person, \"released\": released, ty+\"_cumulative_mean_\"+column_interested_in : cumulative_avg, ty+\"_exp_mean_\"+column_interested_in: exp_avg})\n",
    "        people_df = people_df.append(df)\n",
    "    return(people_df)\n",
    "\n",
    "#Confusion Matrix Graph Function \n",
    "def confusion_matrix_graph (cm, accuracy_label, type_of_df): \n",
    "    g = plt.figure(figsize=(2,2))\n",
    "    g = sns.heatmap(cm, annot=True, fmt=\".3f\", linewidths=.5, square = True, cmap = 'Blues_r', cbar = False);\n",
    "    g = plt.ylabel('Actual');\n",
    "    g = plt.xlabel('Predicted');\n",
    "    g = all_sample_title = type_of_df +' Accuracy Score: {0}'.format(round(accuracy_label, 4))\n",
    "    g = plt.title(all_sample_title, size = 12);\n",
    "    return(g)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "#reading in the V2_TN_reports.csv that we scraped \n",
    "movies = pd.read_csv(\"V2_TN_reports_dates.csv\", encoding = \"ISO-8859-1\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "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>Unnamed: 0</th>\n",
       "      <th>CreativeType</th>\n",
       "      <th>DomesticBoxOffice</th>\n",
       "      <th>Genre</th>\n",
       "      <th>Infl.Adj.Dom.BoxOffice</th>\n",
       "      <th>InternationalBoxOffice</th>\n",
       "      <th>MaximumTheaters</th>\n",
       "      <th>OpeningWeekendRevenue</th>\n",
       "      <th>OpeningWeekendTheaters</th>\n",
       "      <th>ProductionBudget</th>\n",
       "      <th>ProductionMethod</th>\n",
       "      <th>Released</th>\n",
       "      <th>ReleasedWorldwide</th>\n",
       "      <th>ReleasedWorldwide_2</th>\n",
       "      <th>Released_2</th>\n",
       "      <th>Source</th>\n",
       "      <th>TheatricalDistributor</th>\n",
       "      <th>TheatricalEngagements</th>\n",
       "      <th>Title</th>\n",
       "      <th>WorldwideBoxOffice</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>Fantasy</td>\n",
       "      <td>$317,871,467</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>$510,437,208</td>\n",
       "      <td>$657,176,139</td>\n",
       "      <td>3,672</td>\n",
       "      <td>$90,294,621</td>\n",
       "      <td>3,672</td>\n",
       "      <td>$125,000,000</td>\n",
       "      <td>Animation/Live Action</td>\n",
       "      <td>Nov 16, 2001</td>\n",
       "      <td>Nov 15, 2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>Based on Fiction Book/Short Story</td>\n",
       "      <td>Warner Bros.</td>\n",
       "      <td>36,120</td>\n",
       "      <td>Harry Potter and the SorcererÃ¢ÂÂs Stone</td>\n",
       "      <td>$975,047,606</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>Fantasy</td>\n",
       "      <td>$315,544,750</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>$502,999,394</td>\n",
       "      <td>$571,666,235</td>\n",
       "      <td>3,381</td>\n",
       "      <td>$47,211,490</td>\n",
       "      <td>3,359</td>\n",
       "      <td>$109,000,000</td>\n",
       "      <td>Animation/Live Action</td>\n",
       "      <td>Dec 19, 2001</td>\n",
       "      <td>Dec 19, 2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>Based on Fiction Book/Short Story</td>\n",
       "      <td>New Line</td>\n",
       "      <td>39,234</td>\n",
       "      <td>The Lord of the Rings: The Fellowshipâ¦</td>\n",
       "      <td>$887,210,985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>Kids Fiction</td>\n",
       "      <td>$289,423,425</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>$449,635,428</td>\n",
       "      <td>$270,334,294</td>\n",
       "      <td>3,649</td>\n",
       "      <td>$62,577,067</td>\n",
       "      <td>3,237</td>\n",
       "      <td>$115,000,000</td>\n",
       "      <td>Digital Animation</td>\n",
       "      <td>Nov 2, 2001</td>\n",
       "      <td>Nov 2, 2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>Original Screenplay</td>\n",
       "      <td>Walt Disney</td>\n",
       "      <td>45,411</td>\n",
       "      <td>Monsters, Inc.</td>\n",
       "      <td>$559,757,719</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>Kids Fiction</td>\n",
       "      <td>$267,655,011</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>$430,801,615</td>\n",
       "      <td>$224,157,783</td>\n",
       "      <td>3,715</td>\n",
       "      <td>$42,347,760</td>\n",
       "      <td>3,587</td>\n",
       "      <td>$50,000,000</td>\n",
       "      <td>Digital Animation</td>\n",
       "      <td>May 18, 2001</td>\n",
       "      <td>May 18, 2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>Based on Fiction Book/Short Story</td>\n",
       "      <td>Dreamworks SKG</td>\n",
       "      <td>40,234</td>\n",
       "      <td>Shrek</td>\n",
       "      <td>$491,812,794</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>Kids Fiction</td>\n",
       "      <td>$260,044,825</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>$438,980,791</td>\n",
       "      <td>$85,096,578</td>\n",
       "      <td>3,256</td>\n",
       "      <td>$55,820,330</td>\n",
       "      <td>3,127</td>\n",
       "      <td>$123,000,000</td>\n",
       "      <td>Live Action</td>\n",
       "      <td>Nov 17, 2000</td>\n",
       "      <td>Nov 17, 2000</td>\n",
       "      <td>2000</td>\n",
       "      <td>2000</td>\n",
       "      <td>Based on Fiction Book/Short Story</td>\n",
       "      <td>Universal</td>\n",
       "      <td>27,579</td>\n",
       "      <td>How the Grinch Stole Christmas</td>\n",
       "      <td>$345,141,403</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0  CreativeType DomesticBoxOffice      Genre  \\\n",
       "0           0       Fantasy      $317,871,467  Adventure   \n",
       "1           1       Fantasy      $315,544,750  Adventure   \n",
       "2           2  Kids Fiction      $289,423,425  Adventure   \n",
       "3           3  Kids Fiction      $267,655,011  Adventure   \n",
       "4           4  Kids Fiction      $260,044,825  Adventure   \n",
       "\n",
       "  Infl.Adj.Dom.BoxOffice InternationalBoxOffice MaximumTheaters  \\\n",
       "0           $510,437,208           $657,176,139           3,672   \n",
       "1           $502,999,394           $571,666,235           3,381   \n",
       "2           $449,635,428           $270,334,294           3,649   \n",
       "3           $430,801,615           $224,157,783           3,715   \n",
       "4           $438,980,791            $85,096,578           3,256   \n",
       "\n",
       "  OpeningWeekendRevenue OpeningWeekendTheaters ProductionBudget  \\\n",
       "0           $90,294,621                  3,672     $125,000,000   \n",
       "1           $47,211,490                  3,359     $109,000,000   \n",
       "2           $62,577,067                  3,237     $115,000,000   \n",
       "3           $42,347,760                  3,587      $50,000,000   \n",
       "4           $55,820,330                  3,127     $123,000,000   \n",
       "\n",
       "        ProductionMethod      Released ReleasedWorldwide  ReleasedWorldwide_2  \\\n",
       "0  Animation/Live Action  Nov 16, 2001      Nov 15, 2001                 2001   \n",
       "1  Animation/Live Action  Dec 19, 2001      Dec 19, 2001                 2001   \n",
       "2      Digital Animation   Nov 2, 2001       Nov 2, 2001                 2001   \n",
       "3      Digital Animation  May 18, 2001      May 18, 2001                 2001   \n",
       "4            Live Action  Nov 17, 2000      Nov 17, 2000                 2000   \n",
       "\n",
       "   Released_2                             Source TheatricalDistributor  \\\n",
       "0        2001  Based on Fiction Book/Short Story          Warner Bros.   \n",
       "1        2001  Based on Fiction Book/Short Story              New Line   \n",
       "2        2001                Original Screenplay           Walt Disney   \n",
       "3        2001  Based on Fiction Book/Short Story        Dreamworks SKG   \n",
       "4        2000  Based on Fiction Book/Short Story             Universal   \n",
       "\n",
       "  TheatricalEngagements                                       Title  \\\n",
       "0                36,120  Harry Potter and the SorcererÃ¢ÂÂs Stone   \n",
       "1                39,234    The Lord of the Rings: The Fellowshipâ¦   \n",
       "2                45,411                              Monsters, Inc.   \n",
       "3                40,234                                       Shrek   \n",
       "4                27,579              How the Grinch Stole Christmas   \n",
       "\n",
       "  WorldwideBoxOffice  \n",
       "0       $975,047,606  \n",
       "1       $887,210,985  \n",
       "2       $559,757,719  \n",
       "3       $491,812,794  \n",
       "4       $345,141,403  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We are dropping the first column named Unnamed:0 \n",
    "movies.drop(\"Unnamed: 0\", axis = 1, inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1987, 19)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We have 1987 movies and 19 columns in our current df \n",
    "#We are going to drop any rows if they have nas or missing values for budget\n",
    "movies.dropna(inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1971"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(movies)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We are going to check to see if we have any duplicates \n",
    "movies.drop_duplicates(subset =\"Title\", \n",
    "                     keep = \"first\", inplace = True) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1060"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(movies.Title.unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We had 16 movies with missing values... \n",
    "#Now we are going to drop any movies with 0s in budget \n",
    "movies = movies[movies[\"ProductionBudget\"] != \"$0\"]\n",
    "movies = movies.reset_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1060"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(movies)\n",
    "#We did not have any movies with a 0 budget "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We are going to drop any movies with a DomesticBoxOffice of 0 \n",
    "movies = movies[movies[\"DomesticBoxOffice\"] != \"$0\"]\n",
    "movies = movies.reset_index()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1041"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(movies)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['level_0', 'index', 'CreativeType', 'DomesticBoxOffice', 'Genre',\n",
       "       'Infl.Adj.Dom.BoxOffice', 'InternationalBoxOffice', 'MaximumTheaters',\n",
       "       'OpeningWeekendRevenue', 'OpeningWeekendTheaters', 'ProductionBudget',\n",
       "       'ProductionMethod', 'Released', 'ReleasedWorldwide',\n",
       "       'ReleasedWorldwide_2', 'Released_2', 'Source', 'TheatricalDistributor',\n",
       "       'TheatricalEngagements', 'Title', 'WorldwideBoxOffice'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#We had 19 movies with missing domestic box office info \n",
    "\n",
    "#We are going to change column names to something a little more user friendly. First, we will look at the column names \n",
    "movies.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "movies.drop(['level_0', 'index'], axis = 1, inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "column_names = [\"creative_type\", \"domestic_box_office\", \"genre\", \"inflated_adj_dom_box_office\", \"int_box_office\", \"max_theaters\", \n",
    "                \"open_wkend_rev\", \"open_wkend_theaters\", \"budget\", \"production_method\", \"released\", \"released_ww\", \"year\",\n",
    "                \"year_ww\", \"source\", \"distributor\", \"engagements\", \"title\", \"world_wide_box_office\"]\n",
    "movies.columns = column_names"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "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>creative_type</th>\n",
       "      <th>domestic_box_office</th>\n",
       "      <th>genre</th>\n",
       "      <th>inflated_adj_dom_box_office</th>\n",
       "      <th>int_box_office</th>\n",
       "      <th>max_theaters</th>\n",
       "      <th>open_wkend_rev</th>\n",
       "      <th>open_wkend_theaters</th>\n",
       "      <th>budget</th>\n",
       "      <th>production_method</th>\n",
       "      <th>released</th>\n",
       "      <th>released_ww</th>\n",
       "      <th>year</th>\n",
       "      <th>year_ww</th>\n",
       "      <th>source</th>\n",
       "      <th>distributor</th>\n",
       "      <th>engagements</th>\n",
       "      <th>title</th>\n",
       "      <th>world_wide_box_office</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Fantasy</td>\n",
       "      <td>$317,871,467</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>$510,437,208</td>\n",
       "      <td>$657,176,139</td>\n",
       "      <td>3,672</td>\n",
       "      <td>$90,294,621</td>\n",
       "      <td>3,672</td>\n",
       "      <td>$125,000,000</td>\n",
       "      <td>Animation/Live Action</td>\n",
       "      <td>Nov 16, 2001</td>\n",
       "      <td>Nov 15, 2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>Based on Fiction Book/Short Story</td>\n",
       "      <td>Warner Bros.</td>\n",
       "      <td>36,120</td>\n",
       "      <td>Harry Potter and the SorcererÃ¢ÂÂs Stone</td>\n",
       "      <td>$975,047,606</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Fantasy</td>\n",
       "      <td>$315,544,750</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>$502,999,394</td>\n",
       "      <td>$571,666,235</td>\n",
       "      <td>3,381</td>\n",
       "      <td>$47,211,490</td>\n",
       "      <td>3,359</td>\n",
       "      <td>$109,000,000</td>\n",
       "      <td>Animation/Live Action</td>\n",
       "      <td>Dec 19, 2001</td>\n",
       "      <td>Dec 19, 2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>Based on Fiction Book/Short Story</td>\n",
       "      <td>New Line</td>\n",
       "      <td>39,234</td>\n",
       "      <td>The Lord of the Rings: The Fellowshipâ¦</td>\n",
       "      <td>$887,210,985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Kids Fiction</td>\n",
       "      <td>$289,423,425</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>$449,635,428</td>\n",
       "      <td>$270,334,294</td>\n",
       "      <td>3,649</td>\n",
       "      <td>$62,577,067</td>\n",
       "      <td>3,237</td>\n",
       "      <td>$115,000,000</td>\n",
       "      <td>Digital Animation</td>\n",
       "      <td>Nov 2, 2001</td>\n",
       "      <td>Nov 2, 2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>Original Screenplay</td>\n",
       "      <td>Walt Disney</td>\n",
       "      <td>45,411</td>\n",
       "      <td>Monsters, Inc.</td>\n",
       "      <td>$559,757,719</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Kids Fiction</td>\n",
       "      <td>$267,655,011</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>$430,801,615</td>\n",
       "      <td>$224,157,783</td>\n",
       "      <td>3,715</td>\n",
       "      <td>$42,347,760</td>\n",
       "      <td>3,587</td>\n",
       "      <td>$50,000,000</td>\n",
       "      <td>Digital Animation</td>\n",
       "      <td>May 18, 2001</td>\n",
       "      <td>May 18, 2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>2001</td>\n",
       "      <td>Based on Fiction Book/Short Story</td>\n",
       "      <td>Dreamworks SKG</td>\n",
       "      <td>40,234</td>\n",
       "      <td>Shrek</td>\n",
       "      <td>$491,812,794</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Kids Fiction</td>\n",
       "      <td>$260,044,825</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>$438,980,791</td>\n",
       "      <td>$85,096,578</td>\n",
       "      <td>3,256</td>\n",
       "      <td>$55,820,330</td>\n",
       "      <td>3,127</td>\n",
       "      <td>$123,000,000</td>\n",
       "      <td>Live Action</td>\n",
       "      <td>Nov 17, 2000</td>\n",
       "      <td>Nov 17, 2000</td>\n",
       "      <td>2000</td>\n",
       "      <td>2000</td>\n",
       "      <td>Based on Fiction Book/Short Story</td>\n",
       "      <td>Universal</td>\n",
       "      <td>27,579</td>\n",
       "      <td>How the Grinch Stole Christmas</td>\n",
       "      <td>$345,141,403</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  creative_type domestic_box_office      genre inflated_adj_dom_box_office  \\\n",
       "0       Fantasy        $317,871,467  Adventure                $510,437,208   \n",
       "1       Fantasy        $315,544,750  Adventure                $502,999,394   \n",
       "2  Kids Fiction        $289,423,425  Adventure                $449,635,428   \n",
       "3  Kids Fiction        $267,655,011  Adventure                $430,801,615   \n",
       "4  Kids Fiction        $260,044,825  Adventure                $438,980,791   \n",
       "\n",
       "  int_box_office max_theaters open_wkend_rev open_wkend_theaters  \\\n",
       "0   $657,176,139        3,672    $90,294,621               3,672   \n",
       "1   $571,666,235        3,381    $47,211,490               3,359   \n",
       "2   $270,334,294        3,649    $62,577,067               3,237   \n",
       "3   $224,157,783        3,715    $42,347,760               3,587   \n",
       "4    $85,096,578        3,256    $55,820,330               3,127   \n",
       "\n",
       "         budget      production_method      released   released_ww  year  \\\n",
       "0  $125,000,000  Animation/Live Action  Nov 16, 2001  Nov 15, 2001  2001   \n",
       "1  $109,000,000  Animation/Live Action  Dec 19, 2001  Dec 19, 2001  2001   \n",
       "2  $115,000,000      Digital Animation   Nov 2, 2001   Nov 2, 2001  2001   \n",
       "3   $50,000,000      Digital Animation  May 18, 2001  May 18, 2001  2001   \n",
       "4  $123,000,000            Live Action  Nov 17, 2000  Nov 17, 2000  2000   \n",
       "\n",
       "   year_ww                             source     distributor engagements  \\\n",
       "0     2001  Based on Fiction Book/Short Story    Warner Bros.      36,120   \n",
       "1     2001  Based on Fiction Book/Short Story        New Line      39,234   \n",
       "2     2001                Original Screenplay     Walt Disney      45,411   \n",
       "3     2001  Based on Fiction Book/Short Story  Dreamworks SKG      40,234   \n",
       "4     2000  Based on Fiction Book/Short Story       Universal      27,579   \n",
       "\n",
       "                                        title world_wide_box_office  \n",
       "0  Harry Potter and the SorcererÃ¢ÂÂs Stone          $975,047,606  \n",
       "1    The Lord of the Rings: The Fellowshipâ¦          $887,210,985  \n",
       "2                              Monsters, Inc.          $559,757,719  \n",
       "3                                       Shrek          $491,812,794  \n",
       "4              How the Grinch Stole Christmas          $345,141,403  "
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "creative_type                  object\n",
       "domestic_box_office            object\n",
       "genre                          object\n",
       "inflated_adj_dom_box_office    object\n",
       "int_box_office                 object\n",
       "max_theaters                   object\n",
       "open_wkend_rev                 object\n",
       "open_wkend_theaters            object\n",
       "budget                         object\n",
       "production_method              object\n",
       "released                       object\n",
       "released_ww                    object\n",
       "year                            int64\n",
       "year_ww                         int64\n",
       "source                         object\n",
       "distributor                    object\n",
       "engagements                    object\n",
       "title                          object\n",
       "world_wide_box_office          object\n",
       "dtype: object"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Looking at the data type for each column in our df \n",
    "movies.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                     1041\n",
       "unique                       8\n",
       "top       Contemporary Fiction\n",
       "freq                       441\n",
       "Name: creative_type, dtype: object"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies.creative_type.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Eventually, we need to change the following to numeric: \n",
    "    # domestic_box_office \n",
    "    # inflated_adj_dom_box_office \n",
    "    # int_box_office\n",
    "    # max_theathers \n",
    "    # open_wkend_rev \n",
    "    # open_wkend_theaters \n",
    "    # budget \n",
    "    # engagements \n",
    "    # world_wide_box_office \n",
    "# We need to change the following to category: \n",
    "    # creative_type \n",
    "    # genre \n",
    "    # production_method \n",
    "    # source \n",
    "    # distributor \n",
    "# We need to change the following to date: \n",
    "    # released \n",
    "    # released ww\n",
    "#Once we are done cleaning the data we are going to change the data types of the above questions. \n",
    "#If we change them now, when we clean the df and removed rows, the old categories \n",
    "#remain, and still show as possible categories. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "#First we need to replace the $ and ',' in the columns to be changed to numeric \n",
    "#First, creating a list of columns that we want to change to numeric\n",
    "numeric_columns = [\"domestic_box_office\", \"inflated_adj_dom_box_office\", \"int_box_office\", \n",
    "                   \"max_theaters\", \"open_wkend_rev\", \"open_wkend_theaters\", \"budget\", \"engagements\", \n",
    "                    \"world_wide_box_office\"]\n",
    "#We are using our remove function which takes the following arguments: df, column, item to remove\n",
    "movies[\"domestic_box_office\"] = remove(movies, \"domestic_box_office\", \"$\")\n",
    "movies[\"domestic_box_office\"] = remove(movies, \"domestic_box_office\", \",\")\n",
    "movies[\"inflated_adj_dom_box_office\"] = remove(movies, \"inflated_adj_dom_box_office\", \"$\")\n",
    "movies[\"inflated_adj_dom_box_office\"] = remove(movies, \"inflated_adj_dom_box_office\", \",\")\n",
    "movies[\"int_box_office\"] = remove(movies, \"int_box_office\", \"$\")\n",
    "movies[\"int_box_office\"] = remove(movies, \"int_box_office\", \",\")\n",
    "movies[\"max_theaters\"] = remove(movies, \"max_theaters\", \",\")\n",
    "movies[\"open_wkend_theaters\"] = remove(movies, \"open_wkend_theaters\", \",\")\n",
    "movies[\"open_wkend_rev\"] = remove(movies, \"open_wkend_rev\", \"$\")\n",
    "movies[\"open_wkend_rev\"] = remove(movies, \"open_wkend_rev\", \",\")\n",
    "movies[\"budget\"] = remove(movies, \"budget\", \"$\")\n",
    "movies[\"budget\"] = remove(movies, \"budget\", \",\")\n",
    "movies[\"engagements\"] = remove(movies, \"engagements\", \",\")\n",
    "movies[\"world_wide_box_office\"] = remove(movies, \"world_wide_box_office\", \"$\")\n",
    "movies[\"world_wide_box_office\"] = remove(movies, \"world_wide_box_office\", \",\")\n",
    "#Changing all of the columns in numeric_columns to numeric \n",
    "movies[numeric_columns] = movies[numeric_columns].apply(pd.to_numeric)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# We need to change the following to date: released, released ww\n",
    "movies[\"released\"] = pd.to_datetime(movies[\"released\"])\n",
    "movies[\"released_ww\"] = pd.to_datetime(movies[\"released_ww\"])\n",
    "#Separating the month, day and year into their own columns in case we would like to analyze based on month, day or year\n",
    "movies[\"month\"], movies[\"day\"] = movies[\"released\"].dt.month, movies[\"released\"].dt.day\n",
    "movies[\"month_ww\"], movies[\"day_ww\"] = movies[\"released_ww\"].dt.month, movies[\"released_ww\"].dt.day"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "creative_type                          object\n",
       "domestic_box_office                     int64\n",
       "genre                                  object\n",
       "inflated_adj_dom_box_office             int64\n",
       "int_box_office                          int64\n",
       "max_theaters                            int64\n",
       "open_wkend_rev                          int64\n",
       "open_wkend_theaters                     int64\n",
       "budget                                  int64\n",
       "production_method                      object\n",
       "released                       datetime64[ns]\n",
       "released_ww                    datetime64[ns]\n",
       "year                                    int64\n",
       "year_ww                                 int64\n",
       "source                                 object\n",
       "distributor                            object\n",
       "engagements                             int64\n",
       "title                                  object\n",
       "world_wide_box_office                   int64\n",
       "month                                   int64\n",
       "day                                     int64\n",
       "month_ww                                int64\n",
       "day_ww                                  int64\n",
       "dtype: object"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Checking data types again \n",
    "movies.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CategoricalDtype(categories=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], ordered=True)"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Changing the month to an ordered category \n",
    "cat = list(range(1,13))\n",
    "#Changing the month data type from int to ordered category \n",
    "movies[\"month\"] = pd.Categorical(movies[\"month\"], ordered = True, categories = cat)\n",
    "movies[\"month_ww\"] = pd.Categorical(movies[\"month_ww\"], ordered = True, categories = cat)\n",
    "#Checking to see if it worked \n",
    "movies.month.dtype"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Creating columns named domestic_profit, int_profit, ww_profit \n",
    "#We want to be able to look at the profit for each movie... Therefore we are creating a \n",
    "#profit column which is gross - budget \n",
    "movies[\"dom_profit\"] = movies[\"domestic_box_office\"] - movies[\"budget\"]\n",
    "movies[\"int_profit\"] = movies[\"int_box_office\"] - movies[\"budget\"]\n",
    "movies[\"ww_profit\"] = movies[\"world_wide_box_office\"] - movies[\"budget\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "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>creative_type</th>\n",
       "      <th>domestic_box_office</th>\n",
       "      <th>genre</th>\n",
       "      <th>inflated_adj_dom_box_office</th>\n",
       "      <th>int_box_office</th>\n",
       "      <th>max_theaters</th>\n",
       "      <th>open_wkend_rev</th>\n",
       "      <th>open_wkend_theaters</th>\n",
       "      <th>budget</th>\n",
       "      <th>production_method</th>\n",
       "      <th>...</th>\n",
       "      <th>engagements</th>\n",
       "      <th>title</th>\n",
       "      <th>world_wide_box_office</th>\n",
       "      <th>month</th>\n",
       "      <th>day</th>\n",
       "      <th>month_ww</th>\n",
       "      <th>day_ww</th>\n",
       "      <th>dom_profit</th>\n",
       "      <th>int_profit</th>\n",
       "      <th>ww_profit</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Fantasy</td>\n",
       "      <td>317871467</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>510437208</td>\n",
       "      <td>657176139</td>\n",
       "      <td>3672</td>\n",
       "      <td>90294621</td>\n",
       "      <td>3672</td>\n",
       "      <td>125000000</td>\n",
       "      <td>Animation/Live Action</td>\n",
       "      <td>...</td>\n",
       "      <td>36120</td>\n",
       "      <td>Harry Potter and the SorcererÃ¢ÂÂs Stone</td>\n",
       "      <td>975047606</td>\n",
       "      <td>11</td>\n",
       "      <td>16</td>\n",
       "      <td>11</td>\n",
       "      <td>15</td>\n",
       "      <td>192871467</td>\n",
       "      <td>532176139</td>\n",
       "      <td>850047606</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Fantasy</td>\n",
       "      <td>315544750</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>502999394</td>\n",
       "      <td>571666235</td>\n",
       "      <td>3381</td>\n",
       "      <td>47211490</td>\n",
       "      <td>3359</td>\n",
       "      <td>109000000</td>\n",
       "      <td>Animation/Live Action</td>\n",
       "      <td>...</td>\n",
       "      <td>39234</td>\n",
       "      <td>The Lord of the Rings: The Fellowshipâ¦</td>\n",
       "      <td>887210985</td>\n",
       "      <td>12</td>\n",
       "      <td>19</td>\n",
       "      <td>12</td>\n",
       "      <td>19</td>\n",
       "      <td>206544750</td>\n",
       "      <td>462666235</td>\n",
       "      <td>778210985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Kids Fiction</td>\n",
       "      <td>289423425</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>449635428</td>\n",
       "      <td>270334294</td>\n",
       "      <td>3649</td>\n",
       "      <td>62577067</td>\n",
       "      <td>3237</td>\n",
       "      <td>115000000</td>\n",
       "      <td>Digital Animation</td>\n",
       "      <td>...</td>\n",
       "      <td>45411</td>\n",
       "      <td>Monsters, Inc.</td>\n",
       "      <td>559757719</td>\n",
       "      <td>11</td>\n",
       "      <td>2</td>\n",
       "      <td>11</td>\n",
       "      <td>2</td>\n",
       "      <td>174423425</td>\n",
       "      <td>155334294</td>\n",
       "      <td>444757719</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Kids Fiction</td>\n",
       "      <td>267655011</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>430801615</td>\n",
       "      <td>224157783</td>\n",
       "      <td>3715</td>\n",
       "      <td>42347760</td>\n",
       "      <td>3587</td>\n",
       "      <td>50000000</td>\n",
       "      <td>Digital Animation</td>\n",
       "      <td>...</td>\n",
       "      <td>40234</td>\n",
       "      <td>Shrek</td>\n",
       "      <td>491812794</td>\n",
       "      <td>5</td>\n",
       "      <td>18</td>\n",
       "      <td>5</td>\n",
       "      <td>18</td>\n",
       "      <td>217655011</td>\n",
       "      <td>174157783</td>\n",
       "      <td>441812794</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Kids Fiction</td>\n",
       "      <td>260044825</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>438980791</td>\n",
       "      <td>85096578</td>\n",
       "      <td>3256</td>\n",
       "      <td>55820330</td>\n",
       "      <td>3127</td>\n",
       "      <td>123000000</td>\n",
       "      <td>Live Action</td>\n",
       "      <td>...</td>\n",
       "      <td>27579</td>\n",
       "      <td>How the Grinch Stole Christmas</td>\n",
       "      <td>345141403</td>\n",
       "      <td>11</td>\n",
       "      <td>17</td>\n",
       "      <td>11</td>\n",
       "      <td>17</td>\n",
       "      <td>137044825</td>\n",
       "      <td>-37903422</td>\n",
       "      <td>222141403</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  creative_type  domestic_box_office      genre  inflated_adj_dom_box_office  \\\n",
       "0       Fantasy            317871467  Adventure                    510437208   \n",
       "1       Fantasy            315544750  Adventure                    502999394   \n",
       "2  Kids Fiction            289423425  Adventure                    449635428   \n",
       "3  Kids Fiction            267655011  Adventure                    430801615   \n",
       "4  Kids Fiction            260044825  Adventure                    438980791   \n",
       "\n",
       "   int_box_office  max_theaters  open_wkend_rev  open_wkend_theaters  \\\n",
       "0       657176139          3672        90294621                 3672   \n",
       "1       571666235          3381        47211490                 3359   \n",
       "2       270334294          3649        62577067                 3237   \n",
       "3       224157783          3715        42347760                 3587   \n",
       "4        85096578          3256        55820330                 3127   \n",
       "\n",
       "      budget      production_method  ... engagements  \\\n",
       "0  125000000  Animation/Live Action  ...       36120   \n",
       "1  109000000  Animation/Live Action  ...       39234   \n",
       "2  115000000      Digital Animation  ...       45411   \n",
       "3   50000000      Digital Animation  ...       40234   \n",
       "4  123000000            Live Action  ...       27579   \n",
       "\n",
       "                                        title  world_wide_box_office  month  \\\n",
       "0  Harry Potter and the SorcererÃ¢ÂÂs Stone              975047606     11   \n",
       "1    The Lord of the Rings: The Fellowshipâ¦              887210985     12   \n",
       "2                              Monsters, Inc.              559757719     11   \n",
       "3                                       Shrek              491812794      5   \n",
       "4              How the Grinch Stole Christmas              345141403     11   \n",
       "\n",
       "  day month_ww  day_ww dom_profit  int_profit  ww_profit  \n",
       "0  16       11      15  192871467   532176139  850047606  \n",
       "1  19       12      19  206544750   462666235  778210985  \n",
       "2   2       11       2  174423425   155334294  444757719  \n",
       "3  18        5      18  217655011   174157783  441812794  \n",
       "4  17       11      17  137044825   -37903422  222141403  \n",
       "\n",
       "[5 rows x 26 columns]"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Looking to see if that helped\n",
    "movies.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Creating a percent profit column to have a normalized way to compare profits. \n",
    "#percent_profit = profit/budget*100 \n",
    "movies[\"dom_percent_profit\"] = movies[\"dom_profit\"]/movies[\"budget\"]*100\n",
    "movies[\"int_percent_profit\"] = movies[\"int_profit\"]/movies[\"budget\"]*100\n",
    "movies[\"ww_percent_profit\"] = movies[\"ww_profit\"]/movies[\"budget\"]*100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "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>creative_type</th>\n",
       "      <th>domestic_box_office</th>\n",
       "      <th>genre</th>\n",
       "      <th>inflated_adj_dom_box_office</th>\n",
       "      <th>int_box_office</th>\n",
       "      <th>max_theaters</th>\n",
       "      <th>open_wkend_rev</th>\n",
       "      <th>open_wkend_theaters</th>\n",
       "      <th>budget</th>\n",
       "      <th>production_method</th>\n",
       "      <th>...</th>\n",
       "      <th>month</th>\n",
       "      <th>day</th>\n",
       "      <th>month_ww</th>\n",
       "      <th>day_ww</th>\n",
       "      <th>dom_profit</th>\n",
       "      <th>int_profit</th>\n",
       "      <th>ww_profit</th>\n",
       "      <th>dom_percent_profit</th>\n",
       "      <th>int_percent_profit</th>\n",
       "      <th>ww_percent_profit</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Fantasy</td>\n",
       "      <td>317871467</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>510437208</td>\n",
       "      <td>657176139</td>\n",
       "      <td>3672</td>\n",
       "      <td>90294621</td>\n",
       "      <td>3672</td>\n",
       "      <td>125000000</td>\n",
       "      <td>Animation/Live Action</td>\n",
       "      <td>...</td>\n",
       "      <td>11</td>\n",
       "      <td>16</td>\n",
       "      <td>11</td>\n",
       "      <td>15</td>\n",
       "      <td>192871467</td>\n",
       "      <td>532176139</td>\n",
       "      <td>850047606</td>\n",
       "      <td>154.297174</td>\n",
       "      <td>425.740911</td>\n",
       "      <td>680.038085</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Fantasy</td>\n",
       "      <td>315544750</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>502999394</td>\n",
       "      <td>571666235</td>\n",
       "      <td>3381</td>\n",
       "      <td>47211490</td>\n",
       "      <td>3359</td>\n",
       "      <td>109000000</td>\n",
       "      <td>Animation/Live Action</td>\n",
       "      <td>...</td>\n",
       "      <td>12</td>\n",
       "      <td>19</td>\n",
       "      <td>12</td>\n",
       "      <td>19</td>\n",
       "      <td>206544750</td>\n",
       "      <td>462666235</td>\n",
       "      <td>778210985</td>\n",
       "      <td>189.490596</td>\n",
       "      <td>424.464436</td>\n",
       "      <td>713.955032</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Kids Fiction</td>\n",
       "      <td>289423425</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>449635428</td>\n",
       "      <td>270334294</td>\n",
       "      <td>3649</td>\n",
       "      <td>62577067</td>\n",
       "      <td>3237</td>\n",
       "      <td>115000000</td>\n",
       "      <td>Digital Animation</td>\n",
       "      <td>...</td>\n",
       "      <td>11</td>\n",
       "      <td>2</td>\n",
       "      <td>11</td>\n",
       "      <td>2</td>\n",
       "      <td>174423425</td>\n",
       "      <td>155334294</td>\n",
       "      <td>444757719</td>\n",
       "      <td>151.672543</td>\n",
       "      <td>135.073299</td>\n",
       "      <td>386.745843</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Kids Fiction</td>\n",
       "      <td>267655011</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>430801615</td>\n",
       "      <td>224157783</td>\n",
       "      <td>3715</td>\n",
       "      <td>42347760</td>\n",
       "      <td>3587</td>\n",
       "      <td>50000000</td>\n",
       "      <td>Digital Animation</td>\n",
       "      <td>...</td>\n",
       "      <td>5</td>\n",
       "      <td>18</td>\n",
       "      <td>5</td>\n",
       "      <td>18</td>\n",
       "      <td>217655011</td>\n",
       "      <td>174157783</td>\n",
       "      <td>441812794</td>\n",
       "      <td>435.310022</td>\n",
       "      <td>348.315566</td>\n",
       "      <td>883.625588</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Kids Fiction</td>\n",
       "      <td>260044825</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>438980791</td>\n",
       "      <td>85096578</td>\n",
       "      <td>3256</td>\n",
       "      <td>55820330</td>\n",
       "      <td>3127</td>\n",
       "      <td>123000000</td>\n",
       "      <td>Live Action</td>\n",
       "      <td>...</td>\n",
       "      <td>11</td>\n",
       "      <td>17</td>\n",
       "      <td>11</td>\n",
       "      <td>17</td>\n",
       "      <td>137044825</td>\n",
       "      <td>-37903422</td>\n",
       "      <td>222141403</td>\n",
       "      <td>111.418557</td>\n",
       "      <td>-30.815790</td>\n",
       "      <td>180.602767</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 29 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "  creative_type  domestic_box_office      genre  inflated_adj_dom_box_office  \\\n",
       "0       Fantasy            317871467  Adventure                    510437208   \n",
       "1       Fantasy            315544750  Adventure                    502999394   \n",
       "2  Kids Fiction            289423425  Adventure                    449635428   \n",
       "3  Kids Fiction            267655011  Adventure                    430801615   \n",
       "4  Kids Fiction            260044825  Adventure                    438980791   \n",
       "\n",
       "   int_box_office  max_theaters  open_wkend_rev  open_wkend_theaters  \\\n",
       "0       657176139          3672        90294621                 3672   \n",
       "1       571666235          3381        47211490                 3359   \n",
       "2       270334294          3649        62577067                 3237   \n",
       "3       224157783          3715        42347760                 3587   \n",
       "4        85096578          3256        55820330                 3127   \n",
       "\n",
       "      budget      production_method  ... month day  month_ww  day_ww  \\\n",
       "0  125000000  Animation/Live Action  ...    11  16        11      15   \n",
       "1  109000000  Animation/Live Action  ...    12  19        12      19   \n",
       "2  115000000      Digital Animation  ...    11   2        11       2   \n",
       "3   50000000      Digital Animation  ...     5  18         5      18   \n",
       "4  123000000            Live Action  ...    11  17        11      17   \n",
       "\n",
       "  dom_profit int_profit  ww_profit dom_percent_profit  int_percent_profit  \\\n",
       "0  192871467  532176139  850047606         154.297174          425.740911   \n",
       "1  206544750  462666235  778210985         189.490596          424.464436   \n",
       "2  174423425  155334294  444757719         151.672543          135.073299   \n",
       "3  217655011  174157783  441812794         435.310022          348.315566   \n",
       "4  137044825  -37903422  222141403         111.418557          -30.815790   \n",
       "\n",
       "  ww_percent_profit  \n",
       "0        680.038085  \n",
       "1        713.955032  \n",
       "2        386.745843  \n",
       "3        883.625588  \n",
       "4        180.602767  \n",
       "\n",
       "[5 rows x 29 columns]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#checking to see that worked \n",
    "movies.head()\n",
    "#Writing the clean version of the df to a csv file \n",
    "#movies.to_csv(\"clean.csv\", index = False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "# #For some reason the functions do not work without rereading in the csv file... \n",
    "# movies = pd.read_csv(\"clean.csv\", encoding = \"ISO-8859-1\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1041"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(movies.domestic_box_office.unique())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "#Aggregating a moving average column and calculating the mean average pp for each creative type;\n",
    "#by calculating the mean pp for all creative types but for only the movies prior to the \n",
    "#movie we are calculting the mean for. \n",
    "dom_ct_ma = calculating_moving_avg(movies, \"creative_type\", \"dom_percent_profit\", \"dom\")\n",
    "int_ct_ma = calculating_moving_avg(movies, \"creative_type\", \"int_percent_profit\", \"int\")\n",
    "ww_ct_ma = calculating_moving_avg(movies, \"creative_type\", \"ww_percent_profit\", \"ww\")\n",
    "# #Genres: \n",
    "dom_genre_ma = calculating_moving_avg(movies, \"genre\", \"dom_percent_profit\", \"dom\")\n",
    "int_genre_ma = calculating_moving_avg(movies, \"genre\", \"int_percent_profit\", \"int\")\n",
    "ww_genre_ma = calculating_moving_avg(movies, \"genre\", \"ww_percent_profit\", \"ww\")\n",
    "# production_method: \n",
    "dom_pm_ma = calculating_moving_avg(movies, \"production_method\", \"dom_percent_profit\", \"dom\")\n",
    "int_pm_ma = calculating_moving_avg(movies, \"production_method\", \"int_percent_profit\", \"int\")\n",
    "ww_pm_ma = calculating_moving_avg(movies, \"production_method\", \"ww_percent_profit\", \"ww\")\n",
    "# source\n",
    "dom_source_ma = calculating_moving_avg(movies, \"source\", \"dom_percent_profit\", \"dom\")\n",
    "int_source_ma = calculating_moving_avg(movies, \"source\", \"int_percent_profit\", \"int\")\n",
    "ww_source_ma = calculating_moving_avg(movies, \"source\", \"ww_percent_profit\", \"ww\")\n",
    "# distributor: \n",
    "dom_distributor_ma = calculating_moving_avg(movies, \"distributor\", \"dom_percent_profit\", \"dom\")\n",
    "int_distributor_ma = calculating_moving_avg(movies, \"distributor\", \"int_percent_profit\", \"int\")\n",
    "ww_distributor_ma = calculating_moving_avg(movies, \"distributor\", \"ww_percent_profit\", \"ww\")\n",
    "#Month \n",
    "dom_month_ma = calculating_moving_avg(movies, \"month\", \"dom_percent_profit\", \"dom\")\n",
    "int_month_ma = calculating_moving_avg(movies, \"month\", \"int_percent_profit\", \"int\")\n",
    "ww_month_ma = calculating_moving_avg(movies, \"month\", \"ww_percent_profit\", \"ww\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "#We are going to use our left_merge_2_conditions function: \n",
    "#Inputs: df1, df2, column to merge on 1 and column to merge on 2 \n",
    "\n",
    "#Creating a movies domestic df \n",
    "movies_dom = left_merge_2_conditions(movies, dom_ct_ma, \"creative_type\", \"released\")\n",
    "movies_dom = left_merge_2_conditions(movies_dom, dom_genre_ma, \"genre\", \"released\")\n",
    "movies_dom = left_merge_2_conditions(movies_dom, dom_pm_ma, \"production_method\", \"released\")\n",
    "movies_dom = left_merge_2_conditions(movies_dom, dom_source_ma, \"source\", \"released\")\n",
    "movies_dom = left_merge_2_conditions(movies_dom, dom_distributor_ma, \"distributor\", \"released\")\n",
    "movies_dom = left_merge_2_conditions(movies_dom, dom_month_ma, \"month\", \"released\")\n",
    "\n",
    "#Creating a movies_int df \n",
    "movies_int = left_merge_2_conditions(movies, int_ct_ma, \"creative_type\", \"released\")\n",
    "movies_int = left_merge_2_conditions(movies_int, int_genre_ma, \"genre\", \"released\")\n",
    "movies_int = left_merge_2_conditions(movies_int, int_pm_ma, \"production_method\", \"released\")\n",
    "movies_int = left_merge_2_conditions(movies_int, int_source_ma, \"source\", \"released\")\n",
    "movies_int = left_merge_2_conditions(movies_int, int_distributor_ma, \"distributor\", \"released\")\n",
    "movies_int = left_merge_2_conditions(movies_int, int_month_ma, \"month\", \"released\")\n",
    "\n",
    "#Creating a movies_ww df \n",
    "movies_ww = left_merge_2_conditions(movies, ww_ct_ma, \"creative_type\", \"released\")\n",
    "movies_ww = left_merge_2_conditions(movies_ww, ww_genre_ma, \"genre\", \"released\")\n",
    "movies_ww = left_merge_2_conditions(movies_ww, ww_pm_ma, \"production_method\", \"released\")\n",
    "movies_ww = left_merge_2_conditions(movies_ww, ww_source_ma, \"source\", \"released\")\n",
    "movies_ww = left_merge_2_conditions(movies_ww, ww_distributor_ma, \"distributor\", \"released\")\n",
    "movies_ww = left_merge_2_conditions(movies_ww, ww_month_ma, \"month\", \"released\")\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1041"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Looking at the movies_dom df head \n",
    "len(movies_dom)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['creative_type', 'domestic_box_office', 'genre',\n",
       "       'inflated_adj_dom_box_office', 'int_box_office', 'max_theaters',\n",
       "       'open_wkend_rev', 'open_wkend_theaters', 'budget', 'production_method',\n",
       "       'released', 'released_ww', 'year', 'year_ww', 'source', 'distributor',\n",
       "       'engagements', 'title', 'world_wide_box_office', 'month', 'day',\n",
       "       'month_ww', 'day_ww', 'dom_profit', 'int_profit', 'ww_profit',\n",
       "       'dom_percent_profit', 'int_percent_profit', 'ww_percent_profit',\n",
       "       'dom_cumulative_mean_creative_type', 'dom_exp_mean_creative_type',\n",
       "       'dom_cumulative_mean_genre', 'dom_exp_mean_genre',\n",
       "       'dom_cumulative_mean_production_method',\n",
       "       'dom_exp_mean_production_method', 'dom_cumulative_mean_source',\n",
       "       'dom_exp_mean_source', 'dom_cumulative_mean_distributor',\n",
       "       'dom_exp_mean_distributor', 'dom_cumulative_mean_month',\n",
       "       'dom_exp_mean_month'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Getting the column names for movies_dom\n",
    "movies_dom.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['creative_type', 'genre', 'open_wkend_rev', 'open_wkend_theaters',\n",
       "       'budget', 'production_method', 'released', 'year', 'source',\n",
       "       'distributor', 'title', 'month', 'day', 'dom_percent_profit',\n",
       "       'dom_cumulative_mean_creative_type', 'dom_exp_mean_creative_type',\n",
       "       'dom_cumulative_mean_genre', 'dom_exp_mean_genre',\n",
       "       'dom_cumulative_mean_production_method',\n",
       "       'dom_exp_mean_production_method', 'dom_cumulative_mean_source',\n",
       "       'dom_exp_mean_source', 'dom_cumulative_mean_distributor',\n",
       "       'dom_exp_mean_distributor', 'dom_cumulative_mean_month',\n",
       "       'dom_exp_mean_month'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#removing released_ww, year_ww, world_wide_box_office, month_ww, day_ww, int_profit, ww_profit\n",
    "columns_to_remove = [\"released_ww\", \"year_ww\", \"world_wide_box_office\", \"month_ww\", \"day_ww\", \"int_profit\", \"ww_profit\", \"int_percent_profit\", \"ww_percent_profit\", \"int_box_office\", \n",
    "                    \"domestic_box_office\", \"inflated_adj_dom_box_office\", \"max_theaters\", \"engagements\", \"dom_profit\"]\n",
    "movies_dom.drop(columns_to_remove, axis = 1, inplace = True)\n",
    "movies_dom.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Creating an aggregated column to see if the open_wken_rev/open_wkend_theaters shows if a movie is in more demand \n",
    "movies_dom[\"open_wkend_rev/open_wkend_theaters\"] = movies_dom[\"open_wkend_rev\"]/movies_dom[\"open_wkend_theaters\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We are removing any rows that have 0s for the newly calculated columns \n",
    "#Looking to see what happens if we remove all the movies with a 0 for exp_mean_director and exp_mean_star\n",
    "movies_dom = movies_dom[movies_dom[\"dom_cumulative_mean_creative_type\"] != 0]\n",
    "movies_dom = movies_dom[movies_dom[\"dom_cumulative_mean_genre\"] != 0]\n",
    "movies_dom = movies_dom[movies_dom[\"dom_cumulative_mean_production_method\"] != 0]\n",
    "movies_dom = movies_dom[movies_dom[\"dom_cumulative_mean_source\"] != 0]\n",
    "movies_dom = movies_dom[movies_dom[\"dom_cumulative_mean_distributor\"] != 0]\n",
    "movies_dom = movies_dom[movies_dom[\"dom_cumulative_mean_month\"] != 0]\n",
    "\n",
    "movies_dom.dropna(inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "968"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(movies_dom) #We still have 1859 movies in our df "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Changing creative_type, genre, production_method, source, distributor to category \n",
    "#We are using our cat_fun which takes the following inputs: df, column to change\n",
    "movies_dom[\"creative_type\"] = cat_fun(movies_dom, \"creative_type\")\n",
    "movies_dom[\"genre\"] = cat_fun(movies_dom, \"genre\")\n",
    "movies_dom[\"production_method\"] = cat_fun(movies_dom, \"production_method\")\n",
    "movies_dom[\"source\"] = cat_fun(movies_dom, \"source\")\n",
    "movies_dom[\"distributor\"] = cat_fun(movies_dom, \"distributor\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['creative_type', 'domestic_box_office', 'genre',\n",
       "       'inflated_adj_dom_box_office', 'int_box_office', 'max_theaters',\n",
       "       'open_wkend_rev', 'open_wkend_theaters', 'budget', 'production_method',\n",
       "       'released', 'released_ww', 'year', 'year_ww', 'source', 'distributor',\n",
       "       'engagements', 'title', 'world_wide_box_office', 'month', 'day',\n",
       "       'month_ww', 'day_ww', 'dom_profit', 'int_profit', 'ww_profit',\n",
       "       'dom_percent_profit', 'int_percent_profit', 'ww_percent_profit',\n",
       "       'int_cumulative_mean_creative_type', 'int_exp_mean_creative_type',\n",
       "       'int_cumulative_mean_genre', 'int_exp_mean_genre',\n",
       "       'int_cumulative_mean_production_method',\n",
       "       'int_exp_mean_production_method', 'int_cumulative_mean_source',\n",
       "       'int_exp_mean_source', 'int_cumulative_mean_distributor',\n",
       "       'int_exp_mean_distributor', 'int_cumulative_mean_month',\n",
       "       'int_exp_mean_month'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Repeating the above process for movies_int \n",
    "#Looking at the movies_int columns \n",
    "movies_int.columns "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['creative_type', 'genre', 'open_wkend_rev', 'open_wkend_theaters',\n",
       "       'budget', 'production_method', 'released_ww', 'year_ww', 'source',\n",
       "       'distributor', 'title', 'month_ww', 'day_ww', 'int_percent_profit',\n",
       "       'int_cumulative_mean_creative_type', 'int_exp_mean_creative_type',\n",
       "       'int_cumulative_mean_genre', 'int_exp_mean_genre',\n",
       "       'int_cumulative_mean_production_method',\n",
       "       'int_exp_mean_production_method', 'int_cumulative_mean_source',\n",
       "       'int_exp_mean_source', 'int_cumulative_mean_distributor',\n",
       "       'int_exp_mean_distributor', 'int_cumulative_mean_month',\n",
       "       'int_exp_mean_month'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Removing columns that might unduly influence our prediction method for movies_int \n",
    "columns_to_remove = [\"domestic_box_office\", \"inflated_adj_dom_box_office\", \"int_box_office\", \"max_theaters\", \"world_wide_box_office\", \n",
    "                    \"engagements\", \"dom_profit\", \"int_profit\", \"ww_profit\", \"dom_percent_profit\", \"ww_percent_profit\", \n",
    "                    \"released\", \"year\", \"month\", \"day\"]\n",
    "movies_int.drop(columns_to_remove, axis = 1, inplace = True)\n",
    "movies_int.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Aggregating a new column for open_wken_rev_by_theater; we think that it might show if a movie is more in demand or not. \n",
    "#If a movie made $1 million, but was only shown in 100 theaters and another movie made $1 million but was shown, in 300 \n",
    "#theaters, it might show that movie 1 was more in demand than movie 2... \n",
    "movies_int[\"open_wkend_rev/open_wkend_theaters\"] = movies_int[\"open_wkend_rev\"]/movies_int[\"open_wkend_theaters\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We are removing any rows that have 0s for the newly calculated columns \n",
    "#Looking to see what happens if we remove all the movies with a 0 for exp_mean_director and exp_mean_star\n",
    "movies_int = movies_int[movies_int[\"int_cumulative_mean_creative_type\"] != 0]\n",
    "movies_int = movies_int[movies_int[\"int_cumulative_mean_genre\"] != 0]\n",
    "movies_int = movies_int[movies_int[\"int_cumulative_mean_production_method\"] != 0]\n",
    "movies_int = movies_int[movies_int[\"int_cumulative_mean_source\"] != 0]\n",
    "movies_int = movies_int[movies_int[\"int_cumulative_mean_distributor\"] != 0]\n",
    "movies_int = movies_int[movies_int[\"int_cumulative_mean_month\"] != 0]\n",
    "\n",
    "movies_int.dropna(inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "968"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#We still have 1859 movies after removing any of the aggregated columns with a 0 in them \n",
    "len(movies_int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Changing creative_type, genre, production_method, source, distributor to category \n",
    "#We are using our cat_fun which takes the following inputs: df, column to change\n",
    "movies_int[\"creative_type\"] = cat_fun(movies_int, \"creative_type\")\n",
    "movies_int[\"genre\"] = cat_fun(movies_int, \"genre\")\n",
    "movies_int[\"production_method\"] = cat_fun(movies_int, \"production_method\")\n",
    "movies_int[\"source\"] = cat_fun(movies_int, \"source\")\n",
    "movies_int[\"distributor\"] = cat_fun(movies_int, \"distributor\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['creative_type', 'domestic_box_office', 'genre',\n",
       "       'inflated_adj_dom_box_office', 'int_box_office', 'max_theaters',\n",
       "       'open_wkend_rev', 'open_wkend_theaters', 'budget', 'production_method',\n",
       "       'released', 'released_ww', 'year', 'year_ww', 'source', 'distributor',\n",
       "       'engagements', 'title', 'world_wide_box_office', 'month', 'day',\n",
       "       'month_ww', 'day_ww', 'dom_profit', 'int_profit', 'ww_profit',\n",
       "       'dom_percent_profit', 'int_percent_profit', 'ww_percent_profit',\n",
       "       'ww_cumulative_mean_creative_type', 'ww_exp_mean_creative_type',\n",
       "       'ww_cumulative_mean_genre', 'ww_exp_mean_genre',\n",
       "       'ww_cumulative_mean_production_method', 'ww_exp_mean_production_method',\n",
       "       'ww_cumulative_mean_source', 'ww_exp_mean_source',\n",
       "       'ww_cumulative_mean_distributor', 'ww_exp_mean_distributor',\n",
       "       'ww_cumulative_mean_month', 'ww_exp_mean_month'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#repeating the process for ww \n",
    "movies_ww.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['creative_type', 'genre', 'open_wkend_rev', 'open_wkend_theaters',\n",
       "       'budget', 'production_method', 'released', 'released_ww', 'year',\n",
       "       'year_ww', 'source', 'distributor', 'title', 'month', 'day', 'month_ww',\n",
       "       'day_ww', 'ww_percent_profit', 'ww_cumulative_mean_creative_type',\n",
       "       'ww_exp_mean_creative_type', 'ww_cumulative_mean_genre',\n",
       "       'ww_exp_mean_genre', 'ww_cumulative_mean_production_method',\n",
       "       'ww_exp_mean_production_method', 'ww_cumulative_mean_source',\n",
       "       'ww_exp_mean_source', 'ww_cumulative_mean_distributor',\n",
       "       'ww_exp_mean_distributor', 'ww_cumulative_mean_month',\n",
       "       'ww_exp_mean_month'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Removing columns that would be unfair in our prediction methods \n",
    "columns_to_remove = [\"domestic_box_office\", \"inflated_adj_dom_box_office\", \"int_box_office\", \"max_theaters\", \n",
    "                    \"engagements\", \"world_wide_box_office\", \"dom_profit\", \"int_profit\", \"ww_profit\", \"dom_percent_profit\", \n",
    "                    \"int_percent_profit\"]\n",
    "movies_ww.drop(columns_to_remove, axis = 1, inplace = True)\n",
    "movies_ww.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Aggregating a new column for open_wken_rev_by_theater; we think that it might show if a movie is more in demand or not. \n",
    "#If a movie made $1 million, but was only shown in 100 theaters and another movie made $1 million but was shown, in 300 \n",
    "#theaters, it might show that movie 1 was more in demand than movie 2... \n",
    "movies_ww[\"open_wkend_rev/open_wkend_theaters\"] = movies_ww[\"open_wkend_rev\"]/movies_ww[\"open_wkend_theaters\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We are removing any rows that have 0s for the newly calculated columns \n",
    "#Looking to see what happens if we remove all the movies with a 0 for exp_mean_director and exp_mean_star\n",
    "movies_ww = movies_ww[movies_ww[\"ww_cumulative_mean_creative_type\"] != 0]\n",
    "movies_ww = movies_ww[movies_ww[\"ww_cumulative_mean_genre\"] != 0]\n",
    "movies_ww = movies_ww[movies_ww[\"ww_cumulative_mean_production_method\"] != 0]\n",
    "movies_ww = movies_ww[movies_ww[\"ww_cumulative_mean_source\"] != 0]\n",
    "movies_ww = movies_ww[movies_ww[\"ww_cumulative_mean_distributor\"] != 0]\n",
    "movies_ww = movies_ww[movies_ww[\"ww_cumulative_mean_month\"] != 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "977"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(movies_ww) #We still have 1859 movies in our df "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Changing creative_type, genre, production_method, source, distributor to category \n",
    "#We are using our cat_fun which takes the following inputs: df, column to change\n",
    "movies_ww[\"creative_type\"] = cat_fun(movies_ww, \"creative_type\")\n",
    "movies_ww[\"genre\"] = cat_fun(movies_ww, \"genre\")\n",
    "movies_ww[\"production_method\"] = cat_fun(movies_ww, \"production_method\")\n",
    "movies_ww[\"source\"] = cat_fun(movies_ww, \"source\")\n",
    "movies_ww[\"distributor\"] = cat_fun(movies_ww, \"distributor\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "metadata": {},
   "outputs": [],
   "source": [
    "# movies_dom.to_csv(\"movies_dom.csv\")\n",
    "# movies_int.to_csv(\"movies_int.csv\")\n",
    "# movies_ww.to_csv(\"movies_ww.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We have the same movies with the same discrete columns in our 3 dfs... Therefore, we are only going to perform \n",
    "#exploratory data analysis on one, but it will mimic the other 2 dfs "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "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>count</th>\n",
       "      <th>genre</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>192</td>\n",
       "      <td>Action</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>273</td>\n",
       "      <td>Adventure</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5</td>\n",
       "      <td>Black Comedy</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>165</td>\n",
       "      <td>Comedy</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>Concert/Performance</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1</td>\n",
       "      <td>Documentary</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>132</td>\n",
       "      <td>Drama</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>47</td>\n",
       "      <td>Horror</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>15</td>\n",
       "      <td>Musical</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>42</td>\n",
       "      <td>Romantic Comedy</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>88</td>\n",
       "      <td>Thriller/Suspense</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>7</td>\n",
       "      <td>Western</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count                genre\n",
       "0     192               Action\n",
       "1     273            Adventure\n",
       "2       5         Black Comedy\n",
       "3     165               Comedy\n",
       "4       1  Concert/Performance\n",
       "5       1          Documentary\n",
       "6     132                Drama\n",
       "7      47               Horror\n",
       "8      15              Musical\n",
       "9      42      Romantic Comedy\n",
       "10     88    Thriller/Suspense\n",
       "11      7              Western"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#What is the breakdown of genre in our df?\n",
    "\n",
    "#Getting the count of movies for each genre in our df and saving it as a pandas df. \n",
    "#We are grouping by genre and then getting the count of the genre column in each group by \n",
    "#we could have used any column to get the count of... \n",
    "#We are using the groupby_count function that takes the following arguments (df, groupby_column, count_column)\n",
    "movies_dom_genre = groupby_count(movies_dom, \"genre\", \"genre\")\n",
    "movies_dom_genre"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'genre')"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAF2CAYAAACBJYT/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3dd7hcVbnH8e8v9CogkR4DEVAUBQyKwFUURZCugiIIKooFKYpeEBviRVERL4KKKFU6CoINgUhRkJLQEbgiRIm0gHSREt77x1qzszOZc3Jyzl4zp/w+z5MnM3tm9rtmzsx+9yp7LUUEZmZmAON6XQAzMxs+nBTMzKzipGBmZhUnBTMzqzgpmJlZxUnBzMwqTgqDIOlYSV8uHOMySR/Nt3eVdFGBGAdL+mnT+x1A3B0l3SvpKUnrD+D5m0ma0Y2yNU3SREkhacEexd9E0l/zZ71DD+L/l6Q7ux3XBs9JoY2k30s6tMP27SU9IGnBiPhERHy9W2WKiNMiYouh7KPTgTUivhERHx1a6QblCODTEbFkRNzQ/mA+iL6iRGBJH8r7/3zb9hmSNisRs8cOBY7Jn/Uv2x+UNF3Sc5KWb9t+Y/6cJg4leET8MSLWHso+ekHSSpJ+Ium+nFDvlnSSpFf2umylOSnM7STgg5LUtv2DwGkR8UL3izTqvBy4rYfx/wUcKGnpHpZhvg2ytjGQz/oeYJdanHWBxQYRa8Tp9JlKeilwFbA48F/AUsAGwOXAO7pRhp6KCP+r/SP9GB4H3lzbtizwH+B1+f5JwP/k28sDvwYeIx1s/giMy48F8IrafuqvWza/bibwaL69au25lwEfzbc/BPwp3/5v4Knav+eBk/JjHwZuB54E7gY+nrcvATwDvFh73crAIcCptZjbkQ4gj+X4r6o9Nh34HHBz/nzOAhbt4zMcB3wJ+DvwEHAK8BJgkRw7gKeBv3V47RW1x58C3gdsBswADsj7ux/4cO01i5BqH/8AHgSOBRbro2wfAv4E/Ar4am37DGCz9r9Tvr8ZMKPts/h8/iyeBo4HVgB+lz/7S4Bl83Mn5vezF3BfLvsBbZ/VQcDfgEeAs4Hl2l67Z35vV/Txnj4G3EX6/l0ArJy3/y3/zZ/Jn+UiHV47Pf+trqttOwL4Yo49MW97Sf47zsx/1y/lsi+Svy+vqb1+fI75sg6f3crAL/J+7gH2rT32BmAq8ET+Ox7Zx/ttfR8OBh7O72HXgXwfaq89EHgA+FmH/f8PcBP5d9zPsWIjUvJ4LD9/s7bf79eBK/N34iJg+f7+rv3tr5v/XFNoExHPkH6Yu9c27wzcERE3dXjJAaQv2XjSgeFg0h98XsYBJ5LO5CaQfkTHDKB8347UFLAk8CrSj+vs/PBDwDbA0qQE8T1JG0TE08BWwH2t10bEffX9SloLOAPYP7+X3wK/krRw7Wk7A1sCqwOvJR1gO/lQ/vdWYA1gSVITxrO53JAS7KQO7+/NtceXjIiz8v0VSQemVUg/ph9IWjY/9i1gLWA94BX5OV/po2wtXwY+I2m5eTyvL+8hnTWuBWxLSggHk04SxgH7tj3/rcCawBbAQZLenrfvC+wAvIV0wHwU+EHba99C+lu/s70Qkt4GfJP0t1mJdMA+EyB/vv8Ats2f5bN9vJergaUlvUrSAqREfGrbc44mff5r5PLsTkrMzwLnUqtp5LJcHhEPtZV1HCkZ30T6G20O7C+p9b6OAo6KiKWBScz+XneyIumzXgXYAzhOUquZal7fhxWB5Ui/vb067PvtwHkR8WJfwSWtAvyGlECWI50w/ULS+NrTPkD6Hb4MWDg/p676uw5wf93Ri0w03P8Bm5LOhltnF1cCn6k9fhKzz/gPBc6nViOoPa/PmkKH564HPFq7fxkdagq1xxcDpgEH9vM+fgnsl29vRu2MLW87hFxTIB0kz649Ng74J7PPnqcDu9Ue/zZwbB9xpwCfqt1fm1SjWbDT5zKAz20zUtJcsLbtIdKZlUhn65Nqj70JuKePfVefJemg8618e35rCvUz018AP6rd3wf4Zb49Mb+fV7Z9dsfn27cDm9ceW6n1WdVeu0Y/n9XxwLdr95fMr59YK+vb+3n9dNJB8Euk5LIlcHGOH7kMCwDPAuvUXvdx4LJ8++3A3bXHrgR2b//sgDcC/2iL/wXgxHz7CuBr5DPqfsq8GfACsERt29mk73C/34f82ufoo5abn3MX8Ina/e1IZ+9PAhflbQfSVssAfg/sUfv9fqn22KeAC9u+E2vUHu93f93855pCBxHxJ9IZ+PaS1gA2BE7v4+nfIX2JLsqdUQcNJIakxSX9WNLfJT1B+kEsk8/UBuJ44M6I+FZtn1tJulrSvyQ9BryLdDY1ECuTzjIBiHSWdC/pLKvlgdrtf5MOQPPcV769IKkmNViPxJz9Oa3440ltv9MkPZbf94V5+7x8BfikpBUHUZ4Ha7ef6XC//bO5t3b776TPCNLZ6nm1st8OzGLOz6r+2nbtf7enSM1Qq/T5is5+Rjqz/RCpmahuedKZbvvftBXjD8Bikt4o6eWkE5zzOsR4ObBy673m93sws9/rnqQz/DskXSdpm37K+2ikGnC9PCszsO/DzIj4Tz/7foSUnAGIiAsiYhngM6TPofVedmp7L5vWX8e8fy/1v+tA9tcVw6uDY3g5hVRFXpt0dvBgpydFxJOkJqQDJL0auFTSdRExhfRFWLz29BVJZ6Tk16wNvDEiHpC0HnAD6UynXznxrE360rS2LUI6Y90dOD8inpf0y9r+5tWkdR+wbm1/AlYj1Rbm132kL3nLBNKZXcfPcIgeJh2EXx0R81XWiLhD0rmkA1Pd08z9dxuq1YA78u0JpM8I0oHhIxFxZfsLaiN/+vvbzfFZS1oCeCnz+XeLiL9Luod0IrFn28MPk2ofLwf+UnsP/8yvfVHS2aQmpAeBX+ffRbt7SWfsa/ZRhr8Cu+RmpncDP5f00raDf8uykpaoPTYBuJWBfR/m9VuYAuwg6WvRdxPSvaQz+4/NY1/9qZejif01wjWFvp1CqhZ/DDi5rydJ2kbSK/JB9AnSWd6s/PCNwAckLSBpS1IbYstSpC/vY7ld+6sDKZSkrcjt0JH6P1oWJnWwzQReyM+rD2N9EHippJf0seuzga0lbS5pIVLSepbU8TW/ziC1168uaUngG8BZMfCRWw+S2q7nKf9of0LqP3kZpPbeWjv1vHyN1O67TG3bjcC7JC2XaxH7D3Bf/flyrh2+Osdr9ZUcCxyWz7CRNF7S9vOx39OBD0taL58YfAO4JiKmD6KMewJvaz8IR8Qs0vfjMElL5bJ+ljn7HU4n9UXsSt+16muBJyQdKGmx/Lt4jaQNASTtJml8/ps+ll8zq499AXxN0sKS/ovUl3ZOA98HgCNJA0F+JmmSkqVINaCWU4FtJb0zv49FlYZ9rzofceqa3t+gOSn0If+oriKN3Lmgn6euSRpt8hTwZ+CHEXFZfmw/UifkY6QfS32c+P+S+gUeJnX0XTjAor2PVBW+XWn89FOSjs1nZvuSfryPkpoCqnJHxB2kg/XduXq6cn2nEXEnsBupQ/HhXO5tI+K5AZar7gRSc8QVpBEm/yG1sw/UIcDJuZw7D+D5B5Ka8K7OTXGXkGpS8xQR9+SyLlHb/DNSZ+h00qiRs+Z+5Xy7PJdxCnBERLQuRjyK9He6SNKTpO/CGwe601wj/TKplng/qYP2/YMpYET8LSKm9vHwPqQa1N2k0Vunk/7Orddekx9fmdTp3mn/s0jfq/VI34uHgZ+SOrAh9WfcJukp0ufy/n6aeR4gfc/vA04j9QG0amKD/j7kcj5M6q/6T36vT5JOFJYCPpmfcy+wPamWOZN0pv95BnlMbXp/Q6HcoWFmNiIoXWR4akR0/Sx6LHBNwczMKk4KZmZWcfORmZlVXFMwM7PKiL5OYfnll4+JEyf2uhhmZiPKtGnTHo6Ijhd4juikMHHiRKZO7WsEnZmZdSLp73095uYjMzOrOCmYmVnFScHMzCpOCmZmVnFSMDOzipOCmZlVnBTMzKzipGBmZhUnBTMzq4zoK5r7M/Gg3wzqddMP37rhkpiZjRyuKZiZWcVJwczMKk4KZmZWcVIwM7OKk4KZmVWcFMzMrOKkYGZmFScFMzOrOCmYmVnFScHMzCpOCmZmVnFSMDOzipOCmZlViiUFSatJulTS7ZJuk7Rf3n6IpH9KujH/e1ftNV+QdJekOyW9s1TZzMyss5JTZ78AHBAR10taCpgm6eL82Pci4oj6kyWtA7wfeDWwMnCJpLUiYlbBMpqZWU2xmkJE3B8R1+fbTwK3A6v085LtgTMj4tmIuAe4C3hDqfKZmdncutKnIGkisD5wTd70aUk3SzpB0rJ52yrAvbWXzaBDEpG0l6SpkqbOnDmzYKnNzMae4klB0pLAL4D9I+IJ4EfAJGA94H7gu62ndnh5zLUh4riImBwRk8ePH1+o1GZmY1PRpCBpIVJCOC0izgWIiAcjYlZEvAj8hNlNRDOA1WovXxW4r2T5zMxsTiVHHwk4Hrg9Io6sbV+p9rQdgVvz7QuA90taRNLqwJrAtaXKZ2Zmcys5+mgT4IPALZJuzNsOBnaRtB6paWg68HGAiLhN0tnAX0gjl/b2yCMzs+4qlhQi4k907if4bT+vOQw4rFSZzMysf76i2czMKk4KZmZWcVIwM7OKk4KZmVWcFMzMrOKkYGZmFScFMzOrOCmYmVnFScHMzCpOCmZmVnFSMDOzipOCmZlVnBTMzKzipGBmZhUnBTMzqzgpmJlZxUnBzMwqTgpmZlZxUjAzs4qTgpmZVZwUzMys4qRgZmYVJwUzM6s4KZiZWcVJwczMKk4KZmZWcVIwM7OKk4KZmVWcFMzMrFIsKUhaTdKlkm6XdJuk/fL25SRdLOmv+f9l83ZJ+r6kuyTdLGmDUmUzM7POStYUXgAOiIhXARsBe0taBzgImBIRawJT8n2ArYA187+9gB8VLJuZmXVQLClExP0RcX2+/SRwO7AKsD1wcn7aycAO+fb2wCmRXA0sI2mlUuUzM7O5daVPQdJEYH3gGmCFiLgfUuIAXpaftgpwb+1lM/K29n3tJWmqpKkzZ84sWWwzszGneFKQtCTwC2D/iHiiv6d22BZzbYg4LiImR8Tk8ePHN1VMMzOjcFKQtBApIZwWEefmzQ+2moXy/w/l7TOA1WovXxW4r2T5zMxsTiVHHwk4Hrg9Io6sPXQBsEe+vQdwfm377nkU0kbA461mJjMz644FC+57E+CDwC2SbszbDgYOB86WtCfwD2Cn/NhvgXcBdwH/Bj5csGxmZtZBsaQQEX+icz8BwOYdnh/A3qXKY2Zm81aypjCmTDzoN4N63fTDt264JGZmg+dpLszMrOKkYGZmFScFMzOrOCmYmVnFScHMzCpOCmZmVnFSMDOzipOCmZlVnBTMzKzipGBmZhUnBTMzqzgpmJlZxUnBzMwqTgpmZlZxUjAzs4qTgpmZVZwUzMys4qRgZmYVJwUzM6s4KZiZWWXBXhfABmfiQb8Z1OumH751wyUxs9HENQUzM6s4KZiZWcVJwczMKk4KZmZWGVBSkDRlINvMzGxk63f0kaRFgcWB5SUtCyg/tDSwcuGymZlZl81rSOrHgf1JCWAas5PCE8APCpbLzMx6oN/mo4g4KiJWBz4XEWtExOr53+si4pj+XivpBEkPSbq1tu0QSf+UdGP+967aY1+QdJekOyW9c8jvzMzM5tuALl6LiKMlbQxMrL8mIk7p52UnAccA7c/5XkQcUd8gaR3g/cCrSbWSSyStFRGzBlI+MzNrxoCSgqSfAZOAG4HWgTqY+4BfiYgrJE0cYDm2B86MiGeBeyTdBbwB+PMAX29mZg0Y6DQXk4F1IiIaiPlpSbsDU4EDIuJRYBXg6tpzZuRtc5G0F7AXwIQJExoojpmZtQz0OoVbgRUbiPcjUo1jPeB+4Lt5uzo8t2MCiojjImJyREweP358A0UyM7OWgdYUlgf+Iula4NnWxojYbn6CRcSDrduSfgL8Ot+dAaxWe+qqwH3zs28zMxu6gSaFQ5oIJmmliLg/392RVAMBuAA4XdKRpI7mNYFrm4hpZmYDN9DRR5fP744lnQFsRrrwbQbwVWAzSeuRmoamk66DICJuk3Q28BfgBWBvjzwyM+u+gY4+epLZbfwLAwsBT0fE0n29JiJ26bD5+H6efxhw2EDKY2ZmZQy0prBU/b6kHUhDRs3MbBQZ1CypEfFL4G0Nl8XMzHpsoM1H767dHUe6bqGJaxbMzGwYGejoo21rt18gdRJv33hpzMyspwbap/Dh0gUxM7PeG+giO6tKOi/PevqgpF9IWrV04czMrLsG2tF8IukCs5VJcxL9Km8zM7NRZKBJYXxEnBgRL+R/JwGeeMjMbJQZaEfzw5J2A87I93cBHilTJBuOJh70m0G9bvrhWzdcEjMraaA1hY8AOwMPkGY3fS/gzmczs1FmoDWFrwN75LUPkLQccAQpWZiZ2Sgx0JrCa1sJASAi/gWsX6ZIZmbWKwNNCuMkLdu6k2sKA61lmJnZCDHQA/t3gask/Zw0vcXOeEZTM7NRZ6BXNJ8iaSppEjwB746IvxQtmZmZdd2Am4ByEnAiMDMbxQY1dbaZmY1OTgpmZlZxUjAzs4qTgpmZVZwUzMys4qRgZmYVJwUzM6s4KZiZWcVJwczMKk4KZmZWcVIwM7OKk4KZmVWcFMzMrFIsKUg6QdJDkm6tbVtO0sWS/pr/XzZvl6TvS7pL0s2SNihVLjMz61vJmsJJwJZt2w4CpkTEmsCUfB9gK2DN/G8v4EcFy2VmZn0olhQi4grgX22btwdOzrdPBnaobT8lkquBZSStVKpsZmbWWbf7FFaIiPsB8v8vy9tXAe6tPW9G3jYXSXtJmipp6syZM4sW1sxsrBkuHc3qsC06PTEijouIyRExefz48YWLZWY2tnQ7KTzYahbK/z+Ut88AVqs9b1Xgvi6XzcxszOt2UrgA2CPf3gM4v7Z99zwKaSPg8VYzk5mZdc+CpXYs6QxgM2B5STOArwKHA2dL2hP4B7BTfvpvgXcBdwH/Bj5cqlxmZta3YkkhInbp46HNOzw3gL1LlcXMzAZmuHQ0m5nZMOCkYGZmFScFMzOrFOtTMBuKiQf9ZlCvm3741g2XxGxscU3BzMwqTgpmZlZxUjAzs4qTgpmZVZwUzMys4qRgZmYVJwUzM6s4KZiZWcVJwczMKk4KZmZWcVIwM7OKk4KZmVWcFMzMrOKkYGZmFScFMzOrOCmYmVnFScHMzCpOCmZmVnFSMDOzipOCmZlVnBTMzKzipGBmZhUnBTMzqzgpmJlZxUnBzMwqC/YiqKTpwJPALOCFiJgsaTngLGAiMB3YOSIe7UX5zMzGql7WFN4aEetFxOR8/yBgSkSsCUzJ983MrIuGU/PR9sDJ+fbJwA49LIuZ2ZjUq6QQwEWSpknaK29bISLuB8j/v6zTCyXtJWmqpKkzZ87sUnHNzMaGnvQpAJtExH2SXgZcLOmOgb4wIo4DjgOYPHlylCqgmdlY1JOkEBH35f8fknQe8AbgQUkrRcT9klYCHupF2WxsmnjQbwb1uumHb91wScx6q+vNR5KWkLRU6zawBXArcAGwR37aHsD53S6bmdlY14uawgrAeZJa8U+PiAslXQecLWlP4B/ATj0om5nZmNb1pBARdwOv67D9EWDzbpfHzMxm61VHs9mY5j4MG66G03UKZmbWY04KZmZWcVIwM7OKk4KZmVWcFMzMrOKkYGZmFScFMzOrOCmYmVnFScHMzCpOCmZmVnFSMDOzipOCmZlVnBTMzKzipGBmZhUnBTMzqzgpmJlZxUnBzMwqTgpmZlZxUjAzs4rXaDYb5bwetM0P1xTMzKzipGBmZhUnBTMzqzgpmJlZxUnBzMwqHn1kZo3yaKeRzTUFMzOruKZgZiOaaybNGnY1BUlbSrpT0l2SDup1eczMxpJhlRQkLQD8ANgKWAfYRdI6vS2VmdnYMdyaj94A3BURdwNIOhPYHvhLT0tlZpZ1u7mq2/EUEYN6YQmS3gtsGREfzfc/CLwxIj5de85ewF757trAnYMItTzw8BCL63iONxrijeb35nh9e3lEjO/0wHCrKajDtjmyVkQcBxw3pCDS1IiYPJR9OJ7jjYZ4o/m9Od7gDKs+BWAGsFrt/qrAfT0qi5nZmDPcksJ1wJqSVpe0MPB+4IIel8nMbMwYVs1HEfGCpE8DvwcWAE6IiNsKhBpS85PjOd4oijea35vjDcKw6mg2M7PeGm7NR2Zm1kNOCmZmVnFSsBFB0mKS1u51OcxGOycFG/YkbQvcCFyY768nadSMSpM0VdLekpbtdVlGOkm/kLS1pFF7bJO0Tcn3NyY6miUJ2BVYIyIOlTQBWDEiri0UbzzwMWAitRFeEfGRQvE+DZwWEY+W2H8fMdcEvkmao2rR1vaIWKNArGnA24DLImL9vO3miHht07HyvhcAfh8Rby+x/w7xXgF8GHgfMBU4EbgoGv5xSvoVbReD1kXEdk3Gq8XdBDgEeDnp96AUrsh35e2kz3Ij4BzgpIi4o+k4HeJuCqwZESfm3/+SEXFPoVinAm8CfgGcGBG3N7n/YTUktaAfAi+SDiyHAk+SPtANC8U7H/gjcAkwq1CMuhWB6yRdD5xAOqCVzvYnAl8Fvge8lfRD7HRFehNeiIjHU24vLyJmSfq3pJdExONdiHcX8EVJXwa2If0NX5R0AnBURPyroVBHNLSf+XU88BlgGoV/DxFxCXCJpJcAuwAXS7oX+AlwakQ833RMSV8FJpOm3TkRWAg4Fdik6VgAEbGbpKVJ7+9ESZHjnhERTw51/2OlpnB9RGwg6YbameZNEfG6QvFujIj1Suy7n5gCtiAdnCcDZwPHR8TfCsWbFhGvl3RLRKybt/0xIv6rQKzjgSnAQcB7gH2BhSLiE03HqsU8m3S2eTHwdGt7ROxbKN5rSX+7d5Gu0zkN2BT4YLe/S02TdE1EvLGL8V4K7AZ8kDQjQuuzXDciNisQ70ZgfeD6btRka3GXJ73P/YHbgVcA34+Io4ey37FSU3g+NwkEVM07LxaM92tJ74qI3xaMMYeICEkPAA8ALwDLAj+XdHFE/HeBkP/J7Zp/zc1X/wReViAOwD7AF4FngTNIB82vF4rV8pv8r7jcPPYY6Yz6oIh4Nj90TW56aTpe15r+skslfQc4l/Q3bMW7vulAks4FXgn8DNg2Iu7PD50laWrT8bLn8u+vdXxZolAc8v63I51ATCK9zzdExEOSFiclhyElhbFSU9iV1F67AXAy8F7gSxFxTqF4TwJLAM8BrepqRMTSheLtC+xBmi3xp8AvI+L51kE7IiYViLkh6Qu4DOkA/RLg2xFxddOx2uIuACwREU+UjJNjLQysle/eWaLpIcdZozVdfDdI+hOzm/62JTf9RcRXC8W7tMPmiIi3FYj1toj4Q9P7nUfMzwFrAu8gJduPAKcP9Yy9n3gnk1oBrujw2OYRMWVI+x8LSQFA0iuBzUnt3lOa7pzpJUmHkr4kf+/w2KtG+nuVdDrwCVJ79DRSAjoyIr5TMOZmpBOI6aTvzGrAHp1+iEOI8dn+Ho+II5uK1Ra3m01/44D3RsTZTe+7Lc67+3s8Is4tHP8dpOZbkfr0Li4Up/ggiFHffJS/lDdHxGuA4qMQanG3A96c714WEb8uEGO5fPN/2+4DEBH/KpUQJE0mNem0RpS0YpZoR10nIp7INb7fAgeSkkOxpAB8F9giIu4EkLQWqenq9Q3GWCr/vzZp0ENrmO22QGPJp4OuNf1FxIs5RtGkQPrMIL2PjYFWbeGtwGWkpqsiJK0O/LGVCPI1NRMjYnrTsboxCGLUJ4X8pbxJ0oSI+Ec3Yko6nPQjPy1v2k/SphHR9JrT00j9JAImAI/m28sA/wBWbzhe3WnA54FbKNs/A7CQpIWAHYBjctNY6SruQq2EABAR/5fL0JiI+BqApIuADVojRyQdQhpOWcr+wOKkDvuvkw6cexSMd3FuYjmLOTvtmxpVRUR8GEDSr0knEffn+yuRlvgt6RxSImqZlbeVGt34H+AWSUUGQYz6pJCtBNwm6Vrm/BCLjMsmjSBZLyJehKoN8AbS6JnGRMTqef/HAhe0OrYlbQWUHmM/MyK6dQHZj0nNODcBV0h6OVC6T2FqHvX0s3x/V1ISLmECqf+p5TnSNS5FRMR1+eZTpP6E0lrX5+xdLwZQomN7Yq1zGeBBZvcLlbJgRFR/v4h4LvdHlVJ0EMSY6FOQ9JZO2yPi8kLxbgY2a50J5WadywpebDUtIl7ftq3oClCSNieNk57CnCNKirbd1uIvGBEvFNz/IqSD2Kak2tcVwA9rI4OajPVFYGfgPNLBckfg7Ij4RtOxcryLgZ0i4rF8f1ngzIh4Z4l43STpGFKn7xmkz/L9pHXf9ykY82Lg6NZJkqTtgX0jYvNSMUsaE0mh2yTtAhwOXEo6oLwZ+EJEnFko3u9JF8udSvoh7Aa8ueSPPF9V+UrgNmY3H0UUuGo7H6Dfw9xXiB/adKwcbwHg5IjYrcT++4i5AdDq6L0iIm4oGKu6Xqe/bQ3GWxz4LDAhIvbKQ2LXLtHPluPtyOz+vCsi4rwScWrxJpGaU1cm/d7vBXbPFyWWiFd0SPGYaD7KQ0Rb2W9h0hWHT5caIhoRZ0i6jNSmKODAiHigRKxsF9IQw9aZ5hV5W0mva41c6YLzgcdJzTeNn6m3y5154yUtXG8WKGxx4InI0yRIWj0KTZNAulq66mPLzXElzw5PJP3tWu3uM0ht7kWSAnA98GREXCJpcUlLRQNX+vYl0gWiG0laknSiXSxWVnQ2gTGRFCJiqfp9STsAb2g6jqRXRsQd+awP0pcfYGVJK5e4WAeqDrv9JC0ZEU+ViNHB1ZLWiYi/dCHWqhGxZRfi1E0HrlSaeK/eD9X4MFF1eZoE0qixP0lqNZ++GdirUCyASRHxvlyDJiKekcrMWSLpY6T3shzp4q5VgGNJw9GLaK/Jtt5aqZossFhETJGkPAz9EEl/JCWKIRsTSaFdRPxSUtMjgSBVkfciDWecKyxp7qXGSdqYdNHaksAESa8DPh4RnyoRL9sU2MqrENsAABqrSURBVEPSPaSz99YkZyX6Ta6StG5E3FJg3325L/8bx+yho6XsSJ4mASAi7pNULGZEXJhPXDYi/d0+ExEPl4oHPCdpMWbPKDCJcjW+vUknfNcARMRfJZW60r6lqzVZCg8pHhNJoe3ClnGks7LGq8sR0Trb2ioi/tNWhkU7vKQp3wPeSR7nHhE3SXpz/y8Zsm6euW8KfKhLCajVp7BkRHy+xP476Mo0CR1qsvfl/yfk5qQiNVnSDKkXAqtJOo1UAyo16unZPPoHSAMSKNs0Bt2vyXYaUrx7UzsfE0mB2Re2QJoXaDqwfcF4V5Gm1JjXtsZExL1tNfLSs1H+HSCfhZVMeABbFd7/HHKfQrG/VQdnS/oxsExu/vgIaVbPpvWkJhsRFynN79SqmexXsGZyuaSDgcXyVcafAn5VKFZLt2uyE/Ow4mpIsaSdyLWjoRoTo48kbRIRV85rWwNxViS1YZ4KfIDZnT9LA8dGxCubjFeL+3PgSOAY0g9vX2ByRLy/RLwcczvSwWVl4CHSlc23R8SrC8Xr2nz1Od53SUMbz2HOPoUiQ27VpWkSekHSlPbhmZ22NRRrHLAntc8S+GkUPNBJ+gtphtJu1WSvj4gN5rVt0PsfI0mh6IdY2+cewIdIzVPXMTspPEEa4ljqgLI8cBTpgjUBF5HOxh4pES/HvIl0ZnlJRKwv6a3ALrUmtCZjVR2xEbGWpJWBcyKiVEcskk7ssLnIkNtazKWZc8htY1f8tsXZCbgwIp6U9CVSDfbrTQ+DzU2mi5OGZm/GnCdJv4uIVzUZr1fy6K25RIe5yIYYZyvShbE7k64Ob1madBV3I4NnRnXzkaQ3kYbBjdeck48tDSzQdLyIOBk4WdJ7IuIXTe+/n7gPk6647abnI+IRSeMkjYuISyV9q1CsrnbE5hjduNIXAEkfJy3+9Azpmg9R7opfgC9HxDm59vVO0uI7xwJNr3nwcVL798qkTtj6SVKRqSckbUNqZ29f5a3I8HPoalPqfaSV+bZjzqvrnyQtYtSIUZ0USNckLEl6n/WDyBOk6bNLeX2uHtevGD0gIr5UIpjShFz7MPfFXaWm8QB4LI/LvgI4TdJDpP6aEro6X32OsSppXvpNSAfoP5FqXzP6feHgfA54deERQHWt/qatgR9FxPlK8y01KiKOAo6StE8Umka6g/8F3g3cUrLJqK6vplSg0abUiLgJuEnS6VFoGncYO81HL2+6KjePeJ2uGG28uaq275tIC7TMMTldFJrGI8dcgnRmO45US3kJaZ3oxpus1OX56nPMi4HTmT330W7ArhHxjgKxLgTeHRH/bnrffcT7NWkY49tJs74+A1wb5VYi7NRc9T8lRjsprd2weeR5x7qhm02pOV7RNa/HSlJYi3Q2NpE5z6RLXTdwM7Bh5Hly8hjtqQU7Ybu93GFXF7bPMVsdsZAWtS/aEasOS6p22tZQrPVJF61dw5zzSJVa+nNx0pDiW/I4/pVIS1VeVCjezRHx2txc9U1Sc9XBJb6zSos/fR24nDk/yyJrU+SYUyNick4O60eamfnaptr4O8S7gw5rXjd1Qjbam49aziG1mf6UwkM1s1OBKbXOyg+TFmwp5ajcGXsRhZc7zPvt6sL22S1A6wKobgz9e1jSbqSJ1SBNG1Kq4/7HpPn/uzENOcDypLZpJE3I20quNdKV5qrsMNJQzUVJzcfd0M2mVIDHI+J3pXY+VmoKc80i2oWYWzJ7NNCjwEoRsXf/rxp0rG+SFin/G3NOTlekJpRjdm1he0kfBb5COnAKeAtwaESc0HSsWswJpCG+byIloqtIfQqNN0NKuioiNp73MxuLdwuz1+FYlLTuxp0Fa7Jda65S4dmB+4i5BGmNA1G4KTXHO5w0UKbImtdjJSkcQuoAOo85P8QiQ/5yzPVI1yrsTBq//IuIOKZQrDuA10b3Jm9rDb+dSx6B1XSsO4GNWz8ySS8FroqItZuO1QuSDgP+TrrIqivfz7b4G5CmRfl4of13rbkqHzD/UKopbB6xuzWkuOia12MlKXS6yKmxjplanLVI87e3mhrOAj4XER3HMTcY9yxgn4h4qGScDnHHA0TEzMJxppCmDnku318Y+G2JPg1JR9PPtAiFakJd+X7OowzFBkLk/Xfl4kOlGZGXIC1U1BqhU3RIal9Dirv592vSmEgK3SLpRdK6BntGnktd0t2lvxxK03S/lnTBXP1Ms/EhqZJEmo3x06Qv/zhS++nRUW59g1OAdUkTjwVpipJrgf+DZjsR22pAX6Nt5skSNaFua7tmZxxpNNBLo9D6G724+LCbJP0VeFO3hhRLWgH4BrByRGwlaZ0c//gm9j8mOprVvUU+3kOqKVyahxmeCc3Nc96PRqbMHaD9SWP3N2yd6UlaA/iRpM9ExPcKxPxb/tdyfv6/8QvY6gd9Sft3Iwkorf38SWYvDHMZ8OOCY9Hrn9sLpKUdS15s2dWLD/N1A9VnWeB33u5vQFeGE2cnkUarfTHf/z9Sq0QjSWFM1BRy88o00mpIr8lDRP9cYnhhjrcEaZH5XUjjl08GzivZzpnPHloLhV9bqilJ0g3AO9rPinKTwEXt12cUiD+O1PRQeo3m4k0qtTg/Ja2h0EpAHwRmRcRHS8fuhtbwzNbnmX8ff44CcwPlPoUNSSuhQfoNTouIElPlt2J2e0jxdRGxYf16qCaHS4+JmgJdXOQj7/9p0pfyNKX1mXcCDiINGW2cpJ2B75DOMAUcLenzEfHzAuEW6lRNjoiZ+Yy3cZJOBz5BGto4DXiJpCMj4jsl4vXAhm0jcf6Qx7w3SmnBoD6VaG7MujULLKS5gdZrXbwm6WTgBtLvr5RuDyl+Og+2aF3hvxFpPYdGjJWk0M1FPuaQRyD8OP8r5YukA8tDUJ21XwKUSAr9jXAqNfppnYh4QtKuwG+BA0nJofGkoDmXbl1cUqtGUnIOnVmSJkVa1rHVHFfiepo3kdYPPoN0Vlu0aVPS/sCVpKkn3kqaXmZt4CuFLz5cBmiN/HlJwTgtL0TEZ+f9tMZ8lrR2yiRJVwLjaXDanrGSFA5h7kU+PtTLAjVsXFtz0SOkDsQSXlc7UNa1xryXsFCuhewAHBMRzyvPg9S0aFu6tUs+T+qHupv0Ob6cMovQrEiaKmQX0nDp3wBnRMRtBWIBrEqavfeVwM2kaz2uZM7J3Jr2TeCGPGxTpL6FLxSMB+lvtxddGlIcEddLegspwYp0jUlj/U9jok8BqrHtrUU+ru7WSIFukPQd0uij1tW37wNujogDe1eq5kjal1Q7uIl0VewE4NSI+K+eFqxBSuv8tn7kd0SeIqVwvF1Ita1Do+w8UguTRh9tTKqtvAl4LCLWKRRvJVK/goBrIuKBEnFq8bo6pFhpmpmtmXvankZG4Y2JpJDbUs8ALsjt/aOCpFcAK0TElUpLjm7K7CuoT2s1R4xGkhaMiJJTCRSnNI2GIuJnbds/BjwdEacXiLkI6YCyC+mgcgFwQkT8s+lYtZgvISWCTfL/y5AuZGusNiTpncBS7f1oucnxoVLNVXngw5ui4QW75hHzt6QrqNsnwPxaI/sfI0nhLaSz561J49vPAn4dbesojzR5+oCDI+Lmtu2Tga9GxLadXzmySPpKp+2lrovoljyS680R8WTb9qWBS6PhqVlyp+trgN8BZ0bErU3uv0O840jTRz9J6sO4mlRLf7RArKuBbdsvpFRaDfG8iHhT0zFrMf5ccv8d4t1cYuRWS6l252ElIi6PiE+RFi05jjT1RFev/i1kYntCAIiIqaSzwNHi6dq/WaQ1myf2skANWaA9IQDk4bYlRnJ9EFgL2I+0rvAT+d+TffQTDdUEYBHgAdLcRzOAxwrEAVi805X1uemo9PobF0l6T8kRjW1+J2mLeT9tcMZKR3Nr+uptSTWGDSg7a2m39Nexu1jXSlFYRMyx0LykI0jNHiPdQpKWaG/SzBd2NT7DZ0R09SQwIrbMB8pXk/oTDgBeI+lfpOsUmrzoctFOTYp5gELp38JnSYlnlqRnKDtSDVKN67zcdPV80/HGRE0hX7x2O+lCsh+QrlvYp7elasR1uf15DpL2pOwIj15bnHJLVXbT8cDPJU1sbci3z6Shq1N7LZJbSUOJf0cafTSJVFtp0rnAT1RblS/fPjY/VkxELBUR4yJioYhYOt8vNtcSaZW3N5FqR43HGyt9ClsCF0dEN9ZS6Jp8FfN5pOsDWklgMuksc8fSoy66RbOneoY0ZfB40oiZIrPOdpOkT5CGTC5Jeo9PA4dHxI96WrAG5FFjG5M6mJ8nJYQ/5/9viQZXR5O0IPA/wEdJM85Car46nrQmdbHlK3P8rk2tIen3pAkii1woN6qTQh6R06eIKHoG0S1Ky/+9Jt+9LSL+0MvyNE1SfZbZF4AHR/rIo3ZKi7SoUx/DSCXpSPK1CRFxf5diLga8It+9KyKe6ULMrk6tIekkUk35dxRYXW60J4XWymcvI52xtA6WbyVl836ThvWW0kSGz7fO8iStTZrGYHpEnNfTwpllSsvv1qfWWAC4odQIIaVZZ+fS1JDUUd3R3BoHnYdurtM6W8kXt/ygl2WzAbkQ2BP4a74m48+ks7FtJL2x1JmY2SB0bWqNpg7+fRnVSaFmYlv19UHS1aM2vC0bEX/Nt/cgTcmwT75CdhplJzkzG6iuTq2R48zVxBMNrbw2VpLCZblz5gzSh/l+YEpvi2QDUP/iv408AV5EPKe0oNGoIGlv0hXoj+X7ywK7RMQPe1uykUfSoRHxldr9BYBTImLXArE2yVcyn0uaobg1tcaBhQd5fK52e1HSOi6N9bGN6j6FOkk7Mnt0wKOk6SH27mGRbB4kncrsC58OAlaPiH9LWga4PAos/N4L6jAXvmpz5dvA5U7YOyPim3lKj3OA6yPikAKxpkXE69WldTfmUZbLI+ItTexrrNQUAO4hje3dOd8uudKUNeNjpPHsE4EtIqK1utU6wBG9KlQB4yQp8hlaPrtt/OK1MeLDpHVMvkAaUPK7KLMaIMDzeTDLqpK+3/5glFtkZ7na3XHA60kz4DZiVCcFSWuRmop2IU0nfRapdvTWnhbMBup/SZ3NP6gP1YyIq0hDHUeL35MWojmW1GT2CdL7tgGSVD9TP4q0fsmVwOWSNoiI6wuE3QZ4O6lps5sXi04jfU9Eaja6hzQgoxGjuvkotzv/EdgzIu7K2+4uNaWtNUtpRaktgc1JF+hdBFwYEY2vStZLebqCj5Pep0jv86ej7WLLknLna1+iqU7YDnEXAPZr6hqB4WC0J4UdSTWFjUlnXmeSfmyr97RgNt/yehhbkCbDW5e0xOKFEXF2TwtmY56kS7vZ+lB6YMKoTgoteQ6UHUjNSG8jTYZ3XkQUWTPZmpPPot/bfvCX9Hpgy4g4rDclGzpJZ0fEzm3TeFRKTo88Wkn6BvDttgPmARHxpYIxDyNdm3AWaZoSIK2QVihe0YEJYyIp1OVOmp2A95WqUlqzJP0xRtEqay2SVoqI+9um8ahExN87bbe+dTo4lh4d1EfTVckmq5uB17UNTLg5Il7dyP7HWlKwkUfSl4FnmPtMrMgauN0m6VvRtnRqp202b/mAuWHk5UzzXEhTmzpgDgdKy+9OJM0A2xqYcG9EHNDI/p0UbLhTl9fA7bZOZ7KlV9carST9N7AdcCLpgPkR0jK83y4YcwXgG8DKEbGVpHVIS3QWmf689MAEJwWzHpH0SaC1ImB9Pe2lSDOL7taTgo1wkraidsCMiN8Xjvc7UhL6YkS8Lk/jfUNErFsw5sKkqXqCdLFeY1ODOynYsJdnS/0sMCEi9pK0JrB2yTnru0FpQftlSXPn1OdxenK0NI2NBZKui4gN6/0ZnTqDG4y3GWmwzHRS4lsN2CMirmhi/2Ni5TUb8U4kXaewcb4/g7SgyogWEY9HxPSI2IX0np4nnfktKWlCb0s3MknaSNJ1kp6S9JykWSqz/nTd03nIdKvjdyPg8YLxvku6wv8tEfFm4J1AY1dtj+ormm3UmBQR75O0C0BEPCN1bZH04iR9GjiENHtva6K/ANynMP+OIV2bdA5pFcLdmb3oTikHkNYMnyTpStLKgO8tGG+hiLizdSci/k9pLepGOCnYSPBcHkXSOhObRG3FqVFgf1Jz2CO9LshoEBF3SVogd7yeKKnolCgRMU3SW0ht/KLhNv4Opko6HvhZvr8rDU6z4aRgI8FXSVekrybpNNKavx/qaYmadS9lmxvGkn/nTtgbJX0buB9YokSg3Ld1BDAJuAX4XET8s0SsNp8E9gb2JSWhK4DGpll3R7ONCLnNdiPSj+DqiHi4x0VqTD7rWxv4DQXW3B1L8oWADwELAZ8hXWn8w9bcZw3H+iNwCumgvB1pGGpXlviVNB4gImY2vm8nBRuu2ma+nEupaQS6rfSau1ZG+wijLlw5LVKt+dOkkyMBs4CjI+LQpuK4+ciGs+/281iQ5rEa8XzwH7q+5o9qKXQh4KKS1icdnAEWq98vcNKyP6npdMOIuAdA0hrAjyR9pql1I1xTMOux3BTw38CrScsrAs2tuTsW9DV/VEuJeaS6PV23pBuAd7Q3nebvz0VNTYjnmoINW5L6bZ+NiHO7VZbCTiPN67QNaR6bPYDG24pHs04HfUnLA49EuTPfD0TE/YX23clCnfrSImKmh6TaWLFtP48FacH00eClEXG8pP0i4nLSamGX97pQI0m+YOxw4F/A10nDNZcnLXW6e0SUWMnuhDw192Wk0XF/iogXCsRpeW6Qj80XNx+Z9ZikqyNiI0m/B74P3Af8PCIm9bhoI4akqcDBpNFGxwFbRcTVkl4JnNFU00qHuIsCm5EWf9oE+AcpQVwYEf9oONYsarME1x8CFo2IRmoLTgo2bEnaLSJOlfTZTo+PliGbkrYhLRu7GnA0sDTwtYi4oKcFG0HqI4Ek3R4Rr6o91tgCNAMox+qkBLElsGJEvKEbcZvk5iMbzloXHS3V01IUVpvY73Gga8s6jjIv1m4/0/ZY0TPf+toXeVTQDyVNpOxUF8W4pmDDWl5Vat+mhtsNR/nsch/SwinViVpEbNerMo00taYVAYsB/249RINNK33EHlXrYbimYMNaRMyStB0NzgI5DP0SOB74FXOe8doARcQC3Y5ZWw9jUl7xrWUpoOh8SyW5pmDDXrcXRu82SddExBt7XQ6bP6N1PQwnBRv2ur0werdJ+gCwJmlZxfrcR6Mi6Y1meWnMmyPiNb0uS1PcfGTDXkSM9s7XdYEPkqbtqK+nMCqS3mgWES9KuknShKaHoPaKk4INe5IWAd7D3B2xjU0C1mM7AmtERGMXIFlXrQTcJula5mzeHJEDBZwUbCQ4nzRccxqja3GdlpuAZUhTPtvIM6omNHSfgg17km4dTW227SRdRlp68zrm7FMYkWeaY1GekG/NiLhE0uLAAhHxZK/LNRiuKdhIcJWkdSPill4XpJCO6ynYyCDpY8BewHKkVdhWAY4FNu9luQbLNQUbtiTdSup4XZA0Oudu0pm0SKOPRuTFQZ1IWgHYMN+9NiLclDRCSLoReANwTWs6DUm3RMS6vS3Z4LimYMPZKsB683zWCCdpZ+A7pNk2BRwt6fMR8fOeFswG6tmIeC4tjAaSFqTw1BolOSnYcHZPicVRhqEvklbTegiqRVMuAZwURobLJR1MWnntHaSrnH/V4zINmpuPbNiSNAPocybUUTRL6hxNDfmCqJtGavPDWJP/XnsCW5Bqer8HflpwcZ+iXFOw4WwBYElmr4E7Wl2Y11I4I99/H/C7HpbH5s9iwAkR8ROoJnGsT8o3orimYMNWp9knR6u89OimpAR4RUSc1+Mi2QBJuhp4e0Q8le8vSVozeePelmxwXFOw4Wy01xAqeb3pcyGdaUraNSJO63GxbGAWbSUEgIh4Kl+rMCKN63UBzPoxIsd5D5SkpSV9QdIxkrZQ8mnS0Nude10+G7CnJVU1WkmvZ+6FfkYMNx+Z9Yik84FHgT+TEuCywMLAfhFxYy/LZgMnaUPgTNLa2pDmQnpfREzrXakGz0nBrEfqo45y5+TDwISROj3CWCZpIWBtUpPnHRHxfI+LNGjuUzDrnerAkVeYu8cJYcTakNmz+K4viYg4pbdFGhzXFMx6pLauMMy5tnBrGo+le1U2GzhJPyPNeXQjMCtvjojYt3elGjwnBTOzIZB0O7DOSL1YrZ1HH5mZDc2twIq9LkRT3KdgZjY0ywN/ySuvjfj1MJwUzMyG5pBeF6BJ7lMwMxui0bQehvsUzMyGIK+HcS2wE+lK9Gskvbe3pRo81xTMzIZA0k3AO9rXw4iI1/W2ZIPjmoKZ2dCMa2sueoQRfGx1R7OZ2dB0Wg/jtz0sz5C4+cjMbBAkvQJYISKubFsP41HgtIj4W08LOEhOCmZmgyDp18DBEXFz2/bJwFcjYtvelGxoRmy7l5lZj01sTwgAETGVNDneiOSkYGY2OIv289hiXStFw5wUzMwG5zpJH2vfKGlPYEQusAPuUzAzG5R8FfN5wHPMTgKTSavn7RgRD/SqbEPhpGBmNgSS3gq8Jt+9LSL+0MvyDJWTgpmZVdynYGZmFScFMzOrOCmYmVnFScGsByQt0OsymHXipGA2AJK+LOkOSRdLOkPS5yRNknShpGmS/ijplfm5J0n6vqSrJN3dmltf0maSLpV0OnBL3rabpGsl3Sjpx04W1mtOCmbzkOeyeQ+wPvBu0lh0gOOAfSLi9cDngB/WXrYSaYK0bYDDa9vfAHwxItaR9CrSjJqbRMR6wCxg15LvxWxePHW22bxtCpwfEc8ASPoVaYqDjYFzJLWet0jtNb+MiBdJC7qvUNt+bUTck29vDryedGUspKkRRuwyjjY6OCmYzZs6bBsHPJbP8Dt5to/XP922/eSI+MIQy2fWGDcfmc3bn4BtJS0qaUlga+DfwD2SdgJQMr/LL04B3ivpZXkfy0l6eZMFN5tfTgpm8xAR1wEXADcB5wJTgcdJ7f975jV6bwO2n8/9/gX4EnCRpJuBi0l9EWY942kuzAZA0pIR8ZSkxYErgL0i4vpel8usae5TMBuY4yStQ+pgPtkJwUYr1xTMzKziPgUzM6s4KZiZWcVJwczMKk4KZmZWcVIwM7PK/wNanOSp62UbYwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Using our bar_graph_count function to visualize the movies_genre group \n",
    "#It takes the following inputs: df, x_column, y_column, title\n",
    "movies_dom_genre.sort_values(['count'], ascending=[False], inplace = True)\n",
    "bar_graph_count(movies_dom_genre, \"genre\", \"count\", \"Visualization of the Number of Movies per Genre\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    Contemporary Fiction\n",
       "1           Dramatization\n",
       "2                 Factual\n",
       "3                 Fantasy\n",
       "4      Historical Fiction\n",
       "5            Kids Fiction\n",
       "6         Science Fiction\n",
       "7              Super Hero\n",
       "Name: creative_type, dtype: category\n",
       "Categories (8, object): [Contemporary Fiction, Dramatization, Factual, Fantasy, Historical Fiction, Kids Fiction, Science Fiction, Super Hero]"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Creating a data frame of the movies creative_type count \n",
    "movies_ct = groupby_count(movies_dom, \"creative_type\", \"creative_type\") \n",
    "movies_ct[\"creative_type\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'creative_type')"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Sorting the df, so the bar graph will be in descending order\n",
    "movies_ct.sort_values(['count'], ascending=[False], inplace = True)\n",
    "bar_graph_count(movies_ct, \"creative_type\", \"count\", \"Visualization of the Number of Movies per Creative Type\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "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>count</th>\n",
       "      <th>year</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>17</td>\n",
       "      <td>2000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>45</td>\n",
       "      <td>2001</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>47</td>\n",
       "      <td>2002</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>52</td>\n",
       "      <td>2003</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>53</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>42</td>\n",
       "      <td>2005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>55</td>\n",
       "      <td>2006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>44</td>\n",
       "      <td>2007</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>53</td>\n",
       "      <td>2008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>49</td>\n",
       "      <td>2009</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>47</td>\n",
       "      <td>2010</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>50</td>\n",
       "      <td>2011</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>48</td>\n",
       "      <td>2012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>51</td>\n",
       "      <td>2013</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>51</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>48</td>\n",
       "      <td>2015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>53</td>\n",
       "      <td>2016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>50</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>68</td>\n",
       "      <td>2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>45</td>\n",
       "      <td>2019</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count  year\n",
       "0      17  2000\n",
       "1      45  2001\n",
       "2      47  2002\n",
       "3      52  2003\n",
       "4      53  2004\n",
       "5      42  2005\n",
       "6      55  2006\n",
       "7      44  2007\n",
       "8      53  2008\n",
       "9      49  2009\n",
       "10     47  2010\n",
       "11     50  2011\n",
       "12     48  2012\n",
       "13     51  2013\n",
       "14     51  2014\n",
       "15     48  2015\n",
       "16     53  2016\n",
       "17     50  2017\n",
       "18     68  2018\n",
       "19     45  2019"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_year = groupby_count(movies_dom, \"year\", \"genre\")\n",
    "movies_year"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'year')"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "bar_graph_count(movies_year, \"year\", \"count\", \"Visualization of the Number of Movies per Year\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "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>count</th>\n",
       "      <th>month</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>38</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>64</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>82</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>50</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>101</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>116</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>108</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>71</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>47</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>55</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>110</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>126</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count  month\n",
       "0      38      1\n",
       "1      64      2\n",
       "2      82      3\n",
       "3      50      4\n",
       "4     101      5\n",
       "5     116      6\n",
       "6     108      7\n",
       "7      71      8\n",
       "8      47      9\n",
       "9      55     10\n",
       "10    110     11\n",
       "11    126     12"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_month = groupby_count(movies_dom, \"month\", \"genre\")\n",
    "movies_month"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'month')"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEZCAYAAAB4hzlwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAdW0lEQVR4nO3deZxcZZn28d9FIsgWAqRZgwQxouCCvhEc0REBFRABFZFFjYCirwsujLKoAzqDA+M2DG4vw64oIsiiuIAgICpLgMgWkNUQQ0KzyTpA4Hr/OE8fKkV1Uumu6kq6r+/n05+uOtt916lT5z7Pc06dkm0iIiIAlut1AhERsfRIUYiIiFqKQkRE1FIUIiKilqIQERG1FIWIiKilKAyBpB9I+nKXY1ws6cPl8d6Szu9CjEMlHdfp5bYR912S7pb0qKTXtDH91pLmjERunSZpiiRLGt+j+FtJurWs6117EP9Nkm4Z6bjLIkmHS/pRr/NIUWgi6beSvtpi+C6S5kkab/tjtv9tpHKyfarttw1nGa12rLa/ZvvDw8tuSL4BfNL2KravbR5ZdqIv6UZgSR8qy/980/A5krbuRswe+yrwnbKuz24eKekuSU9JmtQ0fGZZT1OGE9z2H2xvMpxljLSGbeRbTcN3LcNP6kCMpfZAJ0Xh+U4CPiBJTcM/AJxqe8HIpzTqbAjc2MP4DwAHSZrQwxyW2BBbG+2s6zuBPRvivBJYcQixljmLWKe3A+9rGv9B4K/dz6q3UhSe72xgDeBNAwMkrQ7sBJxSnp8k6d/L40mSfinpIUkPSPqDpOXKuIWOeJvmW73M1y/pwfJ4cquEypHLZeXxF0pXwMDf0wNHLpL2kTRL0iOS7pD00TJ8ZeDXwHoN863X3FyVtLOkG8truVjSyxvG3SXpXyRdJ+kfkn4q6YWD5LucpC9J+pukeyWdImk1SStIehQYB/xF0u0t5r20PPxLyfN9DeMOLMu7R9I+DcNXkPQNSbMlzVfVvbeondos4M/AZwfJv36fyvOFjurKuvh8WRePSTpe0tqSfl3W/e/KNtNoX0lzS+4HNq2rgyXdLul+SadLWqOMG+h62k/SbOCiQfL9iKTbyvZ3rqT1yvDbgRcDvyjrcoVB1scPqXZ4A6ZTtvWGGKuV97G/vK9fKrmvULaXVzRM2yfpCUlrtVh360k6syznTkkHNIzbQtIMSQ+X93GhI/Xm90NV9+d95f3Yu2H8oNtDw7wHSZoHnDjIOpkHXA+8vcy3BvAG4NymXJb4MzPY57HMtnxZz4+U5U4bJL+uSVFoYvsJ4HQW/pDsDtxs+y8tZjkQmAP0AWsDhwLt3DtkOaoNckPgRcATwHfayO8/S1fAKsDLgf6SL8C9VMVrArAP8G1Jr7X9GLADMHdgXttzG5cr6aXAT4DPlNfyK6qdyfINk+0ObA9sBLwK+NAgaX6o/L2Faqe0ClUXxpMlb4BX2964xev754bxq9j+aXm+DrAasD6wH/Ddhh3vUcBLgc2Bl5Rp/nWQ3AZ8GfjswA54CN4DvLXEfSfVh/xQYBLVe3tA0/RvAaYCbwMOlrRdGX4AsCvwZmA94EHgu03zvpnqvX57cxKStgH+g+q9WRf4G3AaQFm/s4F3lnX55CCv5XJggqSXSxoHvA9o7ts+hmr9v7jk80Fgn7LMn9PQ0ii5XGL73qZclwN+AfyF6j3aFviMpIHXdTRwtO0JwMY8t123sg7Vul6fqogdK2mgm2px28M6VAd+GwL7LyLGKTy3H9gDOAeo1+FQPzOL+TzuTPX+TaQqQIvdJ3RaikJrJwPvbTja/GAZ1srTVB/GDW0/XfpQF1sUbN9v+0zbj9t+BDiC6sPWlpLb2VQfol+VZZ5n+3ZXLgHOp6HFsxjvA86zfYHtp6n6/VekOjoa8N+259p+gOrDvfkgy9ob+JbtO2w/ChwC7KHhnWx9GvhqWce/Ah4FNpEk4CPAZ20/UNbl16g+xIOyPZNq/Rw0xHyOsT3f9t+BPwBX2L627CTPAppPoH/F9mO2r6c6GBjYiX4U+KLtOWXew4HdmtbV4WXeJ1rksTdwgu1ryvyHAP+kJT8XMNBaeCtwM/D3gRENheIQ24/Yvgv4JlWXKsCPWbgo7FWGNXsd0Gf7q7afsn0H8D889149DbxE0iTbj9q+fDE5f7kcaFwCnAfs3ub28CxwWJm31TodcBawtaTVyro5pWl8Jz8zAy6z/Svbz1C9J69ezPQdl6LQgu3LqI7Ad5H0YqqNudVGDvB14DbgfFVdNge3E0PSSpL+X2mKPwxcCkwsH8B2HA/cYvuohmXuIOny0o3wELAj1dFUO9ajOsoEwPazwN1UR1kD5jU8fpyqBbDYZZXH46laUkN1f9P5nIH4fcBKwNWlCf8Q8JsyfHH+Ffi/ktYZQj7zGx4/0eJ587q5u+Hx36jWEVRHq2c15D4LeIaF11XjvM2a37dHgftZ+H1rxw+pduYf4vk7v0nA8jz/PR2IcRGwoqQtJW1IteM7q0WMDam6TB5qeL2H8txr3Y/qCP9mSVdJ2mkR+T5Yjrgb81mP9raHftv/u4hlA3WvwXnAl4BJtv/YNEknPzODTf/CYR5MLbGeXCa3jBhoOm4CnG97fquJypHIgcCBkjYDfi/pKtsXUr2pKzVMvg5VVxNlnk2ALW3Pk7Q5cC3QfIL7eUrh2QR4Y8OwFYAzS87n2H5a0tkNy1tc62Uu8MqG5QnYgIYjxiUwl2oHMOBFwAIW3nF2yn1UO+HNylF722zfLOnnVDumRo/x/PdtuDagOgKHan0MdBfcDezbYodDw9H+ot67hdZ16a9ekyV832z/TdKdVAcS+zWNvo/qKH5D4KaG1/D3Mu+zkk6nai3MB35ZPhfN7gbutD11kBxuBfYs3UzvBs6QtGbTzn/A6pJWbhj3IuAG2tseluTW0KdQFb2vtBg3nM/MUnt76rQUBncKsB1VU3SwriMk7STpJWWDeJjqKO+ZMnomsJekcZK2Z+HuoVWpNt6HSr/2Ye0kJWkHSj90U9N3eWAFqhbOgjJd42Ws84E1S1O4ldOBd0jaVtILqIrWk8Cf2smryU+o+us3krQKVfP9p0tw5dZ8qr7rxSpHZ/9Ddf5kLQBJ6zf0Uy/OV6jOv0xsGDYT2FHSGqUV8Zk2l7UoXy6tw81KvIFzJT8AjihH2AMnaXdZguX+GNhH0ublwOBrVF1Zdw0hx/2AbZp3wqUr4/SS56ol18+x8HmHH1N1p+zN4K3qK4GHy0neFcvn4hWSXgcg6f2S+sp7+lCZ55lBlgXwFUnLS3oT1bm0n3Vge2h2CVWX2jEtxg3nM7O4z2PPpCgMonyo/gSsTNMVB02mAr+j6uP+M/A92xeXcZ+mOgn5ENWHpfE68f+i6n+8j+pE32/aTO19VE3hWQ1XLvygHJkdQLWhPkjVFVDnbftmqp31HaVZvV7jQm3fAryfauO/r+T9TttPtZlXoxOouiMupbrc8X+BTy3B/IcDJ5c8d29j+oOouvAuL11xv6NqSS2W7TtLris3DP4h1cnQu6jOO/z0+XMusUtKjhcC37A98GXEo6nep/MlPUK1LWzZ7kJLi/TLVK3Ee6hO0C7yfMoilnW77RmDjP4UVQvqDuAyqh3/CQ3zXlHGr0d10r3V8p+h2q42p9ou7gOOozqBDdUJ2RtVXaF2NLDHIrp55lFt53OBU4GPlW0chrE9tMjZti8s5wSaxw35M7O4z2MvqY1zohERSw1VXzL8ke2Wl3DH8KSlEBERtRSFiIiopfsoIiJqaSlEREQtRSEiImrL9JfXJk2a5ClTpvQ6jYiIZcrVV199n+2W3/pfpovClClTmDFjsMuqIyKiFUl/G2xcuo8iIqKWohAREbUUhYiIqKUoRERELUUhIiJqKQoREVFLUYiIiFqKQkRE1JbpL69FRIx2Uw4+b0jz3XXkO4Y0X1oKERFRS1GIiIhaikJERNRSFCIiopaiEBERta4VBUknSLpX0g0Nw74u6WZJ10k6S9LEhnGHSLpN0i2S3t6tvCIiYnDdbCmcBGzfNOwC4BW2XwX8FTgEQNKmwB7AZmWe70ka18XcIiKiha4VBduXAg80DTvf9oLy9HJgcnm8C3Ca7Sdt3wncBmzRrdwiIqK1Xp5T2Bf4dXm8PnB3w7g5ZVhERIygnhQFSV8EFgCnDgxqMZkHmXd/STMkzejv7+9WihERY9KIFwVJ04GdgL1tD+z45wAbNEw2GZjban7bx9qeZntaX1/L352OiIghGtGiIGl74CBgZ9uPN4w6F9hD0gqSNgKmAleOZG4REdHFG+JJ+gmwNTBJ0hzgMKqrjVYALpAEcLntj9m+UdLpwE1U3UqfsP1Mt3KLiIjWulYUbO/ZYvDxi5j+COCIbuUTERGLl280R0RELb+nEMHI37M+YmmVlkJERNRSFCIiopaiEBERtRSFiIiopShEREQtRSEiImopChERUUtRiIiIWopCRETU8o3miIglMNq//Z6WQkRE1FIUIiKilqIQERG1nFOI6IHR3i8dy660FCIiopaiEBERtRSFiIiopShEREQtRSEiImopChERUUtRiIiIWopCRETUulYUJJ0g6V5JNzQMW0PSBZJuLf9XL8Ml6b8l3SbpOkmv7VZeERExuG62FE4Ctm8adjBwoe2pwIXlOcAOwNTytz/w/S7mFRERg+jabS5sXyppStPgXYCty+OTgYuBg8rwU2wbuFzSREnr2r6nW/nF0i23gYjojZE+p7D2wI6+/F+rDF8fuLthujllWEREjKCl5USzWgxzywml/SXNkDSjv7+/y2lFRIwtI10U5ktaF6D8v7cMnwNs0DDdZGBuqwXYPtb2NNvT+vr6uppsRMRYM9JF4Vxgenk8HTinYfgHy1VIrwf+kfMJEREjr2snmiX9hOqk8iRJc4DDgCOB0yXtB8wG3lsm/xWwI3Ab8DiwT7fyioiIwXXz6qM9Bxm1bYtpDXyiW7lERER7lpYTzRERsRRIUYiIiFqKQkRE1FIUIiKilqIQERG1FIWIiKilKERERC1FISIiaikKERFRS1GIiIhaikJERNRSFCIiopaiEBERtRSFiIiopShEREQtRSEiImopChERUUtRiIiIWopCRETUUhQiIqKWohAREbUUhYiIqKUoRERELUUhIiJq43sRVNJngQ8DBq4H9gHWBU4D1gCuAT5g+6le5LcsmHLweUOa764j39HhTCJiNBnxloKk9YEDgGm2XwGMA/YAjgK+bXsq8CCw30jnFhEx1vWq+2g8sKKk8cBKwD3ANsAZZfzJwK49yi0iYswa8aJg++/AN4DZVMXgH8DVwEO2F5TJ5gDrj3RuERFjXS+6j1YHdgE2AtYDVgZ2aDGpB5l/f0kzJM3o7+/vXqIREWNQL7qPtgPutN1v+2ng58AbgImlOwlgMjC31cy2j7U9zfa0vr6+kck4ImKM6EVRmA28XtJKkgRsC9wE/B7YrUwzHTinB7lFRIxpvTincAXVCeVrqC5HXQ44FjgI+Jyk24A1geNHOreIiLGuJ99TsH0YcFjT4DuALXqQTkREFPlGc0RE1FIUIiKilqIQERG1FIWIiKilKERERC1FISIiam0VBUkXtjMsIiKWbYv8noKkF1LdxXRSuWeRyqgJVPctioiIUWRxX177KPAZqgJwNc8VhYeB73Yxr4iI6IFFFgXbRwNHS/qU7WNGKKeI6KD8Sl8sibZuc2H7GElvAKY0zmP7lC7lFRERPdBWUZD0Q2BjYCbwTBlsIEUhImIUafeGeNOATW23/OGbiIgYHdr9nsINwDrdTCQiInqv3ZbCJOAmSVcCTw4MtL1zV7KKiIieaLcoHN7NJCIiYunQ7tVHl3Q7kYiI6L12rz56hOpqI4DlgRcAj9me0K3EIiJi5LXbUli18bmkXclPZ0ZEjDpDukuq7bOBbTqcS0RE9Fi73Ufvbni6HNX3FvKdhYiIUabdq4/e2fB4AXAXsEvHs1mG5f4yETEatHtOYZ9uJxIREb3X7o/sTJZ0lqR7Jc2XdKakyd1OLiIiRla7J5pPBM6l+l2F9YFflGFDImmipDMk3SxplqR/krSGpAsk3Vr+rz7U5UdExNC0WxT6bJ9oe0H5OwnoG0bco4Hf2H4Z8GpgFnAwcKHtqcCF5XlERIygdovCfZLeL2lc+Xs/cP9QAkqaAPwzcDyA7adsP0R14vrkMtnJwK5DWX5ERAxdu0VhX2B3YB5wD7AbMNSTzy8G+oETJV0r6ThJKwNr274HoPxfq9XMkvaXNEPSjP7+/iGmEBERrbRbFP4NmG67z/ZaVEXi8CHGHA+8Fvi+7dcAj7EEXUW2j7U9zfa0vr7h9GBFRESzdovCq2w/OPDE9gPAa4YYcw4wx/YV5fkZVEVivqR1Acr/e4e4/IiIGKJ2i8JyjVcDSVqD9r/4thDb84C7JW1SBm0L3ER1ddP0Mmw6cM5Qlh8REUPX7o79m8CfJJ1BdXuL3YEjhhH3U8CpkpYH7qA6P7EccLqk/YDZwHuHsfyIiBiCdr/RfIqkGVQ3wRPwbts3DTWo7ZlU909qtu1QlxkREcPXdhdQKQJDLgQREbH0G9KtsyMiYnRKUYiIiNqQriCKiFha5Lb1nZWWQkRE1FIUIiKilqIQERG1FIWIiKilKERERC1FISIiaikKERFRy/cUoi25FjxibEhLISIiaikKERFRS1GIiIhaikJERNRyojkiOioXJSzb0lKIiIhaikJERNRSFCIiopaiEBERtRSFiIiopShEREQtRSEiImo9KwqSxkm6VtIvy/ONJF0h6VZJP5W0fK9yi4gYq3rZUvg0MKvh+VHAt21PBR4E9utJVhERY1hPioKkycA7gOPKcwHbAGeUSU4Gdu1FbhERY1mvWgr/BXwBeLY8XxN4yPaC8nwOsH6rGSXtL2mGpBn9/f3dzzQiYgwZ8aIgaSfgXttXNw5uMalbzW/7WNvTbE/r6+vrSo4REWNVL26ItxWws6QdgRcCE6haDhMljS+thcnA3B7kFhExpo14S8H2IbYn254C7AFcZHtv4PfAbmWy6cA5I51bRMRYtzTdOvsg4DRJ/w5cCxw/nIXl9r0REUuup0XB9sXAxeXxHcAWvcwnImKsyzeaIyKilqIQERG1FIWIiKilKERERC1FISIiaikKERFRS1GIiIhaikJERNRSFCIiopaiEBERtRSFiIiopShEREQtRSEiImopChERUUtRiIiIWopCRETUUhQiIqKWohAREbUUhYiIqKUoRERELUUhIiJqKQoREVFLUYiIiFqKQkRE1Ea8KEjaQNLvJc2SdKOkT5fha0i6QNKt5f/qI51bRMRY14uWwgLgQNsvB14PfELSpsDBwIW2pwIXlucRETGCRrwo2L7H9jXl8SPALGB9YBfg5DLZycCuI51bRMRY19NzCpKmAK8BrgDWtn0PVIUDWGuQefaXNEPSjP7+/pFKNSJiTOhZUZC0CnAm8BnbD7c7n+1jbU+zPa2vr697CUZEjEE9KQqSXkBVEE61/fMyeL6kdcv4dYF7e5FbRMRY1ourjwQcD8yy/a2GUecC08vj6cA5I51bRMRYN74HMbcCPgBcL2lmGXYocCRwuqT9gNnAe3uQW0TEmDbiRcH2ZYAGGb3tSOYSERELyzeaIyKilqIQERG1FIWIiKilKERERC1FISIiaikKERFRS1GIiIhaikJERNRSFCIiopaiEBERtRSFiIiopShEREQtRSEiImopChERUUtRiIiIWopCRETUUhQiIqKWohAREbUUhYiIqKUoRERELUUhIiJqKQoREVFLUYiIiFqKQkRE1Ja6oiBpe0m3SLpN0sG9ziciYixZqoqCpHHAd4EdgE2BPSVt2tusIiLGjqWqKABbALfZvsP2U8BpwC49zikiYsyQ7V7nUJO0G7C97Q+X5x8AtrT9yYZp9gf2L083AW4ZQqhJwH3DTDfxEm80xBvNry3xBreh7b5WI8YPL5+OU4thC1Ut28cCxw4riDTD9rThLCPxEm80xBvNry3xhmZp6z6aA2zQ8HwyMLdHuUREjDlLW1G4CpgqaSNJywN7AOf2OKeIiDFjqeo+sr1A0ieB3wLjgBNs39iFUMPqfkq8xBtF8Ubza0u8IViqTjRHRERvLW3dRxER0UMpChERUUtRiIiIWopCF0h6maRtJa3SNHz7LsXbQtLryuNNJX1O0o7diNUi9ikjEach3hvL63tbF5a9paQJ5fGKkr4i6ReSjpK0WhfiHSBpg8VP2bF4y0v6oKTtyvO9JH1H0ickvaBLMTeW9C+Sjpb0TUkf68a6jM4Z0yeaJe1j+8QOL/MA4BPALGBz4NO2zynjrrH92g7HO4zqXlHjgQuALYGLge2A39o+ooOxmi8PFvAW4CIA2zt3KlZDzCttb1Eef4Rq3Z4FvA34he0jOxjrRuDV5Sq4Y4HHgTOAbcvwd3cqVon3D+Ax4HbgJ8DPbPd3MkZTvFOptpOVgIeAVYCfU70+2Z7e4XgHAO8ELgF2BGYCDwLvAj5u++JOxosOsT1m/4DZXVjm9cAq5fEUYAZVYQC4tkvxxlF90B8GJpThKwLXdTjWNcCPgK2BN5f/95THb+7Se3Rtw+OrgL7yeGXg+g7HmtX4WpvGzezGa6Nqrb8NOB7oB34DTAdW7UK868r/8cB8YFx5rk5vK2W51zfEWAm4uDx+UZc+C6sBRwI3A/eXv1ll2MROx1tMLr/uwjInAP8B/BDYq2nc9zoVZ6n6nkI3SLpusFHA2l0IOc72owC275K0NXCGpA1pfRuP4Vpg+xngcUm32364xH5C0rMdjjUN+DTwReDztmdKesL2JR2O02g5SatT7TzlciRt+zFJCzoc64aG1uNfJE2zPUPSS4GnOxwLwLafBc4Hzi9dODsAewLfAFrem2YYlitfCl2Zaie9GvAAsALQle4jqgL0TImxKoDt2V3qrjqdqtW6te15AJLWoSqyPwPe2slgkgZr9Yuql6DTTgRuBc4E9pX0Hqri8CTw+k4FGfVFgWrH/3aqZmsjAX/qQrx5kja3PRPA9qOSdgJOAF7ZhXhPSVrJ9uPA/xkYWPptO1oUyg7s25J+Vv7Pp/vb0GrA1VTvlyWtY3teOV/T6SL7YeBoSV+iusnYnyXdDdxdxnXaQvnbfprqG/znSlqxC/GOpzqKHkdV2H8m6Q6qHcppXYh3HHCVpMuBfwaOApDUR1WMOm2K7aMaB5TicJSkfbsQ7yqqrrFW2+HELsTb2PZ7yuOzJX0RuEhSR7ttR/05BUnHAyfavqzFuB/b3qvD8SZTHb3PazFuK9t/7HC8FcqRQvPwScC6tq/vZLymGO8AtrJ9aLdiLCL2SsDatu/swrJXBV5MVfDm2J7f6Rglzktt/7Uby15EzPUAbM+VNJHq3NNs21d2Kd5mwMuBG2zf3I0YDbHOB34HnDzwnklaG/gQ8Fbb23U43g3Au2zf2mLc3bY7ehGBpFnAZuXgbGDYdOALVF3WG3YkzmgvChExNpRuxoOpfoNlrTJ4PlXr60jbzb0Fw423G9V5refdvl/SrrbP7nC8/wTOt/27puHbA8fYntqROCkKETHadeNKw9EaL0UhIkY9SbNtvyjxFm8snGiOiDFgpK80HK3xUhQiYrQY6SsNR2W8FIWIGC1+SXUVzszmEZIuTrz25JxCRETUckO8iIiopShEREQtRSFiBEmaKOnjDc+3lvTLXuYU0ShFIWJkTQQ+vtipInokRSFiEJKmSLpZ0nGSbpB0qqTtJP1R0q3lx43WkHS2pOskXS7pVWXewyWdIOliSXeU3xaA6jbOG0uaKenrZdgqks4osU6V1I276Ua0JZekRizaS4D3AvtT3RVzL+CNwM7AoVR3UL3W9q6StgFO4bnbJr+M6keIVgVukfR9qnvzvML25lB1HwGvATYD5gJ/BLYCnncDx4iRkJZCxKLdafv6cmfKG4ELXV3HfT3Vjyi9kepHT7B9EbBmw89Nnmf7Sdv3Afcy+LdOr7Q9p8SYWZYb0RMpChGL1nhb8mcbnj9L1dJu1dUz8OWfxnmfYfCWebvTRXRdikLE8FwK7A11V9B9A79+N4hHKL9AFrE0yhFJxPAcDpxYblb2ONVPPw7K9v3lRPUNwK+B87qfYkT7cpuLiIiopfsoIiJqKQoREVFLUYiIiFqKQkRE1FIUIiKilqIQERG1FIWIiKilKERERO3/A6vkOB1ZQ8v8AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "bar_graph_count(movies_month, \"month\", \"count\", \"Visualization of the Number of Movies per Month\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "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>count</th>\n",
       "      <th>source</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>88</td>\n",
       "      <td>Based on Comic/Graphic Novel</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>39</td>\n",
       "      <td>Based on Factual Book/Article</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>201</td>\n",
       "      <td>Based on Fiction Book/Short Story</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12</td>\n",
       "      <td>Based on Folk Tale/Legend/Fairytale</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>8</td>\n",
       "      <td>Based on Game</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2</td>\n",
       "      <td>Based on Movie</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2</td>\n",
       "      <td>Based on Musical or Opera</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>5</td>\n",
       "      <td>Based on Play</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>39</td>\n",
       "      <td>Based on Real Life Events</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2</td>\n",
       "      <td>Based on Religious Text</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>3</td>\n",
       "      <td>Based on Short Film</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>55</td>\n",
       "      <td>Based on TV</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>5</td>\n",
       "      <td>Based on Theme Park Ride</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>8</td>\n",
       "      <td>Based on Toy</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>421</td>\n",
       "      <td>Original Screenplay</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>63</td>\n",
       "      <td>Remake</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>15</td>\n",
       "      <td>Spin-Off</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count                               source\n",
       "0      88         Based on Comic/Graphic Novel\n",
       "1      39        Based on Factual Book/Article\n",
       "2     201    Based on Fiction Book/Short Story\n",
       "3      12  Based on Folk Tale/Legend/Fairytale\n",
       "4       8                        Based on Game\n",
       "5       2                       Based on Movie\n",
       "6       2            Based on Musical or Opera\n",
       "7       5                        Based on Play\n",
       "8      39            Based on Real Life Events\n",
       "9       2              Based on Religious Text\n",
       "10      3                  Based on Short Film\n",
       "11     55                          Based on TV\n",
       "12      5             Based on Theme Park Ride\n",
       "13      8                         Based on Toy\n",
       "14    421                  Original Screenplay\n",
       "15     63                               Remake\n",
       "16     15                             Spin-Off"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_source = groupby_count(movies_dom, \"source\", \"genre\")\n",
    "movies_source"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'source')"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "movies_source.sort_values(['count'], ascending=[False], inplace = True)\n",
    "bar_graph_count(movies_source, \"source\", \"count\", \"Visualization of the Number of Movies per Source\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "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>count</th>\n",
       "      <th>distributor</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>131</td>\n",
       "      <td>20th Century Fox</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>19</td>\n",
       "      <td>Dreamworks SKG</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>FilmDistrict</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>7</td>\n",
       "      <td>Focus Features</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>Fox Searchlight</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>40</td>\n",
       "      <td>Lionsgate</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>9</td>\n",
       "      <td>MGM</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>11</td>\n",
       "      <td>Miramax</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>7</td>\n",
       "      <td>Miramax/Dimension</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>21</td>\n",
       "      <td>New Line</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>126</td>\n",
       "      <td>Paramount Pictures</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>3</td>\n",
       "      <td>Relativity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>6</td>\n",
       "      <td>STX Entertainment</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>151</td>\n",
       "      <td>Sony Pictures</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>5</td>\n",
       "      <td>Summit Entertainment</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>1</td>\n",
       "      <td>United Artists</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>135</td>\n",
       "      <td>Universal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>131</td>\n",
       "      <td>Walt Disney</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>152</td>\n",
       "      <td>Warner Bros.</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>6</td>\n",
       "      <td>Weinstein Co.</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count           distributor\n",
       "0     131      20th Century Fox\n",
       "1      19        Dreamworks SKG\n",
       "2       1          FilmDistrict\n",
       "3       7        Focus Features\n",
       "4       6       Fox Searchlight\n",
       "5      40             Lionsgate\n",
       "6       9                   MGM\n",
       "7      11               Miramax\n",
       "8       7     Miramax/Dimension\n",
       "9      21              New Line\n",
       "10    126    Paramount Pictures\n",
       "11      3            Relativity\n",
       "12      6     STX Entertainment\n",
       "13    151         Sony Pictures\n",
       "14      5  Summit Entertainment\n",
       "15      1        United Artists\n",
       "16    135             Universal\n",
       "17    131           Walt Disney\n",
       "18    152          Warner Bros.\n",
       "19      6         Weinstein Co."
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_distributor = groupby_count(movies_dom, \"distributor\", \"genre\")\n",
    "movies_distributor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "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>count</th>\n",
       "      <th>distributor</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>131</td>\n",
       "      <td>20th Century Fox</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>19</td>\n",
       "      <td>Dreamworks SKG</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>FilmDistrict</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>7</td>\n",
       "      <td>Focus Features</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>6</td>\n",
       "      <td>Fox Searchlight</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>40</td>\n",
       "      <td>Lionsgate</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>9</td>\n",
       "      <td>MGM</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>11</td>\n",
       "      <td>Miramax</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>7</td>\n",
       "      <td>Miramax/Dimension</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>21</td>\n",
       "      <td>New Line</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>126</td>\n",
       "      <td>Paramount Pictures</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>3</td>\n",
       "      <td>Relativity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>6</td>\n",
       "      <td>STX Entertainment</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>151</td>\n",
       "      <td>Sony Pictures</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>5</td>\n",
       "      <td>Summit Entertainment</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>1</td>\n",
       "      <td>United Artists</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>135</td>\n",
       "      <td>Universal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>131</td>\n",
       "      <td>Walt Disney</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>152</td>\n",
       "      <td>Warner Bros.</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>6</td>\n",
       "      <td>Weinstein Co.</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count           distributor\n",
       "0     131      20th Century Fox\n",
       "1      19        Dreamworks SKG\n",
       "2       1          FilmDistrict\n",
       "3       7        Focus Features\n",
       "4       6       Fox Searchlight\n",
       "5      40             Lionsgate\n",
       "6       9                   MGM\n",
       "7      11               Miramax\n",
       "8       7     Miramax/Dimension\n",
       "9      21              New Line\n",
       "10    126    Paramount Pictures\n",
       "11      3            Relativity\n",
       "12      6     STX Entertainment\n",
       "13    151         Sony Pictures\n",
       "14      5  Summit Entertainment\n",
       "15      1        United Artists\n",
       "16    135             Universal\n",
       "17    131           Walt Disney\n",
       "18    152          Warner Bros.\n",
       "19      6         Weinstein Co."
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_distributor = movies_distributor[movies_distributor[\"count\"] > 0]\n",
    "movies_distributor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'distributor')"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "movies_distributor.sort_values(['count'], ascending=[False], inplace = True)\n",
    "bar_graph_count(movies_distributor, \"distributor\", \"count\", \"Visualization of the Number of Movies per Distributor\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "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>count</th>\n",
       "      <th>production_method</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>87</td>\n",
       "      <td>Animation/Live Action</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>110</td>\n",
       "      <td>Digital Animation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>Hand Animation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>762</td>\n",
       "      <td>Live Action</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>Stop-Motion Animation</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   count      production_method\n",
       "0     87  Animation/Live Action\n",
       "1    110      Digital Animation\n",
       "2      8         Hand Animation\n",
       "3    762            Live Action\n",
       "4      1  Stop-Motion Animation"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_production_method = groupby_count(movies_dom, \"production_method\", \"genre\")\n",
    "movies_production_method"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'production_method')"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "movies_production_method.sort_values(['count'], ascending=[False], inplace = True)\n",
    "bar_graph_count(movies_production_method, \"production_method\", \"count\", \"Visualization of the Number of Movies per Production Method\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [],
   "source": [
    "######################################################################################################################\n",
    "#\n",
    "# We are ready to create our testing and training dfs, we are going to see if we can predict percent_profit \n",
    "# For the domestic movies we have a company called \"Flops are Us\" and we want to see if we can predict if a \n",
    "# movie will be a flop or not after the first weekend. \n",
    "#\n",
    "# We will also try to predict percent profit without the open_wkend_rev and open_wken_rev/open_wkend_theaters\n",
    "#\n",
    "######################################################################################################################"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "#################################################################\n",
    "#Naive Bayes \n",
    "#**All Numerica Data *** \n",
    "#################################################################"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 206,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Creating a test_train df for each of our 3 dfs \n",
    "test_train_movies_dom = movies_dom.copy() \n",
    "test_train_movies_int = movies_int.copy() \n",
    "test_train_movies_ww  = movies_ww.copy() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 207,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_train_movies_dom.columns\n",
    "#Need to remove \"creative_type\", \"genre\", \"production_method\", \"released\", \"source\", \"distributor\", \"title\"\n",
    "columns_to_remove = [\"creative_type\", \"genre\", \"production_method\", \"released\", \"source\", \"distributor\", \"title\", \"open_wkend_rev/open_wkend_theaters\", \"open_wkend_rev\", \"budget\", \"year\", \"month\", \"day\", \"open_wkend_theaters\"]\n",
    "columns_to_remove_ex = [\"dom_cumulative_mean_creative_type\", \"dom_cumulative_mean_genre\", \"dom_cumulative_mean_production_method\", \n",
    "                       \"dom_cumulative_mean_source\", \"dom_cumulative_mean_distributor\", \"dom_cumulative_mean_month\"]\n",
    "columns_to_remove_cumulative = [\"dom_exp_mean_creative_type\", \"dom_exp_mean_genre\", \"dom_exp_mean_production_method\", \n",
    "                       \"dom_exp_mean_source\", \"dom_exp_mean_distributor\", \"dom_exp_mean_month\"]\n",
    "test_train_movies_dom.drop(columns_to_remove, axis = 1, inplace = True)\n",
    "test_train_movies_dom_ex = test_train_movies_dom.copy() \n",
    "test_train_movies_dom_cumulative = test_train_movies_dom.copy() \n",
    "test_train_movies_dom_ex.drop(columns_to_remove_ex, axis = 1, inplace = True)\n",
    "test_train_movies_dom_cumulative.drop(columns_to_remove_cumulative, axis = 1, inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 208,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['dom_percent_profit', 'dom_cumulative_mean_creative_type',\n",
       "       'dom_exp_mean_creative_type', 'dom_cumulative_mean_genre',\n",
       "       'dom_exp_mean_genre', 'dom_cumulative_mean_production_method',\n",
       "       'dom_exp_mean_production_method', 'dom_cumulative_mean_source',\n",
       "       'dom_exp_mean_source', 'dom_cumulative_mean_distributor',\n",
       "       'dom_exp_mean_distributor', 'dom_cumulative_mean_month',\n",
       "       'dom_exp_mean_month'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 208,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_train_movies_dom.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 209,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_train_movies_int.columns\n",
    "#Need to remove \"creative_type\", \"genre\", \"production_method\", \"released_ww\", \"source\", \"distributor\", \"title\"\n",
    "columns_to_remove = [\"creative_type\", \"genre\", \"production_method\", \"released_ww\", \"source\", \"distributor\", \"title\"]\n",
    "test_train_movies_int.drop(columns_to_remove, axis = 1, inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 210,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_train_movies_ww.columns \n",
    "#Need to remove \"creative_type\", \"genre\", \"production_method\", \"released_ww\", \"released\", \"source\", \"distributor\", \"title\"\n",
    "columns_to_remove = [\"creative_type\", \"genre\", \"production_method\", \"released_ww\", \"released\", \"source\", \"distributor\", \"title\"]\n",
    "test_train_movies_ww.drop(columns_to_remove, axis = 1, inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 211,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We have to descritze percent profit... We are interested if we will have a negative percent profit or a positive percent profit \n",
    "categories = [\"negative\", \"positive\"]\n",
    "#Negative anything less than or equal to .0001 \n",
    "#positive anything greater than .0001 \n",
    "test_train_movies_dom[\"percent_profit\"] = pd.cut(test_train_movies_dom[\"dom_percent_profit\"], [-101, 0.0001, 999999], labels = categories)\n",
    "test_train_movies_dom_ex[\"percent_profit\"] = pd.cut(test_train_movies_dom[\"dom_percent_profit\"], [-101, 0.0001, 999999], labels = categories)\n",
    "test_train_movies_dom_cumulative[\"percent_profit\"] = pd.cut(test_train_movies_dom[\"dom_percent_profit\"], [-101, 0.0001, 999999], labels = categories)\n",
    "\n",
    "# test_train_movies_int[\"percent_profit\"] = pd.cut(test_train_movies_int[\"int_percent_profit\"], [-101, 0.0001, 999999], labels = categories)\n",
    "# test_train_movies_ww[\"percent_profit\"] = pd.cut(test_train_movies_ww[\"ww_percent_profit\"], [-101, 0.0001, 999999], labels = categories)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 212,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "percent_profit\n",
       "negative    204\n",
       "positive    764\n",
       "Name: percent_profit, dtype: int64"
      ]
     },
     "execution_count": 212,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Getting the count of each category in our test_train_movies_dom df \n",
    "test_train_movies_dom_count = test_train_movies_dom.groupby(\"percent_profit\")[\"percent_profit\"].count()\n",
    "test_train_movies_dom_count"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 213,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "764\n",
      "204\n"
     ]
    }
   ],
   "source": [
    "# We are going to create a testing and training df that contains 386 negative, 386 positive percent_profits  \n",
    "#First we are going to subset the positive percent profits and the negative per+cent_profits \n",
    "positive = test_train_movies_dom[test_train_movies_dom[\"percent_profit\"] == \"positive\"]\n",
    "test_train_movies_dom = test_train_movies_dom[test_train_movies_dom[\"percent_profit\"] == \"negative\"]\n",
    "\n",
    "positive_ex = test_train_movies_dom_ex[test_train_movies_dom_ex[\"percent_profit\"] == \"positive\"]\n",
    "test_train_movies_dom_ex = test_train_movies_dom_ex[test_train_movies_dom_ex[\"percent_profit\"] == \"negative\"]\n",
    "\n",
    "positive_cumulative = test_train_movies_dom_cumulative[test_train_movies_dom_cumulative[\"percent_profit\"] == \"positive\"]\n",
    "test_train_movies_dom_cumulative = test_train_movies_dom_cumulative[test_train_movies_dom_cumulative[\"percent_profit\"] == \"negative\"]\n",
    "#Getting the length to make sure that we have 204 negative, 771 postive in our df \n",
    "print(len(positive))\n",
    "print(len(test_train_movies_dom))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 214,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "204\n"
     ]
    }
   ],
   "source": [
    "#Now getting a random sample of 198 entries in the positive df and setting the seed to 123\n",
    "#to reproduce the results \n",
    "positive = positive.sample(n = 204, random_state = 1201)\n",
    "positive_ex = positive_ex.sample(n = 204, random_state = 1201)\n",
    "positive_cumulative = positive_cumulative.sample(n = 204, random_state = 1201)\n",
    "#Getting the length to make sure that it worked \n",
    "print(len(positive))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 215,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "408"
      ]
     },
     "execution_count": 215,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Adding the positive movies back to the test_train_movies_pp df \n",
    "test_train_movies_dom = pd.concat([test_train_movies_dom, positive])\n",
    "test_train_movies_dom_ex = pd.concat([test_train_movies_dom_ex, positive_ex])\n",
    "test_train_movies_dom_cumulative = pd.concat([test_train_movies_dom_cumulative, positive_cumulative])\n",
    "#Getting the length to make sure that the 2 df were combined correctly and if it did we would have 408 movies in our df\n",
    "len(test_train_movies_dom)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 216,
   "metadata": {},
   "outputs": [],
   "source": [
    "# #Repeating the process for test_train_movies_int\n",
    "# #Getting the count of each category in our test_train_movies_int df \n",
    "# test_train_movies_int_count = test_train_movies_int.groupby(\"percent_profit\")[\"percent_profit\"].count()\n",
    "# test_train_movies_int_count"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 217,
   "metadata": {},
   "outputs": [],
   "source": [
    "# # We are going to create a testing and training df that contains 420 negative, 420 positive percent_profits  \n",
    "# #First we are going to subset the positive percent profits and the negative per+cent_profits \n",
    "# positive = test_train_movies_int[test_train_movies_int[\"percent_profit\"] == \"positive\"]\n",
    "# test_train_movies_int = test_train_movies_int[test_train_movies_int[\"percent_profit\"] == \"negative\"]\n",
    "# #Getting the length to make sure that we have 229 negative, 739 postive in our df \n",
    "# print(len(positive))\n",
    "# print(len(test_train_movies_int))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 218,
   "metadata": {},
   "outputs": [],
   "source": [
    "# #Now getting a random sample of 420 entries in the positive df and setting the seed to 123\n",
    "# #to reproduce the results \n",
    "# positive = positive.sample(n = 229, random_state = 1201)\n",
    "# #Getting the length to make sure that it worked \n",
    "# print(len(positive))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 219,
   "metadata": {},
   "outputs": [],
   "source": [
    "# #Adding the positive movies back to the test_train_movies_pp df \n",
    "# test_train_movies_int = pd.concat([test_train_movies_int, positive])\n",
    "# #Getting the length to make sure that the 2 df were combined correctly and if it did we would have 458 movies in our df\n",
    "# len(test_train_movies_int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 220,
   "metadata": {},
   "outputs": [],
   "source": [
    "# #Repeating the process for test_train_movies_ww \n",
    "# #Getting the count of each category in our test_train_movies_ww df \n",
    "# test_train_movies_ww_count = test_train_movies_ww.groupby(\"percent_profit\")[\"percent_profit\"].count()\n",
    "# test_train_movies_ww_count"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 221,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We do not have sufficient information to predict a negative or positive percent profit for world wide movies \n",
    "# We need more movies with a negative world wide percent profit... Although this is extremely interesting and \n",
    "# suggests that movies that have a negative domestic profit should release the movie internationally to recover "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 222,
   "metadata": {},
   "outputs": [],
   "source": [
    "# #Changing the data type of month day and year to numeric\n",
    "# columns = [\"month\", \"day\"]\n",
    "# columns_ww = [\"month_ww\", \"day_ww\"]\n",
    "# test_train_movies_dom[columns] = test_train_movies_dom[columns].apply(pd.to_numeric)\n",
    "# test_train_movies_dom_ex[columns] = test_train_movies_dom_ex[columns].apply(pd.to_numeric)\n",
    "# test_train_movies_dom_cumulative[columns] = test_train_movies_dom_cumulative[columns].apply(pd.to_numeric)\n",
    "\n",
    "# # test_train_movies_ww[columns_ww] = test_train_movies_ww[columns_ww].apply(pd.to_numeric)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 223,
   "metadata": {},
   "outputs": [],
   "source": [
    "# test_train_movies_dom.reset_index(inplace = True)\n",
    "# test_train_movies_int.reset_index(inplace = True)\n",
    "\n",
    "# test_train_movies_dom.drop(\"level_0\", axis = 1, inplace = True)\n",
    "# test_train_movies_int.drop(\"level_0\", axis = 1, inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 224,
   "metadata": {},
   "outputs": [],
   "source": [
    "# #removing the label from the test_train_movies_dom and int df and saving it in a label df\n",
    "test_train_movies_dom_label = test_train_movies_dom[\"percent_profit\"]\n",
    "test_train_movies_dom.drop(\"percent_profit\", axis = 1, inplace = True)\n",
    "test_train_movies_dom_ex_label = test_train_movies_dom_ex[\"percent_profit\"]\n",
    "test_train_movies_dom_ex.drop(\"percent_profit\", axis = 1, inplace = True)\n",
    "test_train_movies_dom_cumulative_label = test_train_movies_dom_cumulative[\"percent_profit\"]\n",
    "test_train_movies_dom_cumulative.drop(\"percent_profit\", axis = 1, inplace = True)\n",
    "#repeating the process for int\n",
    "# test_train_movies_int_label = test_train_movies_int[\"percent_profit\"]\n",
    "# test_train_movies_int.drop(\"percent_profit\", axis = 1, inplace = True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 225,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Creating 4 df: 1: the training df with label removed, 2: the testing df with label removed, 3: the training label, 4: testing label\n",
    "from sklearn.model_selection import train_test_split \n",
    "dom_train, dom_test, dom_train_label, dom_test_label = train_test_split(test_train_movies_dom, test_train_movies_dom_label, test_size = .3, random_state = 116)\n",
    "dom_ex_train, dom_ex_test, dom_ex_train_label, dom_ex_test_label = train_test_split(test_train_movies_dom_ex, test_train_movies_dom_ex_label, test_size = .3, random_state = 116)\n",
    "dom_cum_train, dom_cum_test, dom_cum_train_label, dom_cum_test_label = train_test_split(test_train_movies_dom_cumulative, test_train_movies_dom_cumulative_label, test_size = .3, random_state = 116)\n",
    "# int_train, int_test, int_train_label, int_test_label = train_test_split(test_train_movies_int, test_train_movies_int_label, test_size = .3, random_state = 123)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 226,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Counter({'negative': 62, 'positive': 61})\n"
     ]
    }
   ],
   "source": [
    "#Getting a count of percent_profit in our test label  scores in out test label\n",
    "#We want to have roughly the same number of positive and negative movies in our test df\n",
    "print(Counter(dom_test_label)) \n",
    "# print(Counter(int_test_label))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 227,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Using the standard scale to help preprocess and normalize the data \n",
    "# performing preprocessing part \n",
    "sc = StandardScaler()\n",
    "dom_train = sc.fit_transform(dom_train)\n",
    "dom_test = sc.transform(dom_test)\n",
    "\n",
    "dom_ex_train = sc.fit_transform(dom_ex_train)\n",
    "dom_ex_test = sc.transform(dom_ex_test)\n",
    "\n",
    "dom_cum_train = sc.fit_transform(dom_cum_train)\n",
    "dom_cum_test = sc.transform(dom_cum_test)\n",
    "# int_train = sc.fit_transform(int_train)\n",
    "# int_test = sc.transform(int_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 228,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Attempt 1: all variables\n",
    "clf = GaussianNB()\n",
    "clf.fit(dom_train, dom_train_label)\n",
    "test_predicted_dom_nb = clf.predict(dom_test)\n",
    "\n",
    "clf.fit(dom_ex_train, dom_ex_train_label)\n",
    "test_predicted_dom_ex_nb = clf.predict(dom_ex_test)\n",
    "\n",
    "clf.fit(dom_cum_train, dom_cum_train_label)\n",
    "test_predicted_dom_cum_nb = clf.predict(dom_cum_test)\n",
    "\n",
    "# clf.fit(int_train, int_train_label)\n",
    "# test_predicted_int_nb = clf.predict(int_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 229,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1, 'Dom Accuracy Score: 0.9024')"
      ]
     },
     "execution_count": 229,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 144x144 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Accuracy for dom \n",
    "dom_accuracy_nb = accuracy_score(dom_test_label, test_predicted_dom_nb, normalize = True)\n",
    "cm = confusion_matrix(dom_test_label, test_predicted_dom_nb)\n",
    "confusion_matrix_graph(cm, dom_accuracy_nb, \"Dom\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 230,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1, 'Dom Accuracy Score: 0.935')"
      ]
     },
     "execution_count": 230,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 144x144 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dom_ex_accuracy_nb = accuracy_score(dom_ex_test_label, test_predicted_dom_ex_nb, normalize = True)\n",
    "cm = confusion_matrix(dom_ex_test_label, test_predicted_dom_ex_nb)\n",
    "confusion_matrix_graph(cm, dom_ex_accuracy_nb, \"Dom\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 231,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1, 'Dom Accuracy Score: 0.9024')"
      ]
     },
     "execution_count": 231,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 144x144 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dom_cum_accuracy_nb = accuracy_score(dom_cum_test_label, test_predicted_dom_cum_nb, normalize = True)\n",
    "cm = confusion_matrix(dom_cum_test_label, test_predicted_dom_cum_nb)\n",
    "confusion_matrix_graph(cm, dom_cum_accuracy_nb, \"Dom\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
