{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# =======================================================\n",
    "# PART 3: NEXT STEPS\n",
    "# ======================================================="
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "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",
    "\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",
    "# 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(span=40,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 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\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1971"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(movies)\n",
    "#We did not have any movies with a 0 budget "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We are going to drop any movies with a DomesticBoxOffice of 0 \n",
    "movies = movies[movies[\"DomesticBoxOffice\"] != \"$0\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1952"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(movies)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['CreativeType', 'DomesticBoxOffice', 'Genre', 'Infl.Adj.Dom.BoxOffice',\n",
       "       'InternationalBoxOffice', 'MaximumTheaters', 'OpeningWeekendRevenue',\n",
       "       'OpeningWeekendTheaters', 'ProductionBudget', 'ProductionMethod',\n",
       "       'Released', 'ReleasedWorldwide', 'ReleasedWorldwide_2', 'Released_2',\n",
       "       'Source', 'TheatricalDistributor', 'TheatricalEngagements', 'Title',\n",
       "       'WorldwideBoxOffice'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 13,
     "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": 14,
   "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": 15,
   "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": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "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": 16,
     "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": 17,
   "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": 17,
   "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": 18,
   "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": 19,
   "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": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Checking data types again \n",
    "movies.dtypes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CategoricalDtype(categories=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], ordered=True)"
      ]
     },
     "execution_count": 20,
     "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": 23,
   "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": 24,
   "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": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Looking to see if that helped\n",
    "movies.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "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": 26,
   "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": 26,
     "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": 26,
   "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": 27,
   "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": 28,
   "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",
    "movies = left_merge_2_conditions(movies, dom_ct_ma, \"creative_type\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, int_ct_ma, \"creative_type\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, ww_ct_ma, \"creative_type\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, dom_genre_ma, \"genre\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, int_genre_ma, \"genre\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, ww_genre_ma, \"genre\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, dom_pm_ma, \"production_method\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, int_pm_ma, \"production_method\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, ww_pm_ma, \"production_method\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, dom_source_ma, \"source\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, int_source_ma, \"source\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, ww_source_ma, \"source\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, dom_distributor_ma, \"distributor\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, int_distributor_ma, \"distributor\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, ww_distributor_ma, \"distributor\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, dom_month_ma, \"month\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, int_month_ma, \"month\", \"released\")\n",
    "movies = left_merge_2_conditions(movies, ww_month_ma, \"month\", \"released\")\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "scrolled": true
   },
   "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>int_cumulative_mean_distributor</th>\n",
       "      <th>int_exp_mean_distributor</th>\n",
       "      <th>ww_cumulative_mean_distributor</th>\n",
       "      <th>ww_exp_mean_distributor</th>\n",
       "      <th>dom_cumulative_mean_month</th>\n",
       "      <th>dom_exp_mean_month</th>\n",
       "      <th>int_cumulative_mean_month</th>\n",
       "      <th>int_exp_mean_month</th>\n",
       "      <th>ww_cumulative_mean_month</th>\n",
       "      <th>ww_exp_mean_month</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>27.428436</td>\n",
       "      <td>21.539307</td>\n",
       "      <td>192.197044</td>\n",
       "      <td>229.524435</td>\n",
       "      <td>81.086533</td>\n",
       "      <td>65.615082</td>\n",
       "      <td>13.637318</td>\n",
       "      <td>55.181602</td>\n",
       "      <td>194.723851</td>\n",
       "      <td>220.796684</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>17.549794</td>\n",
       "      <td>-53.381194</td>\n",
       "      <td>304.874991</td>\n",
       "      <td>477.270669</td>\n",
       "      <td>137.721726</td>\n",
       "      <td>269.516736</td>\n",
       "      <td>108.456341</td>\n",
       "      <td>225.039103</td>\n",
       "      <td>346.178067</td>\n",
       "      <td>594.555839</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>1.336186</td>\n",
       "      <td>-24.745212</td>\n",
       "      <td>150.017676</td>\n",
       "      <td>82.748460</td>\n",
       "      <td>58.889794</td>\n",
       "      <td>41.882026</td>\n",
       "      <td>11.037764</td>\n",
       "      <td>43.924968</td>\n",
       "      <td>169.927558</td>\n",
       "      <td>185.806994</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>105.017328</td>\n",
       "      <td>-34.731348</td>\n",
       "      <td>314.685622</td>\n",
       "      <td>59.557927</td>\n",
       "      <td>79.386765</td>\n",
       "      <td>84.667641</td>\n",
       "      <td>93.108241</td>\n",
       "      <td>141.140128</td>\n",
       "      <td>272.495007</td>\n",
       "      <td>325.807769</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>83.354325</td>\n",
       "      <td>147.055898</td>\n",
       "      <td>384.951864</td>\n",
       "      <td>410.787157</td>\n",
       "      <td>39.228383</td>\n",
       "      <td>39.228383</td>\n",
       "      <td>49.367272</td>\n",
       "      <td>49.367272</td>\n",
       "      <td>188.595656</td>\n",
       "      <td>188.595656</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 65 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  ... int_cumulative_mean_distributor  \\\n",
       "0  125000000  Animation/Live Action  ...                       27.428436   \n",
       "1  109000000  Animation/Live Action  ...                       17.549794   \n",
       "2  115000000      Digital Animation  ...                        1.336186   \n",
       "3   50000000      Digital Animation  ...                      105.017328   \n",
       "4  123000000            Live Action  ...                       83.354325   \n",
       "\n",
       "  int_exp_mean_distributor  ww_cumulative_mean_distributor  \\\n",
       "0                21.539307                      192.197044   \n",
       "1               -53.381194                      304.874991   \n",
       "2               -24.745212                      150.017676   \n",
       "3               -34.731348                      314.685622   \n",
       "4               147.055898                      384.951864   \n",
       "\n",
       "   ww_exp_mean_distributor dom_cumulative_mean_month dom_exp_mean_month  \\\n",
       "0               229.524435                 81.086533          65.615082   \n",
       "1               477.270669                137.721726         269.516736   \n",
       "2                82.748460                 58.889794          41.882026   \n",
       "3                59.557927                 79.386765          84.667641   \n",
       "4               410.787157                 39.228383          39.228383   \n",
       "\n",
       "   int_cumulative_mean_month int_exp_mean_month  ww_cumulative_mean_month  \\\n",
       "0                  13.637318          55.181602                194.723851   \n",
       "1                 108.456341         225.039103                346.178067   \n",
       "2                  11.037764          43.924968                169.927558   \n",
       "3                  93.108241         141.140128                272.495007   \n",
       "4                  49.367272          49.367272                188.595656   \n",
       "\n",
       "   ww_exp_mean_month  \n",
       "0         220.796684  \n",
       "1         594.555839  \n",
       "2         185.806994  \n",
       "3         325.807769  \n",
       "4         188.595656  \n",
       "\n",
       "[5 rows x 65 columns]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1952, 65)"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "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",
       "       'int_cumulative_mean_creative_type', 'int_exp_mean_creative_type',\n",
       "       'ww_cumulative_mean_creative_type', 'ww_exp_mean_creative_type',\n",
       "       'dom_cumulative_mean_genre', 'dom_exp_mean_genre',\n",
       "       'int_cumulative_mean_genre', 'int_exp_mean_genre',\n",
       "       'ww_cumulative_mean_genre', 'ww_exp_mean_genre',\n",
       "       'dom_cumulative_mean_production_method',\n",
       "       'dom_exp_mean_production_method',\n",
       "       'int_cumulative_mean_production_method',\n",
       "       'int_exp_mean_production_method',\n",
       "       'ww_cumulative_mean_production_method', 'ww_exp_mean_production_method',\n",
       "       'dom_cumulative_mean_source', 'dom_exp_mean_source',\n",
       "       'int_cumulative_mean_source', 'int_exp_mean_source',\n",
       "       'ww_cumulative_mean_source', 'ww_exp_mean_source',\n",
       "       'dom_cumulative_mean_distributor', 'dom_exp_mean_distributor',\n",
       "       'int_cumulative_mean_distributor', 'int_exp_mean_distributor',\n",
       "       'ww_cumulative_mean_distributor', 'ww_exp_mean_distributor',\n",
       "       'dom_cumulative_mean_month', 'dom_exp_mean_month',\n",
       "       'int_cumulative_mean_month', 'int_exp_mean_month',\n",
       "       'ww_cumulative_mean_month', 'ww_exp_mean_month'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "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 = movies[movies[\"dom_cumulative_mean_creative_type\"] != 0]\n",
    "movies = movies[movies[\"dom_cumulative_mean_genre\"] != 0]\n",
    "movies = movies[movies[\"dom_cumulative_mean_production_method\"] != 0]\n",
    "movies = movies[movies[\"dom_cumulative_mean_source\"] != 0]\n",
    "movies = movies[movies[\"dom_cumulative_mean_distributor\"] != 0]\n",
    "movies = movies[movies[\"dom_cumulative_mean_month\"] != 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1859"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(movies) #We still have 1859 movies in our df "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "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[\"creative_type\"] = cat_fun(movies, \"creative_type\")\n",
    "movies[\"genre\"] = cat_fun(movies, \"genre\")\n",
    "movies[\"production_method\"] = cat_fun(movies, \"production_method\")\n",
    "movies[\"source\"] = cat_fun(movies, \"source\")\n",
    "movies[\"distributor\"] = cat_fun(movies, \"distributor\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "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>377</td>\n",
       "      <td>Action</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>538</td>\n",
       "      <td>Adventure</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>9</td>\n",
       "      <td>Black Comedy</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>315</td>\n",
       "      <td>Comedy</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>Concert/Performance</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2</td>\n",
       "      <td>Documentary</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>249</td>\n",
       "      <td>Drama</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>91</td>\n",
       "      <td>Horror</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>30</td>\n",
       "      <td>Musical</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>76</td>\n",
       "      <td>Romantic Comedy</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>158</td>\n",
       "      <td>Thriller/Suspense</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>12</td>\n",
       "      <td>Western</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count                genre\n",
       "0     377               Action\n",
       "1     538            Adventure\n",
       "2       9         Black Comedy\n",
       "3     315               Comedy\n",
       "4       2  Concert/Performance\n",
       "5       2          Documentary\n",
       "6     249                Drama\n",
       "7      91               Horror\n",
       "8      30              Musical\n",
       "9      76      Romantic Comedy\n",
       "10    158    Thriller/Suspense\n",
       "11     12              Western"
      ]
     },
     "execution_count": 35,
     "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_genre = groupby_count(movies, \"genre\", \"genre\")\n",
    "movies_genre"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'genre')"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAF2CAYAAACBJYT/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3dd7gcVf3H8fcnofcW6SF0RJEWlKaiIIJUCyiCIKKxIEVRQWyIDXtDRRTpIKAg2BCMFAUpCVUEfiBEibSAdJH6/f1xzk4mm703Nzdzdm/5vJ7nPnd3ZnfO2TbfOV0RgZmZGcCYXmfAzMyGDgcFMzOrOCiYmVnFQcHMzCoOCmZmVnFQMDOzioPCIEg6TtJnCqdxqaT35tt7S7qoQBpHSvpp08cdQLpvlnSPpCclbTyAx28jaXo38tY0SRMkhaT5epT+VpLuyO/17j1I/9WSbu92ujZ4DgptJP1B0tEdtu8m6X5J80XEByLiC93KU0ScHhHbz8sxOp1YI+LLEfHeecvdoHwD+HBELBYR17fvzCfRtUokLOnd+fgfb9s+XdI2JdLssaOBY/N7/av2nZKmSXpW0nJt22/I79OEeUk8Iv4cEevOyzF6QdKKkn4i6d4cUO+SdJKk9Xqdt9IcFGZ3EvAuSWrb/i7g9Ih4vvtZGnFWA27pYfr/AQ6XtEQP8zDXBlnaGMh7fTewVy2dDYCFB5HWsNPpPZW0LHAlsAjwamBxYBPgMuAN3chDT0WE/2p/pB/DY8BratuWBv4HbJjvnwR8Md9eDvgN8CjpZPNnYEzeF8BatePUn7d0ft4M4JF8e5XaYy8F3ptvvxv4S779CeDJ2t9zwEl53/7ArcATwF3A+/P2RYGngRdrz1sJOAo4rZbmrqQTyKM5/ZfW9k0DPgbclN+fs4CF+ngPxwCfBv4JPAicAiwJLJjTDuAp4B8dnnt5bf+TwNuBbYDpwGH5ePcB+9eesyCp9PEv4AHgOGDhPvL2buAvwK+Bz9W2Twe2af+c8v1tgOlt78XH83vxFHACsDzw+/ze/xFYOj92Qn49k4B7c94Pa3uvjgD+ATwMnA0s0/bcA/Jru7yP1/Q+4E7S9+8CYKW8/R/5M386v5cLdnjutPxZXVvb9g3gUzntCXnbkvlznJE/10/nvC+Yvy8vrz1/XE7zJR3eu5WAX+bj3A0cXNv3SmAK8Hj+HL/Vx+ttfR+OBB7Kr2HvgXwfas89HLgfOLXD8b8I3Ej+HfdzrticFDwezY/fpu33+wXgivyduAhYrr/Ptb/jdfPPJYU2EfE06Ye5b23znsBtEXFjh6ccRvqSjSOdGI4kfeBzMgY4kXQlN570Izp2APn7WqSqgMWAl5J+XGfn3Q8COwNLkALEtyVtEhFPATsC97aeGxH31o8raR3gTODQ/Fp+B/xa0gK1h+0J7ACsDryCdILt5N3573XAGsBipCqMZ3K+IQXYNTu8vtfU9i8WEWfl+yuQTkwrk35MP5C0dN73VWAdYCNgrfyYz/aRt5bPAB+RtMwcHteXt5KuGtcBdiEFhCNJFwljgIPbHv86YG1ge+AISdvl7QcDuwOvJZ0wHwF+0Pbc15I+6ze2Z0LS64GvkD6bFUkn7J8D5Pf3X8Au+b18po/XchWwhKSXShpLCsSntT3m+6T3f42cn31JgfkZ4FxqJY2cl8si4sG2vI4hBeMbSZ/RtsChklqv67vAdyNiCWBNZn6vO1mB9F6vDOwHHC+pVU01p+/DCsAypN/epA7H3g44LyJe7CtxSSsDvyUFkGVIF0y/lDSu9rB3kn6HLwEWyI+pqz7XAR6vO3oRiYb6H7A16Wq4dXVxBfCR2v6TmHnFfzRwPrUSQe1xfZYUOjx2I+CR2v1L6VBSqO1fGJgKHN7P6/gVcEi+vQ21K7a87ShySYF0kjy7tm8M8G9mXj1PA/ap7f8acFwf6U4GPlS7vy6pRDNfp/dlAO/bNqSgOV9t24OkKyuRrtbXrO3bAri7j2NX7yXppPPVfHtuSwr1K9NfAj+q3T8I+FW+PSG/nvXa3rsT8u1bgW1r+1ZsvVe1567Rz3t1AvC12v3F8vMn1PK6XT/Pn0Y6CX6aFFx2AC7O6UfOw1jgGWD92vPeD1yab28H3FXbdwWwb/t7B7wK+Fdb+p8ETsy3Lwc+T76i7ifP2wDPA4vWtp1N+g73+33Iz32WPkq5+TF3Ah+o3d+VdPX+BHBR3nY4baUM4A/AfrXf76dr+z4EXNj2nVijtr/f43XzzyWFDiLiL6Qr8N0krQFsBpzRx8O/TvoSXZQbo44YSBqSFpH0Y0n/lPQ46QexVL5SG4gTgNsj4qu1Y+4o6SpJ/5H0KPAm0tXUQKxEusoEINJV0j2kq6yW+2u3/0s6Ac3xWPn2fKSS1GA9HLO257TSH0eq+50q6dH8ui/M2+fks8AHJa0wiPw8ULv9dIf77e/NPbXb/yS9R5CuVs+r5f1W4AVmfa/qz23X/rk9SaqGWrnPZ3R2KunK9t2kaqK65UhXuu2faSuNPwELS3qVpNVIFzjndUhjNWCl1mvNr/dIZr7WA0hX+LdJulbSzv3k95FIJeB6flZiYN+HGRHxv36O/TApOAMQERdExFLAR0jvQ+u17NH2WrauP485/17qn+tAjtcVQ6uBY2g5hVREXpd0dfBApwdFxBOkKqTDJL0MuETStRExmfRFWKT28BVIV6Tk56wLvCoi7pe0EXA96UqnXznwrEv60rS2LUi6Yt0XOD8inpP0q9rx5lSldS+wQe14AlYllRbm1r2kL3nLeNKVXcf3cB49RDoJvywi5iqvEXGbpHNJJ6a6p5j9c5tXqwK35dvjSe8RpBPDeyLiivYn1Hr+9PfZzfJeS1oUWJa5/Nwi4p+S7iZdSBzQtvshUuljNeDvtdfw7/zcFyWdTapCegD4Tf5dtLuHdMW+dh95uAPYK1czvQX4haRl207+LUtLWrS2bzzwNwb2fZjTb2EysLukz0ffVUj3kK7s3zeHY/Wnno8mjtcIlxT6dgqpWPw+4OS+HiRpZ0lr5ZPo46SrvBfy7huAd0oaK2kHUh1iy+KkL++juV77cwPJlKQdyfXQkdo/WhYgNbDNAJ7Pj6t3Y30AWFbSkn0c+mxgJ0nbSpqfFLSeITV8za0zSfX1q0taDPgycFYMvOfWA6S66znKP9qfkNpPXgKpvrdWTz0nnyfV+y5V23YD8CZJy+RSxKEDPFZ/PpNLhy/L6bXaSo4DvpSvsJE0TtJuc3HcM4D9JW2ULwy+DFwdEdMGkccDgNe3n4Qj4gXS9+NLkhbPef0os7Y7nEFqi9ibvkvV1wCPSzpc0sL5d/FySZsBSNpH0rj8mT6an/NCH8cC+LykBSS9mtSWdk4D3weAb5E6gpwqaU0li5NKQC2nAbtIemN+HQspdfteZS7SqWv6eIPmoNCH/KO6ktRz54J+Hro2qbfJk8BfgR9GxKV53yGkRshHST+Wej/x75DaBR4iNfRdOMCsvZ1UFL5Vqf/0k5KOy1dmB5N+vI+QqgKqfEfEbaST9V25eLpS/aARcTuwD6lB8aGc710i4tkB5qvuZ6TqiMtJPUz+R6pnH6ijgJNzPvccwOMPJ1XhXZWr4v5IKknNUUTcnfO6aG3zqaTG0GmkXiNnzf7MuXZZzuNk4BsR0RqM+F3S53SRpCdI34VXDfSguUT6GVIp8T5SA+07BpPBiPhHREzpY/dBpBLUXaTeW2eQPufWc6/O+1ciNbp3Ov4LpO/VRqTvxUPAT0kN2JDaM26R9CTpfXlHP9U895O+5/cCp5PaAFolsUF/H3I+HyK1V/0vv9YnSBcKiwMfzI+5B9iNVMqcQbrS/ziDPKc2fbx5odygYWY2LCgNMjwtIrp+FT0auKRgZmYVBwUzM6u4+sjMzCouKZiZWWVYj1NYbrnlYsKECb3OhpnZsDJ16tSHIqLjAM9hHRQmTJjAlCl99aAzM7NOJP2zr32uPjIzs4qDgpmZVRwUzMys4qBgZmYVBwUzM6s4KJiZWcVBwczMKg4KZmZWcVAwM7PKsB7R3J8JR/x2UM+bdsxODefEzGz4cEnBzMwqDgpmZlZxUDAzs4qDgpmZVRwUzMys4qBgZmYVBwUzM6s4KJiZWcVBwczMKg4KZmZWKRoUJE2TdLOkGyRNyduWkXSxpDvy/6Xzdkn6nqQ7Jd0kaZOSeTMzs9l1o6TwuojYKCIm5vtHAJMjYm1gcr4PsCOwdv6bBPyoC3kzM7OaXlQf7QacnG+fDOxe235KJFcBS0lasQf5MzMbtUoHhQAukjRV0qS8bfmIuA8g/39J3r4ycE/tudPztllImiRpiqQpM2bMKJh1M7PRp/TU2VtFxL2SXgJcLOm2fh6rDttitg0RxwPHA0ycOHG2/WZmNnhFSwoRcW/+/yBwHvBK4IFWtVD+/2B++HRg1drTVwHuLZk/MzObVbGgIGlRSYu3bgPbA38DLgD2yw/bDzg/374A2Df3QtoceKxVzWRmZt1RsvpoeeA8Sa10zoiICyVdC5wt6QDgX8Ae+fG/A94E3An8F9i/YN7MzKyDYkEhIu4CNuyw/WFg2w7bAziwVH7MzGzOPKLZzMwqDgpmZlZxUDAzs4qDgpmZVRwUzMys4qBgZmYVBwUzM6s4KJiZWcVBwczMKg4KZmZWcVAwM7OKg4KZmVUcFMzMrOKgYGZmFQcFMzOrOCiYmVnFQcHMzCoOCmZmVnFQMDOzioOCmZlVHBTMzKzioGBmZhUHBTMzqzgomJlZxUHBzMwqDgpmZlZxUDAzs4qDgpmZVRwUzMys4qBgZmaV4kFB0lhJ10v6Tb6/uqSrJd0h6SxJC+TtC+b7d+b9E0rnzczMZtWNksIhwK21+18Fvh0RawOPAAfk7QcAj0TEWsC38+PMzKyLigYFSasAOwE/zfcFvB74RX7IycDu+fZu+T55/7b58WZm1iWlSwrfAT4BvJjvLws8GhHP5/vTgZXz7ZWBewDy/sfy42chaZKkKZKmzJgxo2TezcxGnWJBQdLOwIMRMbW+ucNDYwD7Zm6IOD4iJkbExHHjxjWQUzMza5mv4LG3AnaV9CZgIWAJUslhKUnz5dLAKsC9+fHTgVWB6ZLmA5YE/lMwf2Zm1qZYSSEiPhkRq0TEBOAdwJ8iYm/gEuBt+WH7Aefn2xfk++T9f4qI2UoKZmZWTi/GKRwOfFTSnaQ2gxPy9hOAZfP2jwJH9CBvZmajWsnqo0pEXApcmm/fBbyyw2P+B+zRjfyYmVlnHtFsZmYVBwUzM6s4KJiZWaUrbQqjwYQjfjuo5007ZqeGc2JmNnguKZiZWcVBwczMKg4KZmZWcVAwM7OKg4KZmVUcFMzMrOKgYGZmFQcFMzOrOCiYmVnFQcHMzCoOCmZmVnFQMDOzioOCmZlVHBTMzKzioGBmZhUHBTMzqzgomJlZxUHBzMwqDgpmZlZxUDAzs4qDgpmZVRwUzMys4qBgZmaV+XqdARucCUf8dlDPm3bMTg3nxMxGkgGVFCRNHsg2MzMb3voNCpIWkrQMsJykpSUtk/8mACsN4LnXSLpR0i2SPp+3ry7pakl3SDpL0gJ5+4L5/p15/4QmXqCZmQ3cnEoK7wemAuvl/62/84EfzOG5zwCvj4gNgY2AHSRtDnwV+HZErA08AhyQH38A8EhErAV8Oz/OzMy6qN+gEBHfjYjVgY9FxBoRsXr+2zAijp3DcyMinsx3589/Abwe+EXefjKwe769W75P3r+tJM39SzIzs8EaUENzRHxf0pbAhPpzIuKU/p4naSypZLEWqWTxD+DRiHg+P2Q6sHK+vTJwTz7u85IeA5YFHmo75iRgEsD48eMHkn0zMxugAQUFSacCawI3AC/kzQH0GxQi4gVgI0lLAecBL+30sFYy/eyrH/N44HiAiRMnzrbfzMwGb6BdUicC60fEoE7CEfGopEuBzYGlJM2XSwurAPfmh00HVgWmS5oPWBL4z2DSMzOzwRno4LW/ASvMzYEljcslBCQtDGwH3ApcArwtP2w/UqM1wAX5Pnn/nwYbhMzMbHAGWlJYDvi7pGtIvYoAiIhd+3nOisDJuV1hDHB2RPxG0t+Bn0v6InA9cEJ+/AnAqZLuJJUQ3jF3L8XMzObVQIPCUXN74Ii4Cdi4w/a7gFd22P4/YI+5TcfMzJoz0N5Hl5XOiJmZ9d5Aex89wcyeQAuQxhw8FRFLlMqYmZl130BLCovX70vanQ5VQGZmNrwNaursiPgVaWSymZmNIAOtPnpL7e4Y0rgFdxc1MxthBtr7aJfa7eeBaaS5iszMbAQZaJvC/qUzYmZmvTfQRXZWkXSepAclPSDpl5JWKZ05MzPrroE2NJ9ImoZiJdJspr/O28zMbAQZaFAYFxEnRsTz+e8kYFzBfJmZWQ8MNCg8JGkfSWPz3z7AwyUzZmZm3TfQoPAeYE/gfuA+0iymbnw2MxthBtol9QvAfhHxCICkZYBvkIKFmZmNEAMtKbyiFRAAIuI/dJgB1czMhreBlhTGSFq6raQw0OfaCDDhiN8O6nnTjtmp4ZyYWUkDPbF/E7hS0i9I01vsCXypWK7MzKwnBjqi+RRJU0iT4Al4S0T8vWjOzMys6wZcBZSDgAOBmdkINqips83MbGRyUDAzs4qDgpmZVRwUzMys4qBgZmYVBwUzM6s4KJiZWcVBwczMKg4KZmZWcVAwM7OKg4KZmVUcFMzMrFIsKEhaVdIlkm6VdIukQ/L2ZSRdLOmO/H/pvF2SvifpTkk3SdqkVN7MzKyzkiWF54HDIuKlwObAgZLWB44AJkfE2sDkfB9gR2Dt/DcJ+FHBvJmZWQfFgkJE3BcR1+XbTwC3AisDuwEn54edDOyeb+8GnBLJVcBSklYslT8zM5tdV9oUJE0grel8NbB8RNwHKXAAL8kPWxm4p/a06Xlb+7EmSZoiacqMGTNKZtvMbNQpHhQkLQb8Ejg0Ih7v76EdtsVsGyKOj4iJETFx3LhxTWXTzMwoHBQkzU8KCKdHxLl58wOtaqH8/8G8fTqwau3pqwD3lsyfmZnNqmTvIwEnALdGxLdquy4A9su39wPOr23fN/dC2hx4rFXNZGZm3THgNZoHYSvgXcDNkm7I244EjgHOlnQA8C9gj7zvd8CbgDuB/wL7F8ybmZl1UCwoRMRf6NxOALBth8cHcGCp/JiZ2Zx5RLOZmVUcFMzMrOKgYGZmFQcFMzOrOCiYmVnFQcHMzCoOCmZmVnFQMDOzioOCmZlVHBTMzKxScu4js0GbcMRvB/W8acfs1HBOzEYXlxTMzKzioGBmZhUHBTMzqzgomJlZxUHBzMwqDgpmZlZxUDAzs4qDgpmZVRwUzMys4qBgZmYVBwUzM6s4KJiZWcVBwczMKg4KZmZWcVAwM7OKg4KZmVUcFMzMrOKgYGZmlWJBQdLPJD0o6W+1bctIuljSHfn/0nm7JH1P0p2SbpK0Sal8mZlZ30qWFE4CdmjbdgQwOSLWBibn+wA7Amvnv0nAjwrmy8zM+lAsKETE5cB/2jbvBpycb58M7F7bfkokVwFLSVqxVN7MzKyzbrcpLB8R9wHk/y/J21cG7qk9bnreNhtJkyRNkTRlxowZRTNrZjbaDJWGZnXYFp0eGBHHR8TEiJg4bty4wtkyMxtduh0UHmhVC+X/D+bt04FVa49bBbi3y3kzMxv1uh0ULgD2y7f3A86vbd8390LaHHisVc1kZmbdM1+pA0s6E9gGWE7SdOBzwDHA2ZIOAP4F7JEf/jvgTcCdwH+B/Uvly6yTCUf8dlDPm3bMTg3nxKy3igWFiNirj13bdnhsAAeWyouZmQ3MUGloNjOzIcBBwczMKg4KZmZWcVAwM7NKsYZmM+vMPZ1sKHNJwczMKg4KZmZWcVAwM7OKg4KZmVUcFMzMrOKgYGZmFQcFMzOrOCiYmVnFQcHMzCoOCmZmVnFQMDOzioOCmZlVHBTMzKzioGBmZhUHBTMzqzgomJlZxYvsmI1wXtTH5oZLCmZmVnFQMDOzioOCmZlVHBTMzKzioGBmZhUHBTMzq7hLqpk1yl1ghzcHBTMb1hyEmjWkqo8k7SDpdkl3Sjqi1/kxMxtthkxQkDQW+AGwI7A+sJek9XubKzOz0WUoVR+9ErgzIu4CkPRzYDfg7z3NlZlZTberq7qdniJiUE9smqS3ATtExHvz/XcBr4qID7c9bhIwKd9dF7h9EMktBzw0D9l1ek5vJKTl9EZveqtFxLhOO4ZSSUEdts0WsSLieOD4eUpImhIRE+flGE7P6Q33tJye0+tkyLQpANOBVWv3VwHu7VFezMxGpaEUFK4F1pa0uqQFgHcAF/Q4T2Zmo8qQqT6KiOclfRj4AzAW+FlE3FIouXmqfnJ6Tm+EpOX0nN5shkxDs5mZ9d5Qqj4yM7Mec1AwM7OKg4INC5IWlrRur/NhNtI5KNiQJ2kX4Abgwnx/I0kjomeapCmSDpS0dK/zMhJI+qWknSSN2HObpJ1Lvr5R0dAsScDewBoRcbSk8cAKEXFNofTGAe8DJlDr4RUR7ymU3oeB0yPikRLH7yPNtYGvkOapWqi1PSLWKJDWVOD1wKURsXHedlNEvKLptPKxxwJ/iIjtShy/La21gP2BtwNTgBOBi6LAD1PSr+kwILQlInZtOs2c7lbAUcBqpN+DUnJFvivbkd7PzYFzgJMi4ram0+mQ7tbA2hFxYv79LxYRdxdK6zRgC+CXwIkRcWuTxx8yXVIL+yHwIunEcjTwBOkN3axQeucDfwb+CLxQKI26FYBrJV0H/Ix0Qisd7U8EPgd8G3gd6YfYaVR6E56PiMdSbC8vIl6Q9F9JS0bEY4XTuhP4lKTPADuTPr8XJf0M+G5E/KfB5L7R4LHmxgnAR4CpFP49RMQfgT9KWhLYC7hY0j3AT4DTIuK5ptOU9DlgImnanROB+YHTgK2aTgsgIvaRtATp9Z0oKXK6Z0bEE/N6/NFSUrguIjaRdH3tSvPGiNiwUHo3RMRGJY7dT5oCtiednCcCZwMnRMQ/CqU3NSI2lXRzRGyQt/05Il5dIK0TgMnAEcBbgYOB+SPiA02nVUvzbNLV5sXAU63tEXFwgbReQfrc3kQap3M6sDXwrm5/j0qQdHVEvKqL6S0L7AO8izQrQuv93CAitimQ3g3AxsB13SjJ1tJdjvQ6DwVuBdYCvhcR35+X446WksJzuUogoKreebFger+R9KaI+F3BNGYRESHpfuB+4HlgaeAXki6OiE8USPJ/uV7zjlx99W/gJQXSATgI+BTwDHAm6cT5hUJptfw2/xWVq8YeJV1NHxERz+RdV+dqlxJpdq3qL7tE0teBc0mfYSu965pOSNK5wHrAqcAuEXFf3nWWpClNp5c9m39/rfPLooXSIR9/V9JFxJqk1/nKiHhQ0iKk4DBPQWG0lBT2JtXZbgKcDLwN+HREnFMovSeARYFngVZxNSJiiULpHQzsR5ot8afAryLiudZJOyLWLJDmZqQv4FKkE/SSwNci4qqm02pLdyywaEQ8XjKdnNYCwDr57u2Fqh7WaE0X3y2S/sLMqr9dyFV/EfG5Quld0mFzRMTrC6T1+oj4U9PHnUOaHwPWBt5ACrbvAc6Y1yv2ftI7mVQLcHmHfdtGxOR5Ov5oCAoAktYDtiXVe09uunGmlyQdTfqS/LPDvpcO99cq6QzgA6T66KmkAPStiPh6wTS3IV1ATCN9Z1YF9uv0Qxzk8T/a3/6I+FYT6fSRdjer/sYAb4uIs5s+dls6b+lvf0ScWzj9N5Cqb0Vq07u4UDrFO0GM+Oqj/KW8KSJeDhTvhVBLd1fgNfnupRHxmwJpLJNvfqftPgAR8Z9SAUHSRFKVTqtHSSvNEvWo60fE47nE9zvgcFJwKBYUgG8C20fE7QCS1iFVXW3a0PEXz//XJXV4aHWx3QVoJPD0o2tVfxHxYk6jaFAgvW+QXseWQKu08DrgUlLVVRGSVgf+3AoEeUzNhIiY1nRa3egEMeKDQv5S3ihpfET8qxtpSjqG9EM/PW86RNLWEdH0utNTSe0kAsYDj+TbSwH/AlZvOL2604GPAzdTtn0GYH5J8wO7A8fmqrHSRdz5WwEBICL+L+ehERHxeQBJFwGbtHqNSDqK1JWypEOBRUgN9l8gnTj3K5jexbmK5SxmbbRvrGdVROwPIOk3pIuI+/L9FUnL/JZ0DikQtbyQt5Xq3fg/4GZJRTpBjPigkK0I3CLpGmZ9E4v0yyb1ItkoIl6Eqg7welLvmcZExOr5+McBF7QatiXtCJTuYz8jIro1gOzHpGqcG4HLJa0GlG5TmJJ7PZ2a7+9NCsJNG09qe2p5ljS+pZiIuDbffJLUnlBaa3zOgfVsACUatifUGpcBHmBmu1Ap80VE9RlGxLO5PaqUop0gRkWbgqTXdtoeEZcVSu8mYJvWlVCu1rm04GCrqRGxadu2oitASdqW1E96MrP2KClad1tLf76IeL7g8RckncS2JpW+Lgd+WOsd1FQ6nwL2BM4jnSjfDJwdEV9uMp22NC8G9oiIR/P9pYGfR8QbS6XZLZKOJTX6nkl6P99BWvv9oIJpXgx8v3WRJGk34OCI2LZUmiWNiqDQbZL2Ao4BLiGdUF4DfDIifl4ovT+QBsudRvoh7AO8puSPPI+qXA+4hZnVRxEFRm3nE/RbmX2E+NFNp5XTGwucHBH7lDh+h/Q2AVqNvJdHxPWF06vG6/S3rcH0FgE+CoyPiEm5S+y6JdrZcnpvZmZ73uURcV6JdGrprUmqTl2J9Hu/B9g3D0wskV7RLsWjovoodxFtRb8FSCMOnyrVRTQizpR0KalOUcDhEXF/ibSyvUhdDFtXm5fnbSVt2Oq50gXnA4+Rqm8avVLvJDfmjZO0QL1aoKBFgMcjT5EgafUoNEVC9mK9jS1Xx5W8OjyR9Nm16t2nk+rciwQF4DrgiYj4o6RFJC0eDYz07UukAaKbS1qMdKFdLK2s6GwCoyIoRMTi9fuSdgde2XQ6ktaLiNvylR+kLz/ASpJWKjFYB6oGu0MkLRYRT5ZIo4OrJK0fEX/vQlqrRMQOXUinbhpwhdLEe/V2qEa7iqrLUyRknwL+IqlVffoaYFLB9NaMiLfnEjQR8bRUZs4SSe8jvZZlSIO7VgaOI8TazvgAABrySURBVHVHL6K9JNt6aaVKssDCETFZknI39KMk/ZkUKObZqAgK7SLiV5Ka7gkEqYg8idSdcbZkSXMvNU7SlqRBa4sB4yVtCLw/Ij5UIr1sa2A/SXeTrt5bk5yVaDe5UtIGEXFzgWP35d78N4aZ3UdLeDN5igSAiLhXUsn0iIgL84XL5qTP7SMR8VDBJJ+VtDAzZxRYk3IlvgNJF3xXA0TEHZJKjbRv6WpJlsJdikdFUGgb2DKGdGXWeHE5IlpXWztGxP/a8rBQh6c05dvAG8l93SPiRkmv6f8p86ybV+5bA+/uUgBqtSksFhEfL3H8Nl2bIqFDSfbe/H98rk4qUpIlzZB6IbCqpNNJpaBSvZ6eyb1/gNQhgbJVY9D9kmynLsX7NnXwUREUmDmwBdK8QNOA3QqmdyVpSo05bWtMRNzTViIvPRvlPwHyVVjJgAewY+HjzyK3KRT7rNqcLenHwFK56uM9pBk9S+hJSTYiLlKa46lVMjmkYMnkMklHAgvnUcYfAn5dKK2WbpdkJ+RuxVWXYkl7kEtH82pU9D6StFVEXDGnbQ2kswKpDvM04J3MbPxZAjguItZrMr1aur8AvgUcS/rhHQxMjIh3lEgvp7kr6eSyEvAgaWTzrRHxskLpdW2++pzeN0ldG89h1jaFxrvcqktTJPSKpMnt3TM7bWsorTHAAdTeT+CnUfBEJ+nvpBlKu1WSvS4iNpnTtkEff5QEhaJvYu2Y+wHvJlVPXcvMoPA4qYtjkT78SlPofpc0YE3ARaSrsYdLpJfTvJF0ZfnHiNhY0uuAvWpVaE2mVTXGRsQ6klYCzomIYo2xkk7ssLlIl9uc3hLM2t22yXUU2tPaA7gwIp6Q9GlSCfYLTXeFzVWmi5C6Zm/DrBdJv4+IlzaZXq/k3luziQ5zkc1jOjuSBsbuSRod3rIEaRR3I51nRnT1kaQtSN3gxmnWCciWAMY2nV5EnAycLOmtEfHLpo/fT7oPkUbcdtNzEfGwpDGSxkTEJZK+WiitXjTGdmOkL5LeT1r46WnSeA9RbrRvy2ci4pxc+nojafGd44Cm1zx4P6n+eyVSI2z9IqnI1BOSdibVs7ev8lak+zl0tSr1XtLqfLsy6+j6J0iLGDViRAcF0piExUivs34SeZw0fXYpm+bicX3E6GER8ekSiSlNyHUQsw/uKjWNB8CjuV/25cDpkh4ktdeU0NX56nMaq5Dmpd+KdJL+C6n0Nb3fJ869jwEvK9z7p12rvWkn4EcRcb7SnEuNiojvAt+VdFAUmka6g+8AbwFuLlllVNdXVSrQaFVqRNwI3CjpjCgwjXvLaKk+Wq3potwc0us0YrTx6qrasW8kLdIyy+R0UWgaj5zmoqSr2zGkUsqSpHWiG6+yUpfnq89pXgycwcy5j/YB9o6INzSczoXAWyLiv00edw5p/obUjXE70qyvTwPXRLmVCDtVV32xRG8npbUbto0871g3dLMqNadXdM3r0RIU1iFdkU1g1ivpUuMGbgI2izxPTu6jPaVgI2y3lzvs2sL2tTRbjbGQFrYv2hirDkuqdtrWQDobkwatXc2sc0g1vuxnLc1FSF2Kb879+FckLVV5UaH0boqIV+Tqqq+QqquOLPGdVVr86QvAZcz6fpZcn2JKREzMwWHjSDMzX9NUHX+H9G6jw5rXTV2QjfTqo5ZzSHWmP6VwV83sNGByrbFyf9KCLaV8NzfGXkTh5Q7zcbu2sH3NzUBrAFQ3uv49JGkf0sRqkKYNKdFw/2PS3P/dmIK8ZTlS3TSSxudtJdca6Up1VfYlUlfNhUjVx93QzapUgMci4velDj5aSgqzzSLahTR3YGZvoEeAFSPiwP6fNei0vkJapPwfzDo5XZGSUE6zmwvbvxf4LOnkKeC1wNER8bOm06qlOZ7UxXcLUiC6ktSm0HSPkisjYss5P7LRNG9m5jocC5HW3bi9YEm2a9VVKjw7cB9pLkpa40AUrkrN6R1D6ihTZM3r0RIUjiI1AJ3HrG9iyW5/G5HGKuxJ6r/8y4g4tlBatwGviO5M3tZKs+OiLLkHVtNp3Q5s2fqRSVoWuDIi1m06rW6T9CXgn6QBVl35bnbIwyakaVHeX+j4XauuyifMP5WqCptD2l3pVqzCa16PlqDQaZBTYw0ztXTWIc3f3qpqOAv4WER07MfcYLpnAQdFxIMl0+mQ7jiAiJhROJ3JpKlDns33FwB+V6JNQ9L36WdahKZLQt36bg4gH8U6QuTjd2XwodKMyIuSFitq9dAp2iW1r27F3f4MmzIqgkK3SHqRtK7BAZHnUpd0V+kvh9I03a8gDZirX2023iVVkkizMX6Y9OUfQ6o//X6UW9/gFGAD0sRjQZqi5Brg/6DZRsS2EtDnaZt5skRJqNvaxuyMIfUGWjYKrb/Ri8GH3STpDmCLbnUrlrQ88GVgpYjYUdL6Of0Tmjj+qGhoVvcW+XgrqaRwSe5q+HNobp7zfjQyZe4AHUrqu79Z60pP0hrAjyR9JCK+XSDNf+S/lvPz/8YHsNVP+pIOLR0ElNZ9/iAzF4W5FPhxyX7ozPq+PU9a2rHkYMuuDj7M4waq97PA77zdP4CudSkGTiL1WPtUvv9/pFqJRoLCqCgp5OqVqaTVkF6eu4j+tenuhbX0FiUtMr8Xqf/yycB5Jes589VDa6Hwa0pVJUm6HnhD+1VRrhK4qH18RoH0x5CqHkqv0Vy8SiWn8VPSGgqt4PMu4IWIeG/JdLup1T2z9X7m38dfo8DcQLlNYTPSSmiQfoNTI6LEVPmtNLvarVjStRGxWX08VJPdpUdFSYEuLvKRj/8U6Ut5utL6zHsAR5C6jDZO0p7A10lXmQK+L+njEfGLAsnN36mYHBEz8lVv4ySdAXyA1LVxKrCkpG9FxNdLpNdlm7X1wvlT7u/eOKUFg/pUorox6+ZMsG8CNmoNXpN0MnA96fdXSre7FT+VO1u0RvhvTlrPoRGjJSh0c5GPWeQeCD/Of6V8inRyeRCqq/Y/AiWCQn89nEr1flo/Ih6XtDfwO+BwUnBoPCho1qVbF5HUKpGUmkPnBUlrRlrSsVUVV2oszRak9YPPJF3VFq3alHQocAVp6onXkaaXWRf4bOHBh0sBrZ4/SxZMp+X5iPjonB/WmI+S1k5ZU9IVwDganLZntASFo5h9kY939zJDDRvTVl30MKkBsYQNayfKulaf9xLmz6WQ3YFjI+I55XmQmhZtS7d2wcdJbVB3kd7D1Si3AM0KpKlC9iJ1l/4tcGZE3FIovVVIs/euB9xEGutxBbNO5ta0rwDX526bIrUtfLJgepA+v0l0qVtxRFwn6bWkACvSGJPG2qBGRZsCVH3bW4t8XNWtngLdIOnrpN5HrdG3bwduiojDe5er5kg6mFQ6uJE0KnY8cFpEvLqnGWuI0hq/rR/4bZGnR+lCmnuRSltHR9l5pBYg9T7aklRa2QJ4NCLWL5TeiqR2BQFXR8T9JdKppdfVbsVK08zsxOzT9jTSC29UBIVcl3omcEGu7x8RJK0FLB8RVygtObo1M0dQn96qkhiJJM0XESWnEihKaQoNRcSpbdvfBzwVEWcUSndB0gllL9JJ5QLgZxHx7xLp5TSXJAWCrfL/pUgD2RorEUl6I7B4eztarnJ8sFR1Ve74sEU0vGDXHNL8HWkEdfsEmJ9v5PijJCi8lnT1vBOpf/tZwG+ibR3l4SZPH3BkRNzUtn0i8LmI2KXzM4cXSZ/ttL3UuIhuyL24XhMRT7RtXwK4JApMy5IbXV8O/B74eUT8rek02tI7njR99BOkNoyrSKX0RwqkdRWwS/tASqXVEM+LiC2aTrOWxl9LHr9DejeV6LnVUqreeUiJiMsi4kOkhUuOJ0090dXRv4VMaA8IABExhXQVOFI8Vft7gbRm84ReZqgBY9sDAkDualukFxepu+s6wCGkdYUfz39P9NFONK/GAwsC95PmPpoOPFogHYBFOo2sz1VHpdffuEjSW0v2aGzze0nbz/lhgzNaGppb01fvQioxbELZWUu7pb+G3YW7lovCImKWheYlfYNU7TGczS9p0fbqzDyoq8jsnhHR1YvAiNghnyhfRmpPOAx4uaT/kMYpNDnocqFOVYq5g0Lp38JHSYHnBUlPU66nWstVwHm56uq5ptMbFSWFPHjtVtJAsh+Qxi0c1NtcNeLaXAc9C0kHULaHR68tQtnlKrvhBOAXkia0NuTbP6ehkalDQSR/I3Ul/j2p99GapNJKk84FfqLaqnz59nF5XzERsXhEjImI+SNiiXy/2FxLpFXetiCVjhpPb7S0KewAXBwR3VhLoWvyKObzSOMDWkFgIulK882le110i2ZO9QxpyuBxpB4zRWad7RZJHyB1l1yM9PqeAo6JiB/1NGMNyb3GtiQ1MD9HCgh/zf9vjgZXR5M0H/BF4L2kWWchVV+dQFqTuuS0IV2dWkPSH0gTRBYZKDeig0LukdOniCh6BdEtSsv/vTzfvSUi/tTL/DRNUn2W2eeBB4Zzz6N2Sgu0qFMbw3Am6VvksQkRcV+X0lwYWCvfvTMinu5Cml2dWkPSSaSS8u8psLrcSA8KrZXPXkK6YmmdLF9Hiub9Bg3rLaWJDJ9rXeVJWpc0jcG0iDivp5kzy5SW361PrTEWuL5UDyGlWWdn01SX1BHd0NzqB527bq7fulrJg1t+0Mu82YBcCBwA3JHHZPyVdDW2s6RXlboSMxuErk2t0dTJvy8jOijUTGgrvj5AGkFqQ9vSEXFHvr0faUqGg/II2amUneTMbKC6OrVGTme2Kp5oaOW10RIULs2NM2eS3sx3AJN7myUbgPoX//XkCfAi4lmlBY2GPUkHkkafP5rvLw3sFRE/7G3OhidJR0fEZ2v3xwKnRMTeBdLaKo9kPpc0Q3Frao3DC3fy+Fjt9kKkdVwaa2Mb0W0KdZLezMzeAY+Qpoc4sIdZsjmQdBozBz4dAaweEf+VtBRwWRRY+L3b1GEefNXmybe5kxthb4+Ir+QpPc4BrouIowqkNTUiNlUX1t0YQF4ui4jXNnGs0VJSALib1Ld3z3y75EpT1oz3kfqzTwC2j4jW6lbrA9/oVaYaNkaSIl+d5SvbIoPXRon9SeuYfJLUoeT3UWY1QIDncmeWVSR9r31nlFtkZ5na3THApqQZcBsxooOCpHVIVUV7kaaTPotUOnpdTzNmA/UdUmPzD+rdNSPiSlJXx5HgD6RFaI4jVZd9gPSabS5Iql+pf5e0fskVwGWSNomI6wokuzOwHalqs5uDRaeSvisiVRvdTeqQ0YgRXX2U653/DBwQEXfmbXeVmtLWmqW0otQOwLakAXoXARdGRJGVyXohT1XwftJrFOk1/nSkDbQsLTe+9iWaaoTtkO5Y4JCmxggMBSM9KLyZVFLYknT19XPSD271nmbM5lpeD2N70mR4G5CWWLwwIs7uacZs1JN0STdrH0p3ThjRQaElz4GyO6ka6fWkyfDOi4giayZbc/KV9NvaT/6SNgV2iIgv9SZn80bS2RGxZ9sUHpWSUyOPZJK+DHyt7YR5WER8umCaXyKNTTiLNFUJkFZIK5Re0c4JoyIo1OVGmj2At5cqUlqzJP05Rsgqay2SVoyI+9qm8KhExD87bbf+dTo5lu4d1EfVVckqq5uADds6J9wUES9r5PijLSjY8CPpM8DTzH4lVmQN3G6S9NVoWza10zYbmHzC3CzykqZ5LqQpTZ0whwKl5XcnkGaAbXVOuCciDmvk+A4KNtSpy2vgdlOnq9jSK2uNZJI+AewKnEg6Yb6HtAzv1wqmuTzwZWCliNhR0vqkJTqLTIFeunOCg4JZD0j6INBaDbC+lvbipFlF9+lJxkYASTtSO2FGxB8Kp/d7UhD6VERsmKfxvj4iNiiY5gKkqXqCNFivsanBHRRsyMuzpX4UGB8RkyStDaxbcs760pQWs1+aNG9OfQ6nJ0ZCtdhoIunaiNis3p7RqTG4wfS2IXWWmUYKfKsC+0XE5U0cf1SsvGbD3omkcQpb5vvTSQuqDFsR8VhETIuIvUiv5znSVd9iksb3NnfDl6TNJV0r6UlJz0p6QWXWn657KneZbjX8bg48VjC9b5JG+L82Il4DvBFobNT2iB7RbCPGmhHxdkl7AUTE01LXFkkvStKHgaNIM/e2JvkLwG0Kg3MsaWzSOaRVCPdl5qI7pRxGWjN8TUlXkFYGfFvB9OaPiNtbdyLi/5TWom6Eg4INB8/mXiStK7E1qa04NcwdSqoKe7jXGRkpIuJOSWNzw+uJkopOiRIRUyW9llTHLxqu4+9giqQTgFPz/b1pcJoNBwUbDj5HGpG+qqTTSWv+vrunOWrOPZStahht/psbYW+Q9DXgPmDREgnltq1vAGsCNwMfi4h/l0irzQeBA4GDSUHocqCxqdbd0GzDQq6z3Zz0I7gqIh7qcZYaka/41gV+S4H1dkebPBjwQWB+4COkkcY/bM191nBafwZOIZ2UdyV1Q+3KEr+SxgFExIzGj+2gYENV28yXsyk1jUA3lV5v18pp72HUhZHTIpWaP0y6OBLwAvD9iDi6qXRcfWRD2Tf72RekeayGNZ/8m9HXHFIthQYDLiRpY9LJGWDh+v0CFy2HkqpON4uIuwEkrQH8SNJHmlo3wiUFsx7K1QCfAF5GWloRaG693dGirzmkWkrMJdXt6bolXQ+8ob3qNH+HLmpqQjyXFGzIktRv/WxEnNutvBR0OmlOp51Jc9jsBzReTzzSdTrpS1oOeDjKXfm+MyLuK3TsTubv1JYWETPcJdVGi1362RekBdOHu2Uj4gRJh0TEZaSVwi7rdaaGmzxg7BjgP8AXSN01lyMtd7pvRJRYze5neWruS0m94/4SEc8XSKfl2UHumyuuPjLrIUlXRcTmkv4AfA+4F/hFRKzZ46wNK5KmAEeSehsdD+wYEVdJWg84s6mqlQ7pLgRsQ1r8aSvgX6QAcWFE/KvhtF6gNktwfRewUEQ0UlpwULAhS9I+EXGapI922j8Sum1K2pm0ZOyqwPeBJYDPR8QFPc3YMFPvCSTp1oh4aW1fYwvQDCAfq5MCxA7AChHxym6k2yRXH9lQ1hp0tHhPc1FQbVK/x4CuLek4Ar1Yu/10276iV7719S9yr6AfSppA2akuinFJwYa0vKrUwU11txtq8pXlQaRFU6qLtIjYtVd5Go5qVSsCFgb+29pFg1UrfaQ9otbEcEnBhrSIeEHSrjQ4C+QQ8yvgBODXzHq1a3MhIsZ2O83amhhr5hXfWhYHis63VJJLCjbkdXth9G6SdHVEvKrX+bC5N1LXxHBQsCGv2wujd5OkdwJrk5ZUrM99NOwD3miQl8a8KSJe3uu8NMXVRzbkRcRIboDdAHgXacqO+noKwz7gjQYR8aKkGyWNb7oLaq84KNiQJ2lB4K3M3hjb2CRgPfRmYI2IaGzwkXXdisAtkq5h1urNYdlZwEHBhoPzSV02pzJyFtdpuRFYijTdsw1PI2pSQ7cp2JAn6W8jqc62TtKlpKU3r2XWNoVheZU5WuUJ+daOiD9KWgQYGxFP9Dpfg+GSgg0HV0raICJu7nVGCui4noINH5LeB0wCliGtwrYycBywbS/zNVguKdiQJelvpMbX+Ug9dO4iXU2L1PtoWA4OaidpeWCzfPeaiHBV0jAi6QbglcDVrek0JN0cERv0NmeD45KCDWUrAxvN8VHDmKQ9ga+TZtoU8H1JH4+IX/Q0YzY3nomIZ9PCaCBpPgpPrVGSg4INZXeXWBxliPkUaSWtB6FaMOWPgIPC8HGZpCNJK6+9gTTK+dc9ztOgufrIhixJ04E+Z0IdIbOkzlLNkAdD3Thcqx5Go/yZHQBsTyrt/QH4acHFfYpyScGGsrHAYsxcA3ckujCvpXBmvv924Pc9zI/NvYWBn0XET6CaxLE+Kd+w4pKCDVmdZp8cifKyo1uTgt/lEXFej7Nkc0HSVcB2EfFkvr8Yac3kLXubs8FxScGGspFcQqjktabPhXSVKWnviDi9x9mygVuoFRAAIuLJPFZhWBrT6wyY9WNY9vMeCElLSPqkpGMlba/kw6Rut3v2On82V56SVJVoJW3K7Av9DBuuPjLrAUnnA48AfyUFv6WBBYBDIuKGXubN5o6kzYCfk9bXhjQX0tsjYmrvcjV4DgpmPVDvdZQbJh8Cxg/XqRFGO0nzA+uSqjxvi4jnepylQXObgllvVCeNvLrc3Q4Iw9pmzJzFd2NJRMQpvc3S4LikYNYDtTWFYdZ1hVtTeCzRq7zZ3JF0KmnOoxuAF/LmiIiDe5erwXNQMDObB5JuBdYfroPV2rn3kZnZvPkbsEKvM9EUtymYmc2b5YC/55XXhv2aGA4KZmbz5qheZ6BJblMwM5tHI2lNDLcpmJnNg7wmxjXAHqTR6FdLeltvczV4LimYmc0DSTcCb2hfEyMiNuxtzgbHJQUzs3kzpq266GGG8bnVDc1mZvOm05oYv+thfuaJq4/MzAZB0lrA8hFxRduaGI8Ap0fEP3qawUFyUDAzGwRJvwGOjIib2rZPBD4XEbv0JmfzZtjWe5mZ9diE9oAAEBFTSJPjDUsOCmZmg7NQP/sW7louGuagYGY2ONdKel/7RkkHAMNygR1wm4KZ2aDkUcznAc8yMwhMJK2g9+aIuL9XeZsXDgpmZvNA0uuAl+e7t0TEn3qZn3nloGBmZhW3KZiZWcVBwczMKg4KZmZWcVAw6zJJY3udB7O+OCiYzYGkz0i6TdLFks6U9DFJa0q6UNJUSX+WtF5+7EmSvifpSkl3tebVl7SNpEsknQHcnLftI+kaSTdI+rGDhQ0FDgpm/cjz2LwV2Bh4C6kfOsDxwEERsSnwMeCHtaetSJocbWfgmNr2VwKfioj1Jb2UNJvmVhGxEfACsHfJ12I2EJ4626x/WwPnR8TTAJJ+TZreYEvgHEmtxy1Ye86vIuJF0mLuy9e2XxMRd+fb2wKbkkbFQpoWYdgu4Wgjh4OCWf/UYdsY4NF8hd/JM308/6m27SdHxCfnMX9mjXL1kVn//gLsImkhSYsBOwH/Be6WtAeAkrldenEy8DZJL8nHWEbSak1m3GwwHBTM+hER1wIXADcC5wJTgMdI9f8H5PV5bwF2m8vj/h34NHCRpJuAi0ltEWY95WkuzOZA0mIR8aSkRYDLgUkRcV2v82VWgtsUzObseEnrkxqYT3ZAsJHMJQUzM6u4TcHMzCoOCmZmVnFQMDOzioOCmZlVHBTMzKzy/6qW/piLM1dWAAAAAElFTkSuQmCC\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_genre.sort_values(['count'], ascending=[False], inplace = True)\n",
    "bar_graph_count(movies_genre, \"genre\", \"count\", \"Visualization of the Number of Movies per Genre\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "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": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Creating a data frame of the movies creative_type count \n",
    "movies_ct = groupby_count(movies, \"creative_type\", \"creative_type\") \n",
    "movies_ct[\"creative_type\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'creative_type')"
      ]
     },
     "execution_count": 38,
     "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": 39,
   "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>26</td>\n",
       "      <td>2000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>90</td>\n",
       "      <td>2001</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>91</td>\n",
       "      <td>2002</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>100</td>\n",
       "      <td>2003</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>101</td>\n",
       "      <td>2004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>83</td>\n",
       "      <td>2005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>107</td>\n",
       "      <td>2006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>86</td>\n",
       "      <td>2007</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>98</td>\n",
       "      <td>2008</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>98</td>\n",
       "      <td>2009</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>94</td>\n",
       "      <td>2010</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>102</td>\n",
       "      <td>2011</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>95</td>\n",
       "      <td>2012</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>101</td>\n",
       "      <td>2013</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>100</td>\n",
       "      <td>2014</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>96</td>\n",
       "      <td>2015</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>103</td>\n",
       "      <td>2016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>96</td>\n",
       "      <td>2017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>118</td>\n",
       "      <td>2018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>74</td>\n",
       "      <td>2019</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count  year\n",
       "0      26  2000\n",
       "1      90  2001\n",
       "2      91  2002\n",
       "3     100  2003\n",
       "4     101  2004\n",
       "5      83  2005\n",
       "6     107  2006\n",
       "7      86  2007\n",
       "8      98  2008\n",
       "9      98  2009\n",
       "10     94  2010\n",
       "11    102  2011\n",
       "12     95  2012\n",
       "13    101  2013\n",
       "14    100  2014\n",
       "15     96  2015\n",
       "16    103  2016\n",
       "17     96  2017\n",
       "18    118  2018\n",
       "19     74  2019"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_year = groupby_count(movies, \"year\", \"genre\")\n",
    "movies_year"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'year')"
      ]
     },
     "execution_count": 40,
     "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": 41,
   "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>71</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>121</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>158</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>94</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>190</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>225</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>215</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>137</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>85</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>108</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>215</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>240</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count  month\n",
       "0      71      1\n",
       "1     121      2\n",
       "2     158      3\n",
       "3      94      4\n",
       "4     190      5\n",
       "5     225      6\n",
       "6     215      7\n",
       "7     137      8\n",
       "8      85      9\n",
       "9     108     10\n",
       "10    215     11\n",
       "11    240     12"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_month = groupby_count(movies, \"month\", \"genre\")\n",
    "movies_month"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'month')"
      ]
     },
     "execution_count": 42,
     "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_month, \"month\", \"count\", \"Visualization of the Number of Movies per Month\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "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>176</td>\n",
       "      <td>Based on Comic/Graphic Novel</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>72</td>\n",
       "      <td>Based on Factual Book/Article</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>387</td>\n",
       "      <td>Based on Fiction Book/Short Story</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>24</td>\n",
       "      <td>Based on Folk Tale/Legend/Fairytale</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>15</td>\n",
       "      <td>Based on Game</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>3</td>\n",
       "      <td>Based on Movie</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>4</td>\n",
       "      <td>Based on Musical or Opera</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>10</td>\n",
       "      <td>Based on Play</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>77</td>\n",
       "      <td>Based on Real Life Events</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>3</td>\n",
       "      <td>Based on Religious Text</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>6</td>\n",
       "      <td>Based on Short Film</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>107</td>\n",
       "      <td>Based on TV</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>10</td>\n",
       "      <td>Based on Theme Park Ride</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>14</td>\n",
       "      <td>Based on Toy</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>803</td>\n",
       "      <td>Original Screenplay</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>118</td>\n",
       "      <td>Remake</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>30</td>\n",
       "      <td>Spin-Off</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count                               source\n",
       "0     176         Based on Comic/Graphic Novel\n",
       "1      72        Based on Factual Book/Article\n",
       "2     387    Based on Fiction Book/Short Story\n",
       "3      24  Based on Folk Tale/Legend/Fairytale\n",
       "4      15                        Based on Game\n",
       "5       3                       Based on Movie\n",
       "6       4            Based on Musical or Opera\n",
       "7      10                        Based on Play\n",
       "8      77            Based on Real Life Events\n",
       "9       3              Based on Religious Text\n",
       "10      6                  Based on Short Film\n",
       "11    107                          Based on TV\n",
       "12     10             Based on Theme Park Ride\n",
       "13     14                         Based on Toy\n",
       "14    803                  Original Screenplay\n",
       "15    118                               Remake\n",
       "16     30                             Spin-Off"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_source = groupby_count(movies, \"source\", \"genre\")\n",
    "movies_source"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'source')"
      ]
     },
     "execution_count": 44,
     "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": 45,
   "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>249</td>\n",
       "      <td>20th Century Fox</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>36</td>\n",
       "      <td>Dreamworks SKG</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>FilmDistrict</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "      <td>Focus Features</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>12</td>\n",
       "      <td>Fox Searchlight</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>69</td>\n",
       "      <td>Lionsgate</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>17</td>\n",
       "      <td>MGM</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>20</td>\n",
       "      <td>Miramax</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>14</td>\n",
       "      <td>Miramax/Dimension</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>39</td>\n",
       "      <td>New Line</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>244</td>\n",
       "      <td>Paramount Pictures</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>6</td>\n",
       "      <td>Relativity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>7</td>\n",
       "      <td>STX Entertainment</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>292</td>\n",
       "      <td>Sony Pictures</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>10</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>260</td>\n",
       "      <td>Universal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>259</td>\n",
       "      <td>Walt Disney</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>301</td>\n",
       "      <td>Warner Bros.</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>12</td>\n",
       "      <td>Weinstein Co.</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count           distributor\n",
       "0     249      20th Century Fox\n",
       "1      36        Dreamworks SKG\n",
       "2       2          FilmDistrict\n",
       "3       9        Focus Features\n",
       "4      12       Fox Searchlight\n",
       "5      69             Lionsgate\n",
       "6      17                   MGM\n",
       "7      20               Miramax\n",
       "8      14     Miramax/Dimension\n",
       "9      39              New Line\n",
       "10    244    Paramount Pictures\n",
       "11      6            Relativity\n",
       "12      7     STX Entertainment\n",
       "13    292         Sony Pictures\n",
       "14     10  Summit Entertainment\n",
       "15      1        United Artists\n",
       "16    260             Universal\n",
       "17    259           Walt Disney\n",
       "18    301          Warner Bros.\n",
       "19     12         Weinstein Co."
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_distributor = groupby_count(movies, \"distributor\", \"genre\")\n",
    "movies_distributor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "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>249</td>\n",
       "      <td>20th Century Fox</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>36</td>\n",
       "      <td>Dreamworks SKG</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>FilmDistrict</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "      <td>Focus Features</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>12</td>\n",
       "      <td>Fox Searchlight</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>69</td>\n",
       "      <td>Lionsgate</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>17</td>\n",
       "      <td>MGM</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>20</td>\n",
       "      <td>Miramax</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>14</td>\n",
       "      <td>Miramax/Dimension</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>39</td>\n",
       "      <td>New Line</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>244</td>\n",
       "      <td>Paramount Pictures</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>6</td>\n",
       "      <td>Relativity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>7</td>\n",
       "      <td>STX Entertainment</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>292</td>\n",
       "      <td>Sony Pictures</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>10</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>260</td>\n",
       "      <td>Universal</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>259</td>\n",
       "      <td>Walt Disney</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>301</td>\n",
       "      <td>Warner Bros.</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>12</td>\n",
       "      <td>Weinstein Co.</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count           distributor\n",
       "0     249      20th Century Fox\n",
       "1      36        Dreamworks SKG\n",
       "2       2          FilmDistrict\n",
       "3       9        Focus Features\n",
       "4      12       Fox Searchlight\n",
       "5      69             Lionsgate\n",
       "6      17                   MGM\n",
       "7      20               Miramax\n",
       "8      14     Miramax/Dimension\n",
       "9      39              New Line\n",
       "10    244    Paramount Pictures\n",
       "11      6            Relativity\n",
       "12      7     STX Entertainment\n",
       "13    292         Sony Pictures\n",
       "14     10  Summit Entertainment\n",
       "15      1        United Artists\n",
       "16    260             Universal\n",
       "17    259           Walt Disney\n",
       "18    301          Warner Bros.\n",
       "19     12         Weinstein Co."
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_distributor = movies_distributor[movies_distributor[\"count\"] > 0]\n",
    "movies_distributor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'distributor')"
      ]
     },
     "execution_count": 47,
     "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": 48,
   "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>176</td>\n",
       "      <td>Animation/Live Action</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>216</td>\n",
       "      <td>Digital Animation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>14</td>\n",
       "      <td>Hand Animation</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1451</td>\n",
       "      <td>Live Action</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2</td>\n",
       "      <td>Stop-Motion Animation</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   count      production_method\n",
       "0    176  Animation/Live Action\n",
       "1    216      Digital Animation\n",
       "2     14         Hand Animation\n",
       "3   1451            Live Action\n",
       "4      2  Stop-Motion Animation"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_production_method = groupby_count(movies, \"production_method\", \"genre\")\n",
    "movies_production_method"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'production_method')"
      ]
     },
     "execution_count": 49,
     "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": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Discretizing the df \n",
    "movies_discretized = movies.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "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",
       "       'int_cumulative_mean_creative_type', 'int_exp_mean_creative_type',\n",
       "       'ww_cumulative_mean_creative_type', 'ww_exp_mean_creative_type',\n",
       "       'dom_cumulative_mean_genre', 'dom_exp_mean_genre',\n",
       "       'int_cumulative_mean_genre', 'int_exp_mean_genre',\n",
       "       'ww_cumulative_mean_genre', 'ww_exp_mean_genre',\n",
       "       'dom_cumulative_mean_production_method',\n",
       "       'dom_exp_mean_production_method',\n",
       "       'int_cumulative_mean_production_method',\n",
       "       'int_exp_mean_production_method',\n",
       "       'ww_cumulative_mean_production_method', 'ww_exp_mean_production_method',\n",
       "       'dom_cumulative_mean_source', 'dom_exp_mean_source',\n",
       "       'int_cumulative_mean_source', 'int_exp_mean_source',\n",
       "       'ww_cumulative_mean_source', 'ww_exp_mean_source',\n",
       "       'dom_cumulative_mean_distributor', 'dom_exp_mean_distributor',\n",
       "       'int_cumulative_mean_distributor', 'int_exp_mean_distributor',\n",
       "       'ww_cumulative_mean_distributor', 'ww_exp_mean_distributor',\n",
       "       'dom_cumulative_mean_month', 'dom_exp_mean_month',\n",
       "       'int_cumulative_mean_month', 'int_exp_mean_month',\n",
       "       'ww_cumulative_mean_month', 'ww_exp_mean_month'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Getting a list of all of our columns \n",
    "movies_discretized.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "# We are going to descritize our data based on the quartiles. The categories are: \n",
    "# extremely_low, low, high, extremely_high\n",
    "# We are using our quartile_discretize function that takes the following arguments: \n",
    "#(df, column, category)\n",
    "categories = [\"extremely_low\", \"low\", \"high\", \"extremely_high\"]\n",
    "movies_discretized[\"domestic_box_office\"] = quartile_discretize(movies_discretized, \"domestic_box_office\", categories)\n",
    "movies_discretized[\"inflated_adj_dom_box_office\"] = quartile_discretize(movies_discretized, \"inflated_adj_dom_box_office\", categories)\n",
    "movies_discretized[\"int_box_office\"] = quartile_discretize(movies_discretized, \"int_box_office\", categories)\n",
    "movies_discretized[\"max_theaters\"] = quartile_discretize(movies_discretized, \"max_theaters\", categories)\n",
    "movies_discretized[\"open_wkend_rev\"] = quartile_discretize(movies_discretized, \"open_wkend_rev\", categories)\n",
    "movies_discretized[\"open_wkend_theaters\"] = quartile_discretize(movies_discretized, \"open_wkend_theaters\", categories)\n",
    "movies_discretized[\"budget\"] = quartile_discretize(movies_discretized, \"budget\", categories)\n",
    "movies_discretized[\"engagements\"] = quartile_discretize(movies_discretized, \"engagements\", categories)\n",
    "movies_discretized[\"world_wide_box_office\"] = quartile_discretize(movies_discretized, \"world_wide_box_office\", categories)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "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",
       "       'int_cumulative_mean_creative_type', 'int_exp_mean_creative_type',\n",
       "       'ww_cumulative_mean_creative_type', 'ww_exp_mean_creative_type',\n",
       "       'dom_cumulative_mean_genre', 'dom_exp_mean_genre',\n",
       "       'int_cumulative_mean_genre', 'int_exp_mean_genre',\n",
       "       'ww_cumulative_mean_genre', 'ww_exp_mean_genre',\n",
       "       'dom_cumulative_mean_production_method',\n",
       "       'dom_exp_mean_production_method',\n",
       "       'int_cumulative_mean_production_method',\n",
       "       'int_exp_mean_production_method',\n",
       "       'ww_cumulative_mean_production_method', 'ww_exp_mean_production_method',\n",
       "       'dom_cumulative_mean_source', 'dom_exp_mean_source',\n",
       "       'int_cumulative_mean_source', 'int_exp_mean_source',\n",
       "       'ww_cumulative_mean_source', 'ww_exp_mean_source',\n",
       "       'dom_cumulative_mean_distributor', 'dom_exp_mean_distributor',\n",
       "       'int_cumulative_mean_distributor', 'int_exp_mean_distributor',\n",
       "       'ww_cumulative_mean_distributor', 'ww_exp_mean_distributor',\n",
       "       'dom_cumulative_mean_month', 'dom_exp_mean_month',\n",
       "       'int_cumulative_mean_month', 'int_exp_mean_month',\n",
       "       'ww_cumulative_mean_month', 'ww_exp_mean_month'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_discretized.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "#The other columns that are going to be discretized contain information regarding percent profit... We have decided to \n",
    "# use the following categories for percent profit \n",
    "#We are creating new label categories ; Discretized Percent Profit \n",
    "#We cannot use our function on this, because we are not discretizing by quartiles\n",
    "categories = [\"negative\", \"low\", \"high\", \"extremely_high\"]\n",
    "\n",
    "movies_discretized[\"dom_percent_profit\"] = pd.cut(movies_discretized[\"dom_percent_profit\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_percent_profit\"] = pd.cut(movies_discretized[\"int_percent_profit\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_percent_profit\"] = pd.cut(movies_discretized[\"ww_percent_profit\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"dom_cumulative_mean_creative_type\"] = pd.cut(movies_discretized[\"dom_cumulative_mean_creative_type\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"dom_exp_mean_creative_type\"] = pd.cut(movies_discretized[\"dom_exp_mean_creative_type\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_cumulative_mean_creative_type\"] = pd.cut(movies_discretized[\"int_cumulative_mean_creative_type\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_exp_mean_creative_type\"] = pd.cut(movies_discretized[\"int_exp_mean_creative_type\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_cumulative_mean_creative_type\"] = pd.cut(movies_discretized[\"ww_cumulative_mean_creative_type\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_exp_mean_creative_type\"] = pd.cut(movies_discretized[\"ww_exp_mean_creative_type\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"dom_cumulative_mean_genre\"] = pd.cut(movies_discretized[\"dom_cumulative_mean_genre\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"dom_exp_mean_genre\"] = pd.cut(movies_discretized[\"dom_exp_mean_genre\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_cumulative_mean_genre\"] = pd.cut(movies_discretized[\"int_cumulative_mean_genre\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_exp_mean_genre\"] = pd.cut(movies_discretized[\"int_exp_mean_genre\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_cumulative_mean_genre\"] = pd.cut(movies_discretized[\"ww_cumulative_mean_genre\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_exp_mean_genre\"] = pd.cut(movies_discretized[\"ww_exp_mean_genre\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"dom_cumulative_mean_production_method\"] = pd.cut(movies_discretized[\"dom_cumulative_mean_production_method\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"dom_exp_mean_production_method\"] = pd.cut(movies_discretized[\"dom_exp_mean_production_method\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_cumulative_mean_production_method\"] = pd.cut(movies_discretized[\"int_cumulative_mean_production_method\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_exp_mean_production_method\"] = pd.cut(movies_discretized[\"int_exp_mean_production_method\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_cumulative_mean_production_method\"] = pd.cut(movies_discretized[\"ww_cumulative_mean_production_method\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_exp_mean_production_method\"] = pd.cut(movies_discretized[\"ww_exp_mean_production_method\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"dom_cumulative_mean_source\"] = pd.cut(movies_discretized[\"dom_cumulative_mean_source\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"dom_exp_mean_source\"] = pd.cut(movies_discretized[\"dom_exp_mean_source\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_cumulative_mean_source\"] = pd.cut(movies_discretized[\"int_cumulative_mean_source\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_exp_mean_source\"] = pd.cut(movies_discretized[\"int_exp_mean_source\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_cumulative_mean_source\"] = pd.cut(movies_discretized[\"ww_cumulative_mean_source\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_exp_mean_source\"] = pd.cut(movies_discretized[\"ww_exp_mean_source\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"dom_cumulative_mean_distributor\"] = pd.cut(movies_discretized[\"dom_cumulative_mean_distributor\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"dom_exp_mean_distributor\"] = pd.cut(movies_discretized[\"dom_exp_mean_distributor\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_cumulative_mean_distributor\"] = pd.cut(movies_discretized[\"int_cumulative_mean_distributor\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_exp_mean_distributor\"] = pd.cut(movies_discretized[\"int_exp_mean_distributor\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_cumulative_mean_distributor\"] = pd.cut(movies_discretized[\"ww_cumulative_mean_distributor\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_exp_mean_distributor\"] = pd.cut(movies_discretized[\"ww_exp_mean_distributor\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"dom_cumulative_mean_month\"] = pd.cut(movies_discretized[\"dom_cumulative_mean_month\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"dom_exp_mean_month\"] = pd.cut(movies_discretized[\"dom_exp_mean_month\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_cumulative_mean_month\"] = pd.cut(movies_discretized[\"int_cumulative_mean_month\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"int_exp_mean_month\"] = pd.cut(movies_discretized[\"int_exp_mean_month\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_cumulative_mean_month\"] = pd.cut(movies_discretized[\"ww_cumulative_mean_month\"], [-100, 0, 50, 150, 999999], labels = categories)\n",
    "movies_discretized[\"ww_exp_mean_month\"] = pd.cut(movies_discretized[\"ww_exp_mean_month\"], [-100, 0, 50, 150, 999999], labels = categories)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    1.859000e+03\n",
       "mean     5.330808e+07\n",
       "std      8.312150e+07\n",
       "min     -2.841540e+08\n",
       "25%      9.498052e+06\n",
       "50%      4.270688e+07\n",
       "75%      7.955942e+07\n",
       "max      6.306622e+08\n",
       "Name: dom_profit, dtype: float64"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_discretized.dom_profit.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [],
   "source": [
    "#negative = -999999999 - 0 \n",
    "#low = 0 - 40000000\n",
    "# high = 40000000 - 79559420\n",
    "# extremely_high = 79559420 - 9999999999\n",
    "movies_discretized[\"dom_profit\"] = pd.cut(movies_discretized[\"dom_profit\"], [-999999999, 0, 40000000, 79559420, 999999999], labels = categories)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    1.859000e+03\n",
       "mean     1.074237e+08\n",
       "std      1.714774e+08\n",
       "min     -1.694891e+08\n",
       "25%      3.747336e+06\n",
       "50%      4.991367e+07\n",
       "75%      1.488067e+08\n",
       "max      1.604198e+09\n",
       "Name: int_profit, dtype: float64"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_discretized.int_profit.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": [
    "#negative = -999999999 - 0 \n",
    "#low = 0 - 3747336\n",
    "# high = 3747336 - 49913670\n",
    "# extremely_high = 49913670 - 9999999999\n",
    "movies_discretized[\"int_profit\"] = pd.cut(movies_discretized[\"int_profit\"], [-999999999, 0, 3747336, 49913670, 9999999999], labels = categories)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    1.859000e+03\n",
       "mean     2.477746e+08\n",
       "std      2.614642e+08\n",
       "min     -1.036431e+08\n",
       "25%      8.632919e+07\n",
       "50%      1.561279e+08\n",
       "75%      3.031389e+08\n",
       "max      2.395446e+09\n",
       "Name: ww_profit, dtype: float64"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_discretized.ww_profit.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "#negative = -999999999 - 0 \n",
    "#low = 0 - 10000000\n",
    "# high = 10000000 - 303138900\n",
    "# extremely_high = 303138900 - 9999999999\n",
    "movies_discretized[\"ww_profit\"] = pd.cut(movies_discretized[\"ww_profit\"], [-999999999, 0, 10000000, 303138900, 9999999999], labels = categories)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "#We are setting new categories for the day column by creating a new column for week \n",
    "# week_1 is the first 7 days of the month, week_2 is days 8 - 14, week_3 is days 15 - 21, and week_4 are the \n",
    "# rest of the days\n",
    "categories = [\"week_1\", \"week_2\", \"week_3\", \"week_4\"]\n",
    "\n",
    "movies_discretized[\"week\"] = pd.cut(movies_discretized[\"day\"], [0, 8, 15, 22, 32], labels = categories)"
   ]
  },
  {
   "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>genre</th>\n",
       "      <th>dom_percent_profit</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>125</td>\n",
       "      <td>Action</td>\n",
       "      <td>negative</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>106</td>\n",
       "      <td>Action</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>110</td>\n",
       "      <td>Action</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>36</td>\n",
       "      <td>Action</td>\n",
       "      <td>extremely_high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>160</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>negative</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>151</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>130</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>97</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>extremely_high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2</td>\n",
       "      <td>Black Comedy</td>\n",
       "      <td>negative</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2</td>\n",
       "      <td>Black Comedy</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1</td>\n",
       "      <td>Black Comedy</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>4</td>\n",
       "      <td>Black Comedy</td>\n",
       "      <td>extremely_high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>20</td>\n",
       "      <td>Comedy</td>\n",
       "      <td>negative</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>35</td>\n",
       "      <td>Comedy</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>97</td>\n",
       "      <td>Comedy</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>163</td>\n",
       "      <td>Comedy</td>\n",
       "      <td>extremely_high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>2</td>\n",
       "      <td>Concert/Performance</td>\n",
       "      <td>extremely_high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>2</td>\n",
       "      <td>Documentary</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>36</td>\n",
       "      <td>Drama</td>\n",
       "      <td>negative</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>45</td>\n",
       "      <td>Drama</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>63</td>\n",
       "      <td>Drama</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>105</td>\n",
       "      <td>Drama</td>\n",
       "      <td>extremely_high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>4</td>\n",
       "      <td>Horror</td>\n",
       "      <td>negative</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>7</td>\n",
       "      <td>Horror</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>14</td>\n",
       "      <td>Horror</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>66</td>\n",
       "      <td>Horror</td>\n",
       "      <td>extremely_high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>2</td>\n",
       "      <td>Musical</td>\n",
       "      <td>negative</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>8</td>\n",
       "      <td>Musical</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>10</td>\n",
       "      <td>Musical</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>10</td>\n",
       "      <td>Musical</td>\n",
       "      <td>extremely_high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>3</td>\n",
       "      <td>Romantic Comedy</td>\n",
       "      <td>negative</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>11</td>\n",
       "      <td>Romantic Comedy</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>38</td>\n",
       "      <td>Romantic Comedy</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>24</td>\n",
       "      <td>Romantic Comedy</td>\n",
       "      <td>extremely_high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>30</td>\n",
       "      <td>Thriller/Suspense</td>\n",
       "      <td>negative</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>33</td>\n",
       "      <td>Thriller/Suspense</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>47</td>\n",
       "      <td>Thriller/Suspense</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>48</td>\n",
       "      <td>Thriller/Suspense</td>\n",
       "      <td>extremely_high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>4</td>\n",
       "      <td>Western</td>\n",
       "      <td>negative</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>3</td>\n",
       "      <td>Western</td>\n",
       "      <td>low</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>3</td>\n",
       "      <td>Western</td>\n",
       "      <td>high</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>2</td>\n",
       "      <td>Western</td>\n",
       "      <td>extremely_high</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    count                genre dom_percent_profit\n",
       "0     125               Action           negative\n",
       "1     106               Action                low\n",
       "2     110               Action               high\n",
       "3      36               Action     extremely_high\n",
       "4     160            Adventure           negative\n",
       "5     151            Adventure                low\n",
       "6     130            Adventure               high\n",
       "7      97            Adventure     extremely_high\n",
       "8       2         Black Comedy           negative\n",
       "9       2         Black Comedy                low\n",
       "10      1         Black Comedy               high\n",
       "11      4         Black Comedy     extremely_high\n",
       "12     20               Comedy           negative\n",
       "13     35               Comedy                low\n",
       "14     97               Comedy               high\n",
       "15    163               Comedy     extremely_high\n",
       "16      2  Concert/Performance     extremely_high\n",
       "17      2          Documentary                low\n",
       "18     36                Drama           negative\n",
       "19     45                Drama                low\n",
       "20     63                Drama               high\n",
       "21    105                Drama     extremely_high\n",
       "22      4               Horror           negative\n",
       "23      7               Horror                low\n",
       "24     14               Horror               high\n",
       "25     66               Horror     extremely_high\n",
       "26      2              Musical           negative\n",
       "27      8              Musical                low\n",
       "28     10              Musical               high\n",
       "29     10              Musical     extremely_high\n",
       "30      3      Romantic Comedy           negative\n",
       "31     11      Romantic Comedy                low\n",
       "32     38      Romantic Comedy               high\n",
       "33     24      Romantic Comedy     extremely_high\n",
       "34     30    Thriller/Suspense           negative\n",
       "35     33    Thriller/Suspense                low\n",
       "36     47    Thriller/Suspense               high\n",
       "37     48    Thriller/Suspense     extremely_high\n",
       "38      4              Western           negative\n",
       "39      3              Western                low\n",
       "40      3              Western               high\n",
       "41      2              Western     extremely_high"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Looking at the relationship between genre and percent profit \n",
    "movies_discretized_genre_pp = groupby_2_count(movies_discretized, \"genre\", \"dom_percent_profit\", \"genre\")\n",
    "movies_discretized_genre_pp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "genre\n",
       "Action                 377\n",
       "Adventure              538\n",
       "Black Comedy             9\n",
       "Comedy                 315\n",
       "Concert/Performance      2\n",
       "Documentary              2\n",
       "Drama                  249\n",
       "Horror                  91\n",
       "Musical                 30\n",
       "Romantic Comedy         76\n",
       "Thriller/Suspense      158\n",
       "Western                 12\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Now we are getting the sum of each genre category... We do not have a function for sum... we could go back and rework \n",
    "#our function.\n",
    "movies_discretized_genre_pp.groupby(\"genre\")[\"count\"].sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "# We ultimately want a column that contains the total counts for each genre group. We are probably doing this in \n",
    "# a roundabout way, but as I am extremely new to python this is the best way I can think of doing it. We are going to create \n",
    "# a new column that replicates the genre column called genre_count and then we will use the replace function to \n",
    "# replace the genre names with their total count \n",
    "#First, replicating the income level column in a column named budget_category_count\n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre\"] \n",
    "#Now replacing the income level with the total count for each income level \n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre_count\"].replace([\"Action\"], 377 )\n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre_count\"].replace([\"Adventure\"], 538)\n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre_count\"].replace([\"Black Comedy\"], 9)\n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre_count\"].replace([\"Comedy\"], 315)\n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre_count\"].replace([\"Concert/Performance\"], 2)\n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre_count\"].replace([\"Documentary\"], 2)\n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre_count\"].replace([\"Drama\"], 249)\n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre_count\"].replace([\"Horror\"], 91)\n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre_count\"].replace([\"Musical\"], 30)\n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre_count\"].replace([\"Romantic Comedy\"], 76)\n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre_count\"].replace([\"Thriller/Suspense\"], 158)\n",
    "movies_discretized_genre_pp[\"genre_count\"] = movies_discretized_genre_pp[\"genre_count\"].replace([\"Western\"], 12)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "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",
       "      <th>dom_percent_profit</th>\n",
       "      <th>genre_count</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>125</td>\n",
       "      <td>Action</td>\n",
       "      <td>negative</td>\n",
       "      <td>377</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>106</td>\n",
       "      <td>Action</td>\n",
       "      <td>low</td>\n",
       "      <td>377</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>110</td>\n",
       "      <td>Action</td>\n",
       "      <td>high</td>\n",
       "      <td>377</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>36</td>\n",
       "      <td>Action</td>\n",
       "      <td>extremely_high</td>\n",
       "      <td>377</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>160</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>negative</td>\n",
       "      <td>538</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   count      genre dom_percent_profit  genre_count\n",
       "0    125     Action           negative          377\n",
       "1    106     Action                low          377\n",
       "2    110     Action               high          377\n",
       "3     36     Action     extremely_high          377\n",
       "4    160  Adventure           negative          538"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_discretized_genre_pp.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [],
   "source": [
    "movies_discretized_genre_pp[\"genre_count\"] = pd.to_numeric(movies_discretized_genre_pp[\"genre_count\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "#Okay, we are one step closer... Now, we need to create a column that takes the counts/genre_counts * 100 \n",
    "movies_discretized_genre_pp[\"percent\"] = movies_discretized_genre_pp[\"count\"]/movies_discretized_genre_pp[\"genre_count\"] *100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "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",
       "      <th>dom_percent_profit</th>\n",
       "      <th>genre_count</th>\n",
       "      <th>percent</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>125</td>\n",
       "      <td>Action</td>\n",
       "      <td>negative</td>\n",
       "      <td>377</td>\n",
       "      <td>33.156499</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>106</td>\n",
       "      <td>Action</td>\n",
       "      <td>low</td>\n",
       "      <td>377</td>\n",
       "      <td>28.116711</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>110</td>\n",
       "      <td>Action</td>\n",
       "      <td>high</td>\n",
       "      <td>377</td>\n",
       "      <td>29.177719</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>36</td>\n",
       "      <td>Action</td>\n",
       "      <td>extremely_high</td>\n",
       "      <td>377</td>\n",
       "      <td>9.549072</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>160</td>\n",
       "      <td>Adventure</td>\n",
       "      <td>negative</td>\n",
       "      <td>538</td>\n",
       "      <td>29.739777</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   count      genre dom_percent_profit  genre_count    percent\n",
       "0    125     Action           negative          377  33.156499\n",
       "1    106     Action                low          377  28.116711\n",
       "2    110     Action               high          377  29.177719\n",
       "3     36     Action     extremely_high          377   9.549072\n",
       "4    160  Adventure           negative          538  29.739777"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movies_discretized_genre_pp.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x2608e6345c0>"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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9a677lq2bds26dSpU48JEybMHzhw4JZvv/02Kzc3t+Suu+7Ka9y48a4vvvhi9tatW6Vfv34Fw4YN2wgwe/bsep999tnX+fn5xX369Cl48803c2+44YZV999//4GTJ0/+qmXLlqmqI1mnnXbavIsuuqh927ZtF7/yyiudH3nkkQUPPPBAd4D69euXvPzyy/OaNWtWsnz58pzDDz+84Kyzzto9fHH69Ol1hg8f3nHcuHELjjzyyK233357meUrT6NGjXZ9/vnns++9994DLr300rZvv/32vPj7r7nmmla9evXa8tZbb81/8cUXG44cObLDnDlzZt13333fjBkz5sDEx69bty5ry5YtWQUFBSn3Hli+fHnOLbfc0vLdd9/9qlGjRiXXX3/9Qb/73e8OvP3225cD5OXl7Zw1a9bsW2+9tfmtt9564FNPPfUNwIwZM+pPmTJlTm5urpb1XuNjzpgxo16vXr22pCpDWZ/tmDFjlpx88sn15syZMwtcEps3b17dGTNmzFZVjj/++E6vvvpqboMGDUpeeumlpp9//vms4uJiOfTQQwt79+69BeCcc87pcOeddy76wQ9+sGn06NGtrr322laPPPLIYoD169dnf/zxx18CfPPNN3Wefvrpxmefffb6Rx55pNlJJ520rk6dOqUGpfTt23fa3n5/5rux5FDDbd++PaugoKAQ4PDDDy+6/PLL19xxxx15X3zxRf1evXp1A9i2bVtWixYtdgJkZ2dzzjnnrAOYMWNG3RYtWhQPHDhwC0Dsavett95qNGfOnPovvvhiU4CioqLsWbNm1a1du7b27Nlzc8eOHYsBunfvvmX+/Pm1K1DMElXN7t+//6aHH3642bZt27K6du26++RWUlIio0ePbvPhhx/mZmVlsWrVqtpLlizJAfj2229zTj311E7PPPPM/L59+27bW/nKK8TIkSO/BRg1atS3N9xwQ9vE+z/66KOGzz333DyAU045peiCCy7IWbt2bXZZr6eqxNaLAnjuuecaXX/99W2KioqyH3300a/XrFmTM3/+/Lr9+/cvACguLpY+ffpsij3+rLPOWgfQv3//LbH3AjBkyJD1ubm5Wt57LSshJSrvs4332muvNXr33XcbFRYWFgJs2bIla86cOXWLioqyhg4dGiuPDh48eD24ZqmioqLsH/zgB5v8Z7r2jDPOODj2emeeeebu0UUXXHDB6ttuu+2gs88+e/0TTzyR99BDDy2sSNnN/rHkUMPF+hzij6mqnHHGGWv/+te/Lk18fO3atUtycnJijyPVLGVVlTFjxiw6/fTTS12NT5w4sWH8FV92djY7d+6sSNu6LFu27ODBgwdvu/zyy/MuvvjibV9++eXu5p+xY8c2W7t2bc7nn38+u06dOtq6deueW7duzQJo2LDhrpYtW+545513cmPJoazyvf7667klJXuaqRObLrKy9rTClvG+kwtezizuZs2aldSrV69kzpw5tQsKCnacfvrpG08//fRZxxxzTKft27dnqSpHH330xpdeemlBqufXrVtXAXJycjT+c2zQoMHuN1HWe43Xs2fPrc8//3xSRzmU/9kmvvfRo0cvv/rqq9fEH//tb3+7T/0SDRs23P0eTjjhhM2XXnppnZdffjl3165d0q9fv2378prmu7E+iGB1mAAAEfdJREFUB5NkyJAhGydOnNh06dKlOeDa0r/66qukK/xevXptW7lyZe3JkyfXB9dMUlxczODBgzfcf//9zWMn1xkzZtTZuHFjud+1Bg0a7Iq1pycSkR3NmzdfMmzYsCUXX3zxmnPPPXfpgQceuCJ2/4YNG7Lz8vKK69Spoy+99FLDZcuW7S5rrVq19LXXXpv/5JNPHvDAAw80A8osX8eOHbfPmzev3tatW2Xt2rXZ77//fqP4cjz++OPNAMaNG9e0d+/em0lwxBFHFI0fP/4AcImwadOmO2O1qbKMHj16+ahRo9qvWbMmG1zn8Pbt27MABg0atHnq1Km5sf6NoqKirPJGEKVSkd/FsGHDinbs2CFjxozZ3R8xefLk+i+//HJuWZ9t48aNd23evHn36wwdOnTj3/72t7zY73DBggW1li5dmjNo0KBNr7/+euMtW7bIhg0bst56660mAAcccMCuRo0a7Xrttddy/Wd6wIABAzZRhuHDh68999xzDx4xYsSash5jomU1B5OkT58+22644Yalxx13XJeSkhJq1aqld99996IuXbqUaoqoW7euTpgwYf5ll13Wbtu2bVl169Yteffdd7+64oor1ixcuLBOz549u6mqNGvWrPiVV14pd6mBkSNHrhk6dGjnFi1aFE+ZMuWr+PtEZFft2rW3A9lXX331htzc3M21a9fe3Tdx/vnnfzt06NBOPXr06Na9e/ctHTp0KHVl2ahR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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "'''Attempting to graph this data using a grouped bar chart: \n",
    "formula: df.pivot(columns, group, values).plot(kind = \"type of graph\", color = [\"color to use, can be a list of colors\"], \n",
    "title = \"you can set the title of your graph here\")'''\n",
    "graph = movies_discretized_genre_pp.pivot(\"genre\", \"dom_percent_profit\", \n",
    "                                                \"percent\").plot(kind=\"bar\", color = [\"crimson\", \"salmon\", \"palegreen\", \"darkgreen\"],\n",
    "                                                               title = \"Percent of Percent Profit to Genre Category\")\n",
    "#Changing the y label of our graph to Percent\n",
    "plt.ylabel(\"Percent\")\n",
    "#Changing the x axis label of our graph to Budget Category \n",
    "plt.xlabel(\"Genre\")\n",
    "#How to change the tick labels (we ended up not needing this, but want to keep for future reference)\n",
    "#plt.Axes.set_xticklabels(graph, labels = ['extremely low', 'low', 'high', 'extremely high'])\n",
    "#moving the legend position to underneath the graph, also setting it to have 4 columns so the legend is in a \n",
    "#straight single line and adding a legend title\n",
    "plt.legend( loc = \"lower center\", bbox_to_anchor = (.5, -.6), ncol = 4, title = \"Percent Makeup of Genre Category\")\n"
   ]
  },
  {
   "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
}
