{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# <font color='blue'>Data Science Academy - Python Fundamentos - Capítulo 7</font>\n",
    "\n",
    "## Download: http://github.com/dsacademybr"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Missão: Analisar o Comportamento de Compra de Consumidores."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Nível de Dificuldade: Alto"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Você recebeu a tarefa de analisar os dados de compras de um web site! Os dados estão no formato JSON e disponíveis junto com este notebook.\n",
    "\n",
    "No site, cada usuário efetua login usando sua conta pessoal e pode adquirir produtos à medida que navega pela lista de produtos oferecidos. Cada produto possui um valor de venda. Dados de idade e sexo de cada usuário foram coletados e estão fornecidos no arquivo JSON.\n",
    "\n",
    "Seu trabalho é entregar uma análise de comportamento de compra dos consumidores. Esse é um tipo de atividade comum realizado por Cientistas de Dados e o resultado deste trabalho pode ser usado, por exemplo, para alimentar um modelo de Machine Learning e fazer previsões sobre comportamentos futuros.\n",
    "\n",
    "Mas nesta missão você vai analisar o comportamento de compra dos consumidores usando o pacote Pandas da linguagem Python e seu relatório final deve incluir cada um dos seguintes itens:\n",
    "\n",
    "** Contagem de Compradores **\n",
    "\n",
    "* Número total de compradores\n",
    "\n",
    "\n",
    "** Análise Geral de Compras **\n",
    "\n",
    "* Número de itens exclusivos\n",
    "* Preço médio de compra\n",
    "* Número total de compras\n",
    "* Rendimento total\n",
    "\n",
    "\n",
    "** Informações Demográficas Por Gênero **\n",
    "\n",
    "* Porcentagem e contagem de compradores masculinos\n",
    "* Porcentagem e contagem de compradores do sexo feminino\n",
    "* Porcentagem e contagem de outros / não divulgados\n",
    "\n",
    "\n",
    "** Análise de Compras Por Gênero **\n",
    "\n",
    "* Número de compras\n",
    "* Preço médio de compra\n",
    "* Valor Total de Compra\n",
    "* Compras for faixa etária\n",
    "\n",
    "\n",
    "** Identifique os 5 principais compradores pelo valor total de compra e, em seguida, liste (em uma tabela): **\n",
    "\n",
    "* Login\n",
    "* Número de compras\n",
    "* Preço médio de compra\n",
    "* Valor Total de Compra\n",
    "* Itens mais populares\n",
    "\n",
    "\n",
    "** Identifique os 5 itens mais populares por contagem de compras e, em seguida, liste (em uma tabela): **\n",
    "\n",
    "* ID do item\n",
    "* Nome do item\n",
    "* Número de compras\n",
    "* Preço do item\n",
    "* Valor Total de Compra\n",
    "* Itens mais lucrativos\n",
    "\n",
    "\n",
    "** Identifique os 5 itens mais lucrativos pelo valor total de compra e, em seguida, liste (em uma tabela): **\n",
    "\n",
    "* ID do item\n",
    "* Nome do item\n",
    "* Número de compras\n",
    "* Preço do item\n",
    "* Valor Total de Compra\n",
    "\n",
    "\n",
    "** Como considerações finais: **\n",
    "\n",
    "* Seu script deve funcionar para o conjunto de dados fornecido.\n",
    "* Você deve usar a Biblioteca Pandas e o Jupyter Notebook.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Imports\n",
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Idade</th>\n",
       "      <th>Item ID</th>\n",
       "      <th>Login</th>\n",
       "      <th>Nome do Item</th>\n",
       "      <th>Sexo</th>\n",
       "      <th>Valor</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>38</td>\n",
       "      <td>165</td>\n",
       "      <td>Aelalis34</td>\n",
       "      <td>Bone Crushing Silver Skewer</td>\n",
       "      <td>Masculino</td>\n",
       "      <td>3.37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>21</td>\n",
       "      <td>119</td>\n",
       "      <td>Eolo46</td>\n",
       "      <td>Stormbringer, Dark Blade of Ending Misery</td>\n",
       "      <td>Masculino</td>\n",
       "      <td>2.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>34</td>\n",
       "      <td>174</td>\n",
       "      <td>Assastnya25</td>\n",
       "      <td>Primitive Blade</td>\n",
       "      <td>Masculino</td>\n",
       "      <td>2.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>21</td>\n",
       "      <td>92</td>\n",
       "      <td>Pheusrical25</td>\n",
       "      <td>Final Critic</td>\n",
       "      <td>Masculino</td>\n",
       "      <td>1.36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>23</td>\n",
       "      <td>63</td>\n",
       "      <td>Aela59</td>\n",
       "      <td>Stormfury Mace</td>\n",
       "      <td>Masculino</td>\n",
       "      <td>1.27</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Idade  Item ID         Login                               Nome do Item  \\\n",
       "0     38      165     Aelalis34                Bone Crushing Silver Skewer   \n",
       "1     21      119        Eolo46  Stormbringer, Dark Blade of Ending Misery   \n",
       "2     34      174   Assastnya25                            Primitive Blade   \n",
       "3     21       92  Pheusrical25                               Final Critic   \n",
       "4     23       63        Aela59                             Stormfury Mace   \n",
       "\n",
       "        Sexo  Valor  \n",
       "0  Masculino   3.37  \n",
       "1  Masculino   2.32  \n",
       "2  Masculino   2.46  \n",
       "3  Masculino   1.36  \n",
       "4  Masculino   1.27  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Carrega o arquivo\n",
    "load_file = \"dados_compras.json\"\n",
    "purchase_file = pd.read_json(load_file, orient = \"records\")\n",
    "purchase_file.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Informações Sobre os Compradores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sexo</th>\n",
       "      <th>Login</th>\n",
       "      <th>Idade</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Aelalis34</td>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Eolo46</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Assastnya25</td>\n",
       "      <td>34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Pheusrical25</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Aela59</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Sexo         Login  Idade\n",
       "0  Masculino     Aelalis34     38\n",
       "1  Masculino        Eolo46     21\n",
       "2  Masculino   Assastnya25     34\n",
       "3  Masculino  Pheusrical25     21\n",
       "4  Masculino        Aela59     23"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "player_demographics = purchase_file.loc[:, [\"Sexo\", \"Login\", \"Idade\"]]\n",
    "player_demographics.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "573"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Limpeza dos dados e remoção de duplicatas\n",
    "player_demographics = player_demographics.drop_duplicates()\n",
    "player_count = player_demographics.count()[0]\n",
    "player_count"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Total de Jogadores</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>573</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Total de Jogadores\n",
       "0                 573"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Converter saída para DF para uso posterior em análise\n",
    "pd.DataFrame({\"Total de Jogadores\" : [player_count]})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Análise de Compra"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Número de Itens Únicos</th>\n",
       "      <th>Preço Médio</th>\n",
       "      <th>Número de Compras</th>\n",
       "      <th>Total de Vendas</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>183</td>\n",
       "      <td>$2.93</td>\n",
       "      <td>780</td>\n",
       "      <td>$2,286.33</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Número de Itens Únicos Preço Médio  Número de Compras Total de Vendas\n",
       "0                     183       $2.93                780       $2,286.33"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Cálculos básicos\n",
    "average_item_price = purchase_file[\"Valor\"].mean()\n",
    "total_item_price = purchase_file[\"Valor\"].sum()\n",
    "total_item_count = purchase_file[\"Valor\"].count()\n",
    "item_id = len(purchase_file[\"Item ID\"].unique())\n",
    "\n",
    "# Dataframe para os resultados\n",
    "summary_calculations = pd.DataFrame({\"Número de Itens Únicos\" : item_id,\n",
    "                                     \"Número de Compras\" : total_item_count, \n",
    "                                     \"Total de Vendas\" : total_item_price, \n",
    "                                     \"Preço Médio\" : [average_item_price]})\n",
    "\n",
    "# Data Munging\n",
    "summary_calculations = summary_calculations.round(2)\n",
    "summary_calculations [\"Preço Médio\"] = summary_calculations[\"Preço Médio\"].map(\"${:,.2f}\".format)\n",
    "summary_calculations [\"Total de Vendas\"] = summary_calculations[\"Total de Vendas\"].map(\"${:,.2f}\".format)\n",
    "summary_calculations = summary_calculations.loc[:, [\"Número de Itens Únicos\", \"Preço Médio\", \"Número de Compras\", \"Total de Vendas\"]]\n",
    "\n",
    "summary_calculations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([165, 119, 174,  92,  63,  10, 153, 169, 118,  99,  57,  47,  81,\n",
       "        77,  44,  96, 123,  59,  91, 177,  78,   3,  11, 183,  65, 132,\n",
       "       106,  49,  45, 155,  37,  48,  90,  13, 171,  25,   7, 124,  68,\n",
       "        85, 120,  17, 141,  73, 151,  32,  51, 101, 140,  31,  34,   2,\n",
       "        86,  39,  28, 160, 134,  83,  38, 158, 110, 122,  54, 105,  87,\n",
       "        23, 144, 128, 175,  46, 150, 152, 108, 172, 167, 181,  20, 130,\n",
       "       111, 103,  30, 139, 173,  55, 115,  35,  42,   9,  84, 180, 102,\n",
       "        53,  18,  74, 126,  50,  62, 125, 121, 129, 149,  12,  71,  14,\n",
       "        58,  27,  52,  66, 100, 112,  24,  94, 107,   0, 182,  97,  70,\n",
       "        89,   1, 170,  93, 179,  36,  75, 143, 137, 176, 148, 127, 147,\n",
       "       161, 154, 157, 116,  61, 131,  41, 145,  60, 162, 135,   8,  40,\n",
       "        15,  29,  72, 114, 117,  79,  88, 104,  95,  64,  98,  33,  76,\n",
       "       146, 166,  56,  22,  21,  16,  67, 133,  69, 159,  82, 113, 164,\n",
       "         6, 163,   5,  19, 168, 136,  80,  26, 142, 178, 156, 109,  43,\n",
       "         4])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "purchase_file[\"Item ID\"].unique()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Informações Demográficas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Cálculos básicos\n",
    "gender_count = player_demographics[\"Sexo\"].value_counts()\n",
    "gender_percent = (gender_count / player_count) * 100\n",
    "\n",
    "# Dataframe para os resultados\n",
    "gender_demographics = pd.DataFrame({\"Sexo\" : gender_count, \n",
    "                                    \"%\" : gender_percent})\n",
    "\n",
    "# Data Munging\n",
    "gender_demographics = gender_demographics.round(2)\n",
    "gender_demographics [\"%\"] = gender_demographics[\"%\"].map(\"{:,.1f}%\".format)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Masculino                465\n",
       "Feminino                 100\n",
       "Outro / Não Divulgado      8\n",
       "Name: Sexo, dtype: int64"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Output Test\n",
    "gender_count"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Masculino                81.151832\n",
       "Feminino                 17.452007\n",
       "Outro / Não Divulgado     1.396161\n",
       "Name: Sexo, dtype: float64"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Output Test\n",
    "gender_percent"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>%</th>\n",
       "      <th>Sexo</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Masculino</th>\n",
       "      <td>81.2%</td>\n",
       "      <td>465</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Feminino</th>\n",
       "      <td>17.4%</td>\n",
       "      <td>100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Outro / Não Divulgado</th>\n",
       "      <td>1.4%</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                           %  Sexo\n",
       "Masculino              81.2%   465\n",
       "Feminino               17.4%   100\n",
       "Outro / Não Divulgado   1.4%     8"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Output Test\n",
    "gender_demographics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Análise de Compra Por Gênero"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Agrupamentos\n",
    "gender_total_item_price = purchase_file.groupby([\"Sexo\"]).sum()[\"Valor\"].rename(\"Total de Vendas\")\n",
    "gender_average_item_price = purchase_file.groupby([\"Sexo\"]).mean()[\"Valor\"].rename(\"Average Price\")\n",
    "purchase_count = purchase_file.groupby([\"Sexo\"]).count()[\"Valor\"].rename(\"Número de Compras\")\n",
    "normalized_total = gender_total_item_price / gender_demographics[\"Sexo\"]\n",
    "\n",
    "# Armazenando o resultado em um Dataframe\n",
    "gender_purchasing_analysis = pd.DataFrame({\"Número de Compras\" : purchase_count, \n",
    "                                           \"Valor Médio Por Item\" : gender_average_item_price, \n",
    "                                           \"Total de Vendas\" : gender_total_item_price, \n",
    "                                           \"Total Normalizado\" : normalized_total})\n",
    "\n",
    "# Data Munging\n",
    "gender_purchasing_analysis = gender_purchasing_analysis.round(2)\n",
    "gender_purchasing_analysis [\"Valor Médio Por Item\"] = gender_purchasing_analysis[\"Valor Médio Por Item\"].map(\"${:,.2f}\".format)\n",
    "gender_purchasing_analysis [\"Total de Vendas\"] = gender_purchasing_analysis[\"Total de Vendas\"].map(\"${:,.2f}\".format)\n",
    "gender_purchasing_analysis [\"Total Normalizado\"] = gender_purchasing_analysis[\"Total Normalizado\"].map(\"${:,.2f}\".format)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Sexo\n",
       "Feminino                  382.91\n",
       "Masculino                1867.68\n",
       "Outro / Não Divulgado      35.74\n",
       "Name: Total de Vendas, dtype: float64"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Resultado\n",
    "gender_total_item_price"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Sexo\n",
       "Feminino                 2.815515\n",
       "Masculino                2.950521\n",
       "Outro / Não Divulgado    3.249091\n",
       "Name: Average Price, dtype: float64"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Resultado\n",
    "gender_average_item_price"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Número de Compras</th>\n",
       "      <th>Total Normalizado</th>\n",
       "      <th>Total de Vendas</th>\n",
       "      <th>Valor Médio Por Item</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sexo</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Feminino</th>\n",
       "      <td>136</td>\n",
       "      <td>$3.83</td>\n",
       "      <td>$382.91</td>\n",
       "      <td>$2.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Masculino</th>\n",
       "      <td>633</td>\n",
       "      <td>$4.02</td>\n",
       "      <td>$1,867.68</td>\n",
       "      <td>$2.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Outro / Não Divulgado</th>\n",
       "      <td>11</td>\n",
       "      <td>$4.47</td>\n",
       "      <td>$35.74</td>\n",
       "      <td>$3.25</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       Número de Compras Total Normalizado Total de Vendas  \\\n",
       "Sexo                                                                         \n",
       "Feminino                             136             $3.83         $382.91   \n",
       "Masculino                            633             $4.02       $1,867.68   \n",
       "Outro / Não Divulgado                 11             $4.47          $35.74   \n",
       "\n",
       "                      Valor Médio Por Item  \n",
       "Sexo                                        \n",
       "Feminino                             $2.82  \n",
       "Masculino                            $2.95  \n",
       "Outro / Não Divulgado                $3.25  "
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Resultado\n",
    "gender_purchasing_analysis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Feminino                 3.829100\n",
       "Masculino                4.016516\n",
       "Outro / Não Divulgado    4.467500\n",
       "dtype: float64"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Resultado\n",
    "normalized_total"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Análise Demográfica"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sexo</th>\n",
       "      <th>Login</th>\n",
       "      <th>Idade</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Aelalis34</td>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Eolo46</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Assastnya25</td>\n",
       "      <td>34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Pheusrical25</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Aela59</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Tanimnya91</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Undjaskla97</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Iathenudil29</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Sondenasta63</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Hilaerin92</td>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Chamosia29</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Sally64</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Iskossa88</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Seorithstilis90</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Sundast29</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Haellysu29</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Sundista85</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Aenarap34</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Iskista88</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Assossa43</td>\n",
       "      <td>31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Irith83</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Iaralrgue74</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Deural48</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Chanosia65</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Qarwen67</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Idai61</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Aerithllora36</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Ilariarin45</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Phaedai25</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Eulaeria40</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>729</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Iskichinya81</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>730</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Hiadanurin36</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>731</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Tyaelly53</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>732</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Shidai42</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>733</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Bartassaya73</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>734</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Mindosiasya28</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>736</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Indirrian56</td>\n",
       "      <td>19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>737</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Sondim68</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>739</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Cosadar58</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>741</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Leyirra83</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>742</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Inguron55</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>746</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Ralasti48</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>747</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Lamon28</td>\n",
       "      <td>32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>748</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Isri49</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>750</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Eollym91</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>752</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Yalostiphos68</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>755</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Ailaesuir66</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>756</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Siasri67</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>758</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Ryastycal90</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>761</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Raeduerin33</td>\n",
       "      <td>28</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>764</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Assassasda84</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>766</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Nitherian58</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>768</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Chamucosda93</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>769</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Frichilsasya78</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>770</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Aenasu69</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>771</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Lassista97</td>\n",
       "      <td>24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>772</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Sidap51</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>773</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Chamadarsda63</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>778</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Quelaton80</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>779</th>\n",
       "      <td>Feminino</td>\n",
       "      <td>Alim85</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>573 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          Sexo            Login  Idade\n",
       "0    Masculino        Aelalis34     38\n",
       "1    Masculino           Eolo46     21\n",
       "2    Masculino      Assastnya25     34\n",
       "3    Masculino     Pheusrical25     21\n",
       "4    Masculino           Aela59     23\n",
       "5    Masculino       Tanimnya91     20\n",
       "6    Masculino      Undjaskla97     20\n",
       "7     Feminino     Iathenudil29     29\n",
       "8    Masculino     Sondenasta63     25\n",
       "9    Masculino       Hilaerin92     31\n",
       "10   Masculino       Chamosia29     24\n",
       "11   Masculino          Sally64     20\n",
       "12   Masculino        Iskossa88     30\n",
       "13   Masculino  Seorithstilis90     23\n",
       "14   Masculino        Sundast29     40\n",
       "15   Masculino       Haellysu29     21\n",
       "16    Feminino       Sundista85     22\n",
       "17    Feminino        Aenarap34     22\n",
       "18   Masculino        Iskista88     28\n",
       "19   Masculino        Assossa43     31\n",
       "20   Masculino          Irith83     24\n",
       "21   Masculino      Iaralrgue74     15\n",
       "22    Feminino         Deural48     11\n",
       "23   Masculino       Chanosia65     19\n",
       "24   Masculino         Qarwen67     11\n",
       "25   Masculino           Idai61     21\n",
       "26   Masculino    Aerithllora36     29\n",
       "28   Masculino      Ilariarin45     15\n",
       "29    Feminino        Phaedai25     16\n",
       "30    Feminino       Eulaeria40     21\n",
       "..         ...              ...    ...\n",
       "729  Masculino     Iskichinya81     16\n",
       "730   Feminino     Hiadanurin36     10\n",
       "731   Feminino        Tyaelly53     20\n",
       "732   Feminino         Shidai42     23\n",
       "733  Masculino     Bartassaya73     16\n",
       "734  Masculino    Mindosiasya28     13\n",
       "736  Masculino      Indirrian56     19\n",
       "737  Masculino         Sondim68     22\n",
       "739   Feminino        Cosadar58     35\n",
       "741  Masculino        Leyirra83     24\n",
       "742  Masculino        Inguron55     26\n",
       "746  Masculino        Ralasti48     35\n",
       "747  Masculino          Lamon28     32\n",
       "748  Masculino           Isri49     15\n",
       "750  Masculino         Eollym91     23\n",
       "752   Feminino    Yalostiphos68     15\n",
       "755   Feminino      Ailaesuir66     22\n",
       "756  Masculino         Siasri67     22\n",
       "758  Masculino      Ryastycal90     20\n",
       "761  Masculino      Raeduerin33     28\n",
       "764  Masculino     Assassasda84     25\n",
       "766   Feminino      Nitherian58     22\n",
       "768  Masculino     Chamucosda93     21\n",
       "769  Masculino   Frichilsasya78     24\n",
       "770  Masculino         Aenasu69     22\n",
       "771  Masculino       Lassista97     24\n",
       "772  Masculino          Sidap51     15\n",
       "773  Masculino    Chamadarsda63     21\n",
       "778  Masculino       Quelaton80     20\n",
       "779   Feminino           Alim85     23\n",
       "\n",
       "[573 rows x 3 columns]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "player_demographics"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Cálculos básicos\n",
    "age_bins = [0, 9.99, 14.99, 19.99, 24.99, 29.99, 34.99, 39.99, 999]\n",
    "age_bracket = [\"Menos de 10\", \"10 a 14\", \"15 a 19\", \"20 a 24\", \"25 a 29\", \"30 a 34\", \"35 a 39\", \"Mais de 40\"]\n",
    "\n",
    "purchase_file[\"Range de Idades\"] = pd.cut(purchase_file[\"Idade\"], age_bins, labels=age_bracket)\n",
    "\n",
    "# Cálculos básicos\n",
    "age_demographics_count = purchase_file[\"Range de Idades\"].value_counts()\n",
    "age_demographics_average_item_price = purchase_file.groupby([\"Range de Idades\"]).mean()[\"Valor\"]\n",
    "age_demographics_total_item_price = purchase_file.groupby([\"Range de Idades\"]).sum()[\"Valor\"]\n",
    "age_demographics_percent = (age_demographics_count / player_count) * 100\n",
    "\n",
    "# Dataframe para os resultados\n",
    "age_demographics = pd.DataFrame({\"Contagem\": age_demographics_count, \"%\": age_demographics_percent, \"Valor Unitario\": age_demographics_average_item_price, \"Valor Total de Compra\": age_demographics_total_item_price})\n",
    "\n",
    "# Data Munging\n",
    "age_demographics [\"Valor Unitario\"] = age_demographics[\"Valor Unitario\"].map(\"${:,.2f}\".format)\n",
    "age_demographics [\"Valor Total de Compra\"] = age_demographics[\"Valor Total de Compra\"].map(\"${:,.2f}\".format)\n",
    "age_demographics [\"%\"] = age_demographics[\"%\"].map(\"{:,.2f}%\".format)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sexo</th>\n",
       "      <th>Login</th>\n",
       "      <th>Idade</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Aelalis34</td>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Eolo46</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Assastnya25</td>\n",
       "      <td>34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Pheusrical25</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Masculino</td>\n",
       "      <td>Aela59</td>\n",
       "      <td>23</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        Sexo         Login  Idade\n",
       "0  Masculino     Aelalis34     38\n",
       "1  Masculino        Eolo46     21\n",
       "2  Masculino   Assastnya25     34\n",
       "3  Masculino  Pheusrical25     21\n",
       "4  Masculino        Aela59     23"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Resultado\n",
    "player_demographics.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>%</th>\n",
       "      <th>Contagem</th>\n",
       "      <th>Valor Total de Compra</th>\n",
       "      <th>Valor Unitario</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>10 a 14</th>\n",
       "      <td>6.11%</td>\n",
       "      <td>35</td>\n",
       "      <td>$96.95</td>\n",
       "      <td>$2.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15 a 19</th>\n",
       "      <td>23.21%</td>\n",
       "      <td>133</td>\n",
       "      <td>$386.42</td>\n",
       "      <td>$2.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20 a 24</th>\n",
       "      <td>58.64%</td>\n",
       "      <td>336</td>\n",
       "      <td>$978.77</td>\n",
       "      <td>$2.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25 a 29</th>\n",
       "      <td>21.82%</td>\n",
       "      <td>125</td>\n",
       "      <td>$370.33</td>\n",
       "      <td>$2.96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30 a 34</th>\n",
       "      <td>11.17%</td>\n",
       "      <td>64</td>\n",
       "      <td>$197.25</td>\n",
       "      <td>$3.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35 a 39</th>\n",
       "      <td>7.33%</td>\n",
       "      <td>42</td>\n",
       "      <td>$119.40</td>\n",
       "      <td>$2.84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mais de 40</th>\n",
       "      <td>2.97%</td>\n",
       "      <td>17</td>\n",
       "      <td>$53.75</td>\n",
       "      <td>$3.16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Menos de 10</th>\n",
       "      <td>4.89%</td>\n",
       "      <td>28</td>\n",
       "      <td>$83.46</td>\n",
       "      <td>$2.98</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  %  Contagem Valor Total de Compra Valor Unitario\n",
       "10 a 14       6.11%        35                $96.95          $2.77\n",
       "15 a 19      23.21%       133               $386.42          $2.91\n",
       "20 a 24      58.64%       336               $978.77          $2.91\n",
       "25 a 29      21.82%       125               $370.33          $2.96\n",
       "30 a 34      11.17%        64               $197.25          $3.08\n",
       "35 a 39       7.33%        42               $119.40          $2.84\n",
       "Mais de 40    2.97%        17                $53.75          $3.16\n",
       "Menos de 10   4.89%        28                $83.46          $2.98"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Resultado\n",
    "age_demographics = age_demographics.sort_index()\n",
    "age_demographics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Top Spenders"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Número de Compras</th>\n",
       "      <th>Valor Médio de Compra</th>\n",
       "      <th>Valor Total de Compra</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Login</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Qarwen67</th>\n",
       "      <td>4</td>\n",
       "      <td>$2.49</td>\n",
       "      <td>$9.97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sondim43</th>\n",
       "      <td>3</td>\n",
       "      <td>$3.13</td>\n",
       "      <td>$9.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Tillyrin30</th>\n",
       "      <td>3</td>\n",
       "      <td>$3.06</td>\n",
       "      <td>$9.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Lisistaya47</th>\n",
       "      <td>3</td>\n",
       "      <td>$3.06</td>\n",
       "      <td>$9.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Tyisriphos58</th>\n",
       "      <td>2</td>\n",
       "      <td>$4.59</td>\n",
       "      <td>$9.18</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Número de Compras Valor Médio de Compra Valor Total de Compra\n",
       "Login                                                                      \n",
       "Qarwen67                      4                 $2.49                 $9.97\n",
       "Sondim43                      3                 $3.13                 $9.38\n",
       "Tillyrin30                    3                 $3.06                 $9.19\n",
       "Lisistaya47                   3                 $3.06                 $9.19\n",
       "Tyisriphos58                  2                 $4.59                 $9.18"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Cálculos básicos\n",
    "user_total = purchase_file.groupby([\"Login\"]).sum()[\"Valor\"].rename(\"Valor Total de Compra\")\n",
    "user_average = purchase_file.groupby([\"Login\"]).mean()[\"Valor\"].rename(\"Valor Médio de Compra\")\n",
    "user_count = purchase_file.groupby([\"Login\"]).count()[\"Valor\"].rename(\"Número de Compras\")\n",
    "\n",
    "# Dataframe para os resultados\n",
    "user_data = pd.DataFrame({\"Valor Total de Compra\": user_total, \"Valor Médio de Compra\": user_average, \"Número de Compras\": user_count})\n",
    "\n",
    "# Data Munging\n",
    "user_data [\"Valor Total de Compra\"] = user_data[\"Valor Total de Compra\"].map(\"${:,.2f}\".format)\n",
    "user_data [\"Valor Médio de Compra\"] = user_data[\"Valor Médio de Compra\"].map(\"${:,.2f}\".format)\n",
    "user_data.sort_values(\"Valor Total de Compra\", ascending=False).head(5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Número de Compras</th>\n",
       "      <th>Valor Médio de Compra</th>\n",
       "      <th>Valor Total de Compra</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Login</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Adairialis76</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.46</td>\n",
       "      <td>$2.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aduephos78</th>\n",
       "      <td>3</td>\n",
       "      <td>$2.23</td>\n",
       "      <td>$6.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aeduera68</th>\n",
       "      <td>3</td>\n",
       "      <td>$1.93</td>\n",
       "      <td>$5.80</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aela49</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.46</td>\n",
       "      <td>$2.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aela59</th>\n",
       "      <td>1</td>\n",
       "      <td>$1.27</td>\n",
       "      <td>$1.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aelalis34</th>\n",
       "      <td>2</td>\n",
       "      <td>$2.53</td>\n",
       "      <td>$5.06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aelin32</th>\n",
       "      <td>1</td>\n",
       "      <td>$3.14</td>\n",
       "      <td>$3.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aeliriam77</th>\n",
       "      <td>2</td>\n",
       "      <td>$3.36</td>\n",
       "      <td>$6.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aeliriarin93</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.04</td>\n",
       "      <td>$2.04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aeliru63</th>\n",
       "      <td>2</td>\n",
       "      <td>$4.49</td>\n",
       "      <td>$8.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aellyria80</th>\n",
       "      <td>1</td>\n",
       "      <td>$4.32</td>\n",
       "      <td>$4.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aellyrialis39</th>\n",
       "      <td>1</td>\n",
       "      <td>$3.15</td>\n",
       "      <td>$3.15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aellysup38</th>\n",
       "      <td>1</td>\n",
       "      <td>$3.61</td>\n",
       "      <td>$3.61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aelollo59</th>\n",
       "      <td>1</td>\n",
       "      <td>$1.55</td>\n",
       "      <td>$1.55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aenarap34</th>\n",
       "      <td>1</td>\n",
       "      <td>$1.65</td>\n",
       "      <td>$1.65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aenasu69</th>\n",
       "      <td>1</td>\n",
       "      <td>$3.27</td>\n",
       "      <td>$3.27</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aeral43</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.72</td>\n",
       "      <td>$2.72</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aeral85</th>\n",
       "      <td>1</td>\n",
       "      <td>$4.25</td>\n",
       "      <td>$4.25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aeral97</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.35</td>\n",
       "      <td>$2.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aeri84</th>\n",
       "      <td>2</td>\n",
       "      <td>$3.30</td>\n",
       "      <td>$6.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aerillorin70</th>\n",
       "      <td>1</td>\n",
       "      <td>$1.88</td>\n",
       "      <td>$1.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aerithllora36</th>\n",
       "      <td>3</td>\n",
       "      <td>$3.48</td>\n",
       "      <td>$10.45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aerithnucal56</th>\n",
       "      <td>2</td>\n",
       "      <td>$1.59</td>\n",
       "      <td>$3.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aerithnuphos61</th>\n",
       "      <td>1</td>\n",
       "      <td>$1.69</td>\n",
       "      <td>$1.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aerithriaphos45</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.38</td>\n",
       "      <td>$2.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aesty51</th>\n",
       "      <td>1</td>\n",
       "      <td>$1.82</td>\n",
       "      <td>$1.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aesur96</th>\n",
       "      <td>1</td>\n",
       "      <td>$4.66</td>\n",
       "      <td>$4.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aethe80</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.32</td>\n",
       "      <td>$2.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aethedru70</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.97</td>\n",
       "      <td>$2.97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Aidain51</th>\n",
       "      <td>2</td>\n",
       "      <td>$3.42</td>\n",
       "      <td>$6.84</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Undjaskla97</th>\n",
       "      <td>1</td>\n",
       "      <td>$4.57</td>\n",
       "      <td>$4.57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Undjasksya56</th>\n",
       "      <td>1</td>\n",
       "      <td>$4.53</td>\n",
       "      <td>$4.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Undotesta33</th>\n",
       "      <td>1</td>\n",
       "      <td>$3.90</td>\n",
       "      <td>$3.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Wailin72</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.04</td>\n",
       "      <td>$2.04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Whaestysu86</th>\n",
       "      <td>1</td>\n",
       "      <td>$4.08</td>\n",
       "      <td>$4.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yadacal26</th>\n",
       "      <td>1</td>\n",
       "      <td>$1.93</td>\n",
       "      <td>$1.93</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yadaisuir65</th>\n",
       "      <td>2</td>\n",
       "      <td>$4.28</td>\n",
       "      <td>$8.56</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yadanun74</th>\n",
       "      <td>3</td>\n",
       "      <td>$3.03</td>\n",
       "      <td>$9.09</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yalaeria91</th>\n",
       "      <td>1</td>\n",
       "      <td>$1.88</td>\n",
       "      <td>$1.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yaliru88</th>\n",
       "      <td>1</td>\n",
       "      <td>$3.71</td>\n",
       "      <td>$3.71</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yalo71</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.41</td>\n",
       "      <td>$2.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yalostiphos68</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.37</td>\n",
       "      <td>$2.37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yaralnura48</th>\n",
       "      <td>2</td>\n",
       "      <td>$2.10</td>\n",
       "      <td>$4.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yararmol43</th>\n",
       "      <td>1</td>\n",
       "      <td>$1.55</td>\n",
       "      <td>$1.55</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yarirarn35</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.88</td>\n",
       "      <td>$2.88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yaristi64</th>\n",
       "      <td>1</td>\n",
       "      <td>$1.24</td>\n",
       "      <td>$1.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yarithllodeu72</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.19</td>\n",
       "      <td>$2.19</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yarithphos28</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.35</td>\n",
       "      <td>$2.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yarithsurgue62</th>\n",
       "      <td>2</td>\n",
       "      <td>$2.41</td>\n",
       "      <td>$4.81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yarmol79</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.91</td>\n",
       "      <td>$2.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yarolwen77</th>\n",
       "      <td>2</td>\n",
       "      <td>$3.49</td>\n",
       "      <td>$6.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yasriphos60</th>\n",
       "      <td>3</td>\n",
       "      <td>$3.47</td>\n",
       "      <td>$10.40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yasrisu92</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.60</td>\n",
       "      <td>$2.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yasur35</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.78</td>\n",
       "      <td>$2.78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yasur85</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.04</td>\n",
       "      <td>$2.04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yasurra52</th>\n",
       "      <td>1</td>\n",
       "      <td>$3.14</td>\n",
       "      <td>$3.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yathecal72</th>\n",
       "      <td>2</td>\n",
       "      <td>$3.88</td>\n",
       "      <td>$7.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Yathecal82</th>\n",
       "      <td>1</td>\n",
       "      <td>$2.41</td>\n",
       "      <td>$2.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Zhisrisu83</th>\n",
       "      <td>2</td>\n",
       "      <td>$1.23</td>\n",
       "      <td>$2.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Zontibe81</th>\n",
       "      <td>1</td>\n",
       "      <td>$3.71</td>\n",
       "      <td>$3.71</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>573 rows × 3 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                 Número de Compras Valor Médio de Compra Valor Total de Compra\n",
       "Login                                                                         \n",
       "Adairialis76                     1                 $2.46                 $2.46\n",
       "Aduephos78                       3                 $2.23                 $6.70\n",
       "Aeduera68                        3                 $1.93                 $5.80\n",
       "Aela49                           1                 $2.46                 $2.46\n",
       "Aela59                           1                 $1.27                 $1.27\n",
       "Aelalis34                        2                 $2.53                 $5.06\n",
       "Aelin32                          1                 $3.14                 $3.14\n",
       "Aeliriam77                       2                 $3.36                 $6.72\n",
       "Aeliriarin93                     1                 $2.04                 $2.04\n",
       "Aeliru63                         2                 $4.49                 $8.98\n",
       "Aellyria80                       1                 $4.32                 $4.32\n",
       "Aellyrialis39                    1                 $3.15                 $3.15\n",
       "Aellysup38                       1                 $3.61                 $3.61\n",
       "Aelollo59                        1                 $1.55                 $1.55\n",
       "Aenarap34                        1                 $1.65                 $1.65\n",
       "Aenasu69                         1                 $3.27                 $3.27\n",
       "Aeral43                          1                 $2.72                 $2.72\n",
       "Aeral85                          1                 $4.25                 $4.25\n",
       "Aeral97                          1                 $2.35                 $2.35\n",
       "Aeri84                           2                 $3.30                 $6.60\n",
       "Aerillorin70                     1                 $1.88                 $1.88\n",
       "Aerithllora36                    3                 $3.48                $10.45\n",
       "Aerithnucal56                    2                 $1.59                 $3.18\n",
       "Aerithnuphos61                   1                 $1.69                 $1.69\n",
       "Aerithriaphos45                  1                 $2.38                 $2.38\n",
       "Aesty51                          1                 $1.82                 $1.82\n",
       "Aesur96                          1                 $4.66                 $4.66\n",
       "Aethe80                          1                 $2.32                 $2.32\n",
       "Aethedru70                       1                 $2.97                 $2.97\n",
       "Aidain51                         2                 $3.42                 $6.84\n",
       "...                            ...                   ...                   ...\n",
       "Undjaskla97                      1                 $4.57                 $4.57\n",
       "Undjasksya56                     1                 $4.53                 $4.53\n",
       "Undotesta33                      1                 $3.90                 $3.90\n",
       "Wailin72                         1                 $2.04                 $2.04\n",
       "Whaestysu86                      1                 $4.08                 $4.08\n",
       "Yadacal26                        1                 $1.93                 $1.93\n",
       "Yadaisuir65                      2                 $4.28                 $8.56\n",
       "Yadanun74                        3                 $3.03                 $9.09\n",
       "Yalaeria91                       1                 $1.88                 $1.88\n",
       "Yaliru88                         1                 $3.71                 $3.71\n",
       "Yalo71                           1                 $2.41                 $2.41\n",
       "Yalostiphos68                    1                 $2.37                 $2.37\n",
       "Yaralnura48                      2                 $2.10                 $4.19\n",
       "Yararmol43                       1                 $1.55                 $1.55\n",
       "Yarirarn35                       1                 $2.88                 $2.88\n",
       "Yaristi64                        1                 $1.24                 $1.24\n",
       "Yarithllodeu72                   1                 $2.19                 $2.19\n",
       "Yarithphos28                     1                 $2.35                 $2.35\n",
       "Yarithsurgue62                   2                 $2.41                 $4.81\n",
       "Yarmol79                         1                 $2.91                 $2.91\n",
       "Yarolwen77                       2                 $3.49                 $6.98\n",
       "Yasriphos60                      3                 $3.47                $10.40\n",
       "Yasrisu92                        1                 $2.60                 $2.60\n",
       "Yasur35                          1                 $2.78                 $2.78\n",
       "Yasur85                          1                 $2.04                 $2.04\n",
       "Yasurra52                        1                 $3.14                 $3.14\n",
       "Yathecal72                       2                 $3.88                 $7.77\n",
       "Yathecal82                       1                 $2.41                 $2.41\n",
       "Zhisrisu83                       2                 $1.23                 $2.46\n",
       "Zontibe81                        1                 $3.71                 $3.71\n",
       "\n",
       "[573 rows x 3 columns]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Resultado \n",
    "user_data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Itens Mais Populares"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Número de Compras</th>\n",
       "      <th>Valor Médio de Compra</th>\n",
       "      <th>Valor Total de Compra</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Nome do Item</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Final Critic</th>\n",
       "      <td>14</td>\n",
       "      <td>$2.76</td>\n",
       "      <td>$38.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Arcane Gem</th>\n",
       "      <td>11</td>\n",
       "      <td>$2.23</td>\n",
       "      <td>$24.53</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Betrayal, Whisper of Grieving Widows</th>\n",
       "      <td>11</td>\n",
       "      <td>$2.35</td>\n",
       "      <td>$25.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Stormcaller</th>\n",
       "      <td>10</td>\n",
       "      <td>$3.46</td>\n",
       "      <td>$34.65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Woeful Adamantite Claymore</th>\n",
       "      <td>9</td>\n",
       "      <td>$1.24</td>\n",
       "      <td>$11.16</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                      Número de Compras Valor Médio de Compra  \\\n",
       "Nome do Item                                                                    \n",
       "Final Critic                                         14                 $2.76   \n",
       "Arcane Gem                                           11                 $2.23   \n",
       "Betrayal, Whisper of Grieving Widows                 11                 $2.35   \n",
       "Stormcaller                                          10                 $3.46   \n",
       "Woeful Adamantite Claymore                            9                 $1.24   \n",
       "\n",
       "                                     Valor Total de Compra  \n",
       "Nome do Item                                                \n",
       "Final Critic                                        $38.60  \n",
       "Arcane Gem                                          $24.53  \n",
       "Betrayal, Whisper of Grieving Widows                $25.85  \n",
       "Stormcaller                                         $34.65  \n",
       "Woeful Adamantite Claymore                          $11.16  "
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Cálculos básicos\n",
    "user_total = purchase_file.groupby([\"Nome do Item\"]).sum()[\"Valor\"].rename(\"Valor Total de Compra\")\n",
    "user_average = purchase_file.groupby([\"Nome do Item\"]).mean()[\"Valor\"].rename(\"Valor Médio de Compra\")\n",
    "user_count = purchase_file.groupby([\"Nome do Item\"]).count()[\"Valor\"].rename(\"Número de Compras\")\n",
    "\n",
    "# Dataframe para os resultados\n",
    "user_data = pd.DataFrame({\"Valor Total de Compra\": user_total, \"Valor Médio de Compra\": user_average, \"Número de Compras\": user_count})\n",
    "\n",
    "# Data Munging\n",
    "user_data [\"Valor Total de Compra\"] = user_data[\"Valor Total de Compra\"].map(\"${:,.2f}\".format)\n",
    "user_data [\"Valor Médio de Compra\"] = user_data[\"Valor Médio de Compra\"].map(\"${:,.2f}\".format)\n",
    "user_data.sort_values(\"Número de Compras\", ascending=False).head(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Itens Mais Lucrativos"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Número de Compras</th>\n",
       "      <th>Valor Médio de Compra</th>\n",
       "      <th>Valor Total de Compra</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Nome do Item</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Shadowsteel</th>\n",
       "      <td>5</td>\n",
       "      <td>$1.98</td>\n",
       "      <td>$9.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Souleater</th>\n",
       "      <td>3</td>\n",
       "      <td>$3.27</td>\n",
       "      <td>$9.81</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Shadow Strike, Glory of Ending Hope</th>\n",
       "      <td>5</td>\n",
       "      <td>$1.93</td>\n",
       "      <td>$9.65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Heartseeker, Reaver of Souls</th>\n",
       "      <td>3</td>\n",
       "      <td>$3.21</td>\n",
       "      <td>$9.63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Agatha</th>\n",
       "      <td>5</td>\n",
       "      <td>$1.91</td>\n",
       "      <td>$9.55</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     Número de Compras Valor Médio de Compra  \\\n",
       "Nome do Item                                                                   \n",
       "Shadowsteel                                          5                 $1.98   \n",
       "Souleater                                            3                 $3.27   \n",
       "Shadow Strike, Glory of Ending Hope                  5                 $1.93   \n",
       "Heartseeker, Reaver of Souls                         3                 $3.21   \n",
       "Agatha                                               5                 $1.91   \n",
       "\n",
       "                                    Valor Total de Compra  \n",
       "Nome do Item                                               \n",
       "Shadowsteel                                         $9.90  \n",
       "Souleater                                           $9.81  \n",
       "Shadow Strike, Glory of Ending Hope                 $9.65  \n",
       "Heartseeker, Reaver of Souls                        $9.63  \n",
       "Agatha                                              $9.55  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Cálculos básicos\n",
    "user_total = purchase_file.groupby([\"Nome do Item\"]).sum()[\"Valor\"].rename(\"Valor Total de Compra\")\n",
    "user_average = purchase_file.groupby([\"Nome do Item\"]).mean()[\"Valor\"].rename(\"Valor Médio de Compra\")\n",
    "user_count = purchase_file.groupby([\"Nome do Item\"]).count()[\"Valor\"].rename(\"Número de Compras\")\n",
    "\n",
    "# Dataframe para os resultados\n",
    "user_data = pd.DataFrame({\"Valor Total de Compra\": user_total, \"Valor Médio de Compra\": user_average, \"Número de Compras\": user_count})\n",
    "\n",
    "# Data Munging\n",
    "user_data [\"Valor Total de Compra\"] = user_data[\"Valor Total de Compra\"].map(\"${:,.2f}\".format)\n",
    "user_data [\"Valor Médio de Compra\"] = user_data[\"Valor Médio de Compra\"].map(\"${:,.2f}\".format)\n",
    "user_data.sort_values(\"Valor Total de Compra\", ascending=False).head(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## Fim"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "### Obrigado - Data Science Academy - <a href=\"http://facebook.com/dsacademybr\">facebook.com/dsacademybr</a>"
   ]
  }
 ],
 "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.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
