diff --git a/exercicios/para-casa/atividade.ipynb b/exercicios/para-casa/atividade.ipynb
new file mode 100644
index 0000000..c4a908a
--- /dev/null
+++ b/exercicios/para-casa/atividade.ipynb
@@ -0,0 +1,183 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Introdução\n",
+ "\n",
+ "Este conjunto de dados contém informações sobre as vítimas e sobreviventes do naufrágio do navio Titanic. Os campos incluem o ID do passageiro, se é sobrevivente ou não, classe econômica, o nome, sexo, idade, números de irmãos, número de irmãos, pais, número do ticket, o preço do ticket, o número da cabine e o porto de embarcação.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "df = pd.read_csv(\"titanic.csv\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def processar_titanic_dataset(df_titanic):\n",
+ " # Realiza a leitura do arquivo CSV\n",
+ " df_titanic = pd.read_csv(df_titanic)\n",
+ "\n",
+ " # Tratamento para remover linhas com valores ausentes:\n",
+ " df_titanic = df_titanic.dropna()\n",
+ "\n",
+ " # Deleção de colunas\n",
+ " columns_to_drop = [\"Sex\", \"Age\"]\n",
+ " df_titanic = df_titanic.drop(columns=columns_to_drop)\n",
+ "\n",
+ " # Sort de valores\n",
+ " df_titanic = df_titanic.sort_values(by=\"Ticket\")\n",
+ "\n",
+ " # Remoção de nulos\n",
+ " df_titanic = df_titanic.dropna(\"Survived\")\n",
+ "\n",
+ " # Reset de índice\n",
+ " df_titanic = df_titanic.reset_index(drop=True)\n",
+ "\n",
+ "\n",
+ " return df_titanic\n",
+ "\n",
+ "# Caminho para o arquivo \"titanic.csv\"\n",
+ "df_titanic = processar_titanic_dataset(\"titanic.csv\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'pd' is not defined",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32mc:\\Users\\jheni\\on26-python-s12-pandas-numpy-II\\exercicios\\para-casa\\atividade.ipynb Cell 4\u001b[0m line \u001b[0;36m4\n\u001b[0;32m 1\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mmatplotlib\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpyplot\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mplt\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[39m# Importando o dataframe\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m df \u001b[39m=\u001b[39m pd\u001b[39m.\u001b[39mread_csv(\u001b[39m\"\u001b[39m\u001b[39mtitanic.csv\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m 6\u001b[0m \u001b[39m# Calcular a idade média dos passageiros\u001b[39;00m\n\u001b[0;32m 7\u001b[0m idade_media \u001b[39m=\u001b[39m df[\u001b[39m\"\u001b[39m\u001b[39mAge\u001b[39m\u001b[39m\"\u001b[39m]\u001b[39m.\u001b[39mmean()\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'pd' is not defined"
+ ]
+ }
+ ],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# Importando o dataframe\n",
+ "df = pd.read_csv(\"titanic.csv\")\n",
+ "\n",
+ "# Calcular a idade média dos passageiros\n",
+ "idade_media = df[\"Age\"].mean()\n",
+ "\n",
+ "# Plotar o gráfico\n",
+ "plt.hist(df[\"Age\"], bins=10, color=\"blue\")\n",
+ "plt.axvline(idade_media, color=\"red\", linestyle=\"--\")\n",
+ "plt.title(\"Distribuição de idade dos passageiros\")\n",
+ "plt.xlabel(\"Idade\")\n",
+ "plt.ylabel(\"Número de passageiros\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# Importar o dataframe\n",
+ "df = pd.read_csv(\"titanic.csv\")\n",
+ "\n",
+ "# Plotar o gráfico\n",
+ "plt.pie(df[\"Sex\"].value_counts(), labels=[\"Homem\", \"Mulher\"], colors=[\"blue\", \"red\"])\n",
+ "plt.title(\"Distribuição de sexo dos passageiros\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "# Importar o dataframe\n",
+ "df = pd.read_csv(\"titanic.csv\")\n",
+ "\n",
+ "# Calcular a proporção de sobreviventes por sexo\n",
+ "prop_homens_sobreviventes = df.loc[df[\"Survived\"] == 1, \"Sex\"].value_counts()[0] / df[\"Sex\"].value_counts()[0]\n",
+ "prop_mulheres_sobreviventes = df.loc[df[\"Survived\"] == 1, \"Sex\"].value_counts()[1] / df[\"Sex\"].value_counts()[1]\n",
+ "\n",
+ "# Plotar o gráfico\n",
+ "plt.bar([\"Homem\", \"Mulher\"], [prop_homens_sobreviventes, prop_mulheres_sobreviventes], color=[\"blue\", \"red\"])\n",
+ "plt.title(\"Distribuição de sobreviventes por sexo\")\n",
+ "plt.xlabel(\"Sexo\")\n",
+ "plt.ylabel(\"Proporção de sobreviventes\")\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Insights Gráfico 01\n",
+ "\n",
+ "A idade média dos passageiros é de 29 anos.\n",
+ "A maioria dos passageiros tinha entre 20 e 30 anos.\n",
+ "Havia um número significativo de passageiros com menos de 10 anos."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Insights Gráfico 02\n",
+ "\n",
+ "A maioria dos passageiros era homem.\n",
+ "As mulheres representavam cerca de 20% da população do navio."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Insights Gráfico 03\n",
+ "\n",
+ "As mulheres tinham uma probabilidade muito maior de sobreviver do que os homens.\n",
+ "Cerca de 75% das mulheres sobreviveram, enquanto apenas 20% dos homens sobreviveram."
+ ]
+ }
+ ],
+ "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.10.11"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/material/titanic.csv b/exercicios/para-casa/titanic.csv
similarity index 100%
rename from material/titanic.csv
rename to exercicios/para-casa/titanic.csv
diff --git a/material/aula_s12.ipynb b/material/aula_s12.ipynb
index 6a3a013..34f0f65 100644
--- a/material/aula_s12.ipynb
+++ b/material/aula_s12.ipynb
@@ -115,6 +115,8 @@
{
"cell_type": "code",
"execution_count": 1,
+<<<<<<< HEAD
+=======
"metadata": {},
"outputs": [],
"source": [
@@ -125,6 +127,7 @@
{
"cell_type": "code",
"execution_count": 2,
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
"metadata": {
"id": "_eorJ3GNS_mm",
"outputId": "14f2b233-cc14-4f8a-a041-98b4cb90d2cc"
@@ -379,13 +382,22 @@
"[891 rows x 12 columns]"
]
},
+<<<<<<< HEAD
+ "execution_count": 1,
+=======
"execution_count": 2,
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
+<<<<<<< HEAD
+ "import pandas as pd\n",
+ "\n",
+=======
"# carregando o dataset \n",
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
"df = pd.read_csv(\"titanic.csv\")\n",
"df"
]
@@ -401,13 +413,24 @@
},
{
"cell_type": "code",
+<<<<<<< HEAD
+ "execution_count": 5,
+=======
"execution_count": 3,
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
"metadata": {
"id": "ZuehjTU7S_mt",
"outputId": "6ce66e1f-01d4-4889-f97f-50d5edae71e6"
},
"outputs": [
{
+<<<<<<< HEAD
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "['IdPassageiro', 'Sobreviveu', 'Classe', 'Nome', 'Sexo', 'Idade', 'NumeroIrmaos', 'NumeroPais', 'NumeroTicket', 'PrecoTicket', 'NumeroCabine', 'PortoEmbarcacao']\n"
+ ]
+=======
"data": {
"text/plain": [
"['IdPassageiro',\n",
@@ -427,6 +450,7 @@
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
}
],
"source": [
@@ -2522,6 +2546,38 @@
"- Utilizar a função loc para obter a idade e sobrevivência do passageiro;\n"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "KeyError",
+ "evalue": "'Nome'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\indexes\\base.py:3790\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3789\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m-> 3790\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_engine\u001b[39m.\u001b[39;49mget_loc(casted_key)\n\u001b[0;32m 3791\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mKeyError\u001b[39;00m \u001b[39mas\u001b[39;00m err:\n",
+ "File \u001b[1;32mindex.pyx:152\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mindex.pyx:181\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:7080\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:7088\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
+ "\u001b[1;31mKeyError\u001b[0m: 'Nome'",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32mc:\\Users\\jheni\\on26-python-s12-pandas-numpy-II\\material\\aula_s12.ipynb Cell 27\u001b[0m line \u001b[0;36m1\n\u001b[1;32m----> 1\u001b[0m df_filtro \u001b[39m=\u001b[39m df[df[\u001b[39m'\u001b[39;49m\u001b[39mNome\u001b[39;49m\u001b[39m'\u001b[39;49m]\u001b[39m.\u001b[39mstr\u001b[39m.\u001b[39mcontains(\u001b[39m'\u001b[39m\u001b[39mJack\u001b[39m\u001b[39m'\u001b[39m)]\n\u001b[0;32m 2\u001b[0m df_filtro\u001b[39m.\u001b[39mshape()\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\frame.py:3896\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3894\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcolumns\u001b[39m.\u001b[39mnlevels \u001b[39m>\u001b[39m \u001b[39m1\u001b[39m:\n\u001b[0;32m 3895\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_getitem_multilevel(key)\n\u001b[1;32m-> 3896\u001b[0m indexer \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mcolumns\u001b[39m.\u001b[39;49mget_loc(key)\n\u001b[0;32m 3897\u001b[0m \u001b[39mif\u001b[39;00m is_integer(indexer):\n\u001b[0;32m 3898\u001b[0m indexer \u001b[39m=\u001b[39m [indexer]\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\indexes\\base.py:3797\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3792\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(casted_key, \u001b[39mslice\u001b[39m) \u001b[39mor\u001b[39;00m (\n\u001b[0;32m 3793\u001b[0m \u001b[39misinstance\u001b[39m(casted_key, abc\u001b[39m.\u001b[39mIterable)\n\u001b[0;32m 3794\u001b[0m \u001b[39mand\u001b[39;00m \u001b[39many\u001b[39m(\u001b[39misinstance\u001b[39m(x, \u001b[39mslice\u001b[39m) \u001b[39mfor\u001b[39;00m x \u001b[39min\u001b[39;00m casted_key)\n\u001b[0;32m 3795\u001b[0m ):\n\u001b[0;32m 3796\u001b[0m \u001b[39mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[1;32m-> 3797\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mKeyError\u001b[39;00m(key) \u001b[39mfrom\u001b[39;00m \u001b[39merr\u001b[39;00m\n\u001b[0;32m 3798\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mTypeError\u001b[39;00m:\n\u001b[0;32m 3799\u001b[0m \u001b[39m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[0;32m 3800\u001b[0m \u001b[39m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[0;32m 3801\u001b[0m \u001b[39m# the TypeError.\u001b[39;00m\n\u001b[0;32m 3802\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_check_indexing_error(key)\n",
+ "\u001b[1;31mKeyError\u001b[0m: 'Nome'"
+ ]
+ }
+ ],
+ "source": [
+ "df_filtro = df[df['Nome'].str.contains('Jack')]\n",
+ "df_filtro.shape()"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -3197,6 +3253,34 @@
"- Obter o valor máximo e mínimo pago por passageiros em cada genero"
]
},
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "KeyError",
+ "evalue": "'Sexo'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32mc:\\Users\\jheni\\on26-python-s12-pandas-numpy-II\\material\\aula_s12.ipynb Cell 35\u001b[0m line \u001b[0;36m1\n\u001b[1;32m----> 1\u001b[0m dado_agrupado \u001b[39m=\u001b[39m df\u001b[39m.\u001b[39;49mgroupby(\u001b[39m'\u001b[39;49m\u001b[39mSexo\u001b[39;49m\u001b[39m'\u001b[39;49m)\n\u001b[0;32m 2\u001b[0m contagem_passageiros \u001b[39m=\u001b[39m dado_agrupado[\u001b[39m'\u001b[39m\u001b[39mIdPassageiro\u001b[39m\u001b[39m'\u001b[39m]\u001b[39m.\u001b[39mcount()\n\u001b[0;32m 4\u001b[0m \u001b[39mprint\u001b[39m(\u001b[39m\"\u001b[39m\u001b[39mcontagem de passageiros\u001b[39m\u001b[39m\"\u001b[39m)\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\frame.py:8872\u001b[0m, in \u001b[0;36mDataFrame.groupby\u001b[1;34m(self, by, axis, level, as_index, sort, group_keys, observed, dropna)\u001b[0m\n\u001b[0;32m 8869\u001b[0m \u001b[39mif\u001b[39;00m level \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m \u001b[39mand\u001b[39;00m by \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m 8870\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mTypeError\u001b[39;00m(\u001b[39m\"\u001b[39m\u001b[39mYou have to supply one of \u001b[39m\u001b[39m'\u001b[39m\u001b[39mby\u001b[39m\u001b[39m'\u001b[39m\u001b[39m and \u001b[39m\u001b[39m'\u001b[39m\u001b[39mlevel\u001b[39m\u001b[39m'\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[1;32m-> 8872\u001b[0m \u001b[39mreturn\u001b[39;00m DataFrameGroupBy(\n\u001b[0;32m 8873\u001b[0m obj\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m,\n\u001b[0;32m 8874\u001b[0m keys\u001b[39m=\u001b[39;49mby,\n\u001b[0;32m 8875\u001b[0m axis\u001b[39m=\u001b[39;49maxis,\n\u001b[0;32m 8876\u001b[0m level\u001b[39m=\u001b[39;49mlevel,\n\u001b[0;32m 8877\u001b[0m as_index\u001b[39m=\u001b[39;49mas_index,\n\u001b[0;32m 8878\u001b[0m sort\u001b[39m=\u001b[39;49msort,\n\u001b[0;32m 8879\u001b[0m group_keys\u001b[39m=\u001b[39;49mgroup_keys,\n\u001b[0;32m 8880\u001b[0m observed\u001b[39m=\u001b[39;49mobserved,\n\u001b[0;32m 8881\u001b[0m dropna\u001b[39m=\u001b[39;49mdropna,\n\u001b[0;32m 8882\u001b[0m )\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\groupby\\groupby.py:1274\u001b[0m, in \u001b[0;36mGroupBy.__init__\u001b[1;34m(self, obj, keys, axis, level, grouper, exclusions, selection, as_index, sort, group_keys, observed, dropna)\u001b[0m\n\u001b[0;32m 1271\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mdropna \u001b[39m=\u001b[39m dropna\n\u001b[0;32m 1273\u001b[0m \u001b[39mif\u001b[39;00m grouper \u001b[39mis\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[1;32m-> 1274\u001b[0m grouper, exclusions, obj \u001b[39m=\u001b[39m get_grouper(\n\u001b[0;32m 1275\u001b[0m obj,\n\u001b[0;32m 1276\u001b[0m keys,\n\u001b[0;32m 1277\u001b[0m axis\u001b[39m=\u001b[39;49maxis,\n\u001b[0;32m 1278\u001b[0m level\u001b[39m=\u001b[39;49mlevel,\n\u001b[0;32m 1279\u001b[0m sort\u001b[39m=\u001b[39;49msort,\n\u001b[0;32m 1280\u001b[0m observed\u001b[39m=\u001b[39;49m\u001b[39mFalse\u001b[39;49;00m \u001b[39mif\u001b[39;49;00m observed \u001b[39mis\u001b[39;49;00m lib\u001b[39m.\u001b[39;49mno_default \u001b[39melse\u001b[39;49;00m observed,\n\u001b[0;32m 1281\u001b[0m dropna\u001b[39m=\u001b[39;49m\u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mdropna,\n\u001b[0;32m 1282\u001b[0m )\n\u001b[0;32m 1284\u001b[0m \u001b[39mif\u001b[39;00m observed \u001b[39mis\u001b[39;00m lib\u001b[39m.\u001b[39mno_default:\n\u001b[0;32m 1285\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39many\u001b[39m(ping\u001b[39m.\u001b[39m_passed_categorical \u001b[39mfor\u001b[39;00m ping \u001b[39min\u001b[39;00m grouper\u001b[39m.\u001b[39mgroupings):\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\groupby\\grouper.py:1009\u001b[0m, in \u001b[0;36mget_grouper\u001b[1;34m(obj, key, axis, level, sort, observed, validate, dropna)\u001b[0m\n\u001b[0;32m 1007\u001b[0m in_axis, level, gpr \u001b[39m=\u001b[39m \u001b[39mFalse\u001b[39;00m, gpr, \u001b[39mNone\u001b[39;00m\n\u001b[0;32m 1008\u001b[0m \u001b[39melse\u001b[39;00m:\n\u001b[1;32m-> 1009\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mKeyError\u001b[39;00m(gpr)\n\u001b[0;32m 1010\u001b[0m \u001b[39melif\u001b[39;00m \u001b[39misinstance\u001b[39m(gpr, Grouper) \u001b[39mand\u001b[39;00m gpr\u001b[39m.\u001b[39mkey \u001b[39mis\u001b[39;00m \u001b[39mnot\u001b[39;00m \u001b[39mNone\u001b[39;00m:\n\u001b[0;32m 1011\u001b[0m \u001b[39m# Add key to exclusions\u001b[39;00m\n\u001b[0;32m 1012\u001b[0m exclusions\u001b[39m.\u001b[39madd(gpr\u001b[39m.\u001b[39mkey)\n",
+ "\u001b[1;31mKeyError\u001b[0m: 'Sexo'"
+ ]
+ }
+ ],
+ "source": [
+ "dado_agrupado = df.groupby('Sexo')\n",
+ "contagem_passageiros = dado_agrupado['IdPassageiro'].count()\n",
+ "\n",
+ "print(\"contagem de passageiros\")\n",
+ "print(contagem_passageiros)"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {
@@ -3241,7 +3325,113 @@
},
{
"cell_type": "code",
+<<<<<<< HEAD
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Collecting matplotlib\n",
+ " Downloading matplotlib-3.8.0-cp310-cp310-win_amd64.whl (7.6 MB)\n",
+ " ---------------------------------------- 0.0/7.6 MB ? eta -:--:--\n",
+ " --------------------------------------- 0.2/7.6 MB 10.9 MB/s eta 0:00:01\n",
+ " --------------------------------------- 0.2/7.6 MB 10.9 MB/s eta 0:00:01\n",
+ " --- ------------------------------------ 0.6/7.6 MB 4.7 MB/s eta 0:00:02\n",
+ " ----- ---------------------------------- 1.0/7.6 MB 5.8 MB/s eta 0:00:02\n",
+ " -------- ------------------------------- 1.6/7.6 MB 7.3 MB/s eta 0:00:01\n",
+ " --------- ------------------------------ 1.9/7.6 MB 7.5 MB/s eta 0:00:01\n",
+ " ------------ --------------------------- 2.3/7.6 MB 7.3 MB/s eta 0:00:01\n",
+ " -------------- ------------------------- 2.8/7.6 MB 7.8 MB/s eta 0:00:01\n",
+ " ----------------- ---------------------- 3.4/7.6 MB 8.3 MB/s eta 0:00:01\n",
+ " -------------------- ------------------- 3.8/7.6 MB 8.5 MB/s eta 0:00:01\n",
+ " ----------------------- ---------------- 4.4/7.6 MB 8.6 MB/s eta 0:00:01\n",
+ " -------------------------- ------------- 5.1/7.6 MB 9.0 MB/s eta 0:00:01\n",
+ " ------------------------------ --------- 5.7/7.6 MB 9.4 MB/s eta 0:00:01\n",
+ " -------------------------------- ------- 6.2/7.6 MB 9.4 MB/s eta 0:00:01\n",
+ " ------------------------------------ --- 6.9/7.6 MB 9.6 MB/s eta 0:00:01\n",
+ " ------------------------------------- -- 7.1/7.6 MB 9.3 MB/s eta 0:00:01\n",
+ " --------------------------------------- 7.6/7.6 MB 9.4 MB/s eta 0:00:01\n",
+ " ---------------------------------------- 7.6/7.6 MB 8.6 MB/s eta 0:00:00\n",
+ "Requirement already satisfied: packaging>=20.0 in c:\\users\\jheni\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from matplotlib) (23.2)\n",
+ "Requirement already satisfied: numpy<2,>=1.21 in c:\\users\\jheni\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from matplotlib) (1.26.0)\n",
+ "Collecting contourpy>=1.0.1\n",
+ " Downloading contourpy-1.1.1-cp310-cp310-win_amd64.whl (477 kB)\n",
+ " ---------------------------------------- 0.0/478.0 kB ? eta -:--:--\n",
+ " ------------------------------------ 471.0/478.0 kB 28.8 MB/s eta 0:00:01\n",
+ " ------------------------------------- 478.0/478.0 kB 10.0 MB/s eta 0:00:00\n",
+ "Collecting fonttools>=4.22.0\n",
+ " Downloading fonttools-4.43.1-cp310-cp310-win_amd64.whl (2.1 MB)\n",
+ " ---------------------------------------- 0.0/2.1 MB ? eta -:--:--\n",
+ " ----- ---------------------------------- 0.3/2.1 MB 19.8 MB/s eta 0:00:01\n",
+ " ----- ---------------------------------- 0.3/2.1 MB 19.8 MB/s eta 0:00:01\n",
+ " ----- ---------------------------------- 0.3/2.1 MB 19.8 MB/s eta 0:00:01\n",
+ " ------------ --------------------------- 0.7/2.1 MB 3.2 MB/s eta 0:00:01\n",
+ " --------------- ------------------------ 0.8/2.1 MB 3.8 MB/s eta 0:00:01\n",
+ " ------------------------- -------------- 1.4/2.1 MB 4.4 MB/s eta 0:00:01\n",
+ " --------------------------- ------------ 1.5/2.1 MB 4.4 MB/s eta 0:00:01\n",
+ " ------------------------------ --------- 1.6/2.1 MB 4.2 MB/s eta 0:00:01\n",
+ " ------------------------------ --------- 1.6/2.1 MB 4.2 MB/s eta 0:00:01\n",
+ " ------------------------------ --------- 1.6/2.1 MB 4.2 MB/s eta 0:00:01\n",
+ " ------------------------------ --------- 1.6/2.1 MB 4.2 MB/s eta 0:00:01\n",
+ " ------------------------------ --------- 1.6/2.1 MB 4.2 MB/s eta 0:00:01\n",
+ " ------------------------------ --------- 1.6/2.1 MB 4.2 MB/s eta 0:00:01\n",
+ " ------------------------------ --------- 1.6/2.1 MB 4.2 MB/s eta 0:00:01\n",
+ " ------------------------------ --------- 1.6/2.1 MB 4.2 MB/s eta 0:00:01\n",
+ " ------------------------------ --------- 1.6/2.1 MB 4.2 MB/s eta 0:00:01\n",
+ " ------------------------------ --------- 1.6/2.1 MB 4.2 MB/s eta 0:00:01\n",
+ " ------------------------------ --------- 1.6/2.1 MB 4.2 MB/s eta 0:00:01\n",
+ " ------------------------------- -------- 1.7/2.1 MB 1.8 MB/s eta 0:00:01\n",
+ " --------------------------------------- 2.1/2.1 MB 2.3 MB/s eta 0:00:01\n",
+ " ---------------------------------------- 2.1/2.1 MB 2.1 MB/s eta 0:00:00\n",
+ "Requirement already satisfied: python-dateutil>=2.7 in c:\\users\\jheni\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from matplotlib) (2.8.2)\n",
+ "Collecting kiwisolver>=1.0.1\n",
+ " Downloading kiwisolver-1.4.5-cp310-cp310-win_amd64.whl (56 kB)\n",
+ " ---------------------------------------- 0.0/56.1 kB ? eta -:--:--\n",
+ " ---------------------------------------- 56.1/56.1 kB 3.1 MB/s eta 0:00:00\n",
+ "Collecting pillow>=6.2.0\n",
+ " Downloading Pillow-10.1.0-cp310-cp310-win_amd64.whl (2.6 MB)\n",
+ " ---------------------------------------- 0.0/2.6 MB ? eta -:--:--\n",
+ " ------ --------------------------------- 0.5/2.6 MB 14.2 MB/s eta 0:00:01\n",
+ " -------------- ------------------------- 1.0/2.6 MB 12.1 MB/s eta 0:00:01\n",
+ " ---------------------- ----------------- 1.5/2.6 MB 11.6 MB/s eta 0:00:01\n",
+ " ---------------------------- ----------- 1.8/2.6 MB 11.7 MB/s eta 0:00:01\n",
+ " ------------------------------- -------- 2.0/2.6 MB 9.2 MB/s eta 0:00:01\n",
+ " --------------------------------------- 2.6/2.6 MB 9.7 MB/s eta 0:00:01\n",
+ " ---------------------------------------- 2.6/2.6 MB 8.3 MB/s eta 0:00:00\n",
+ "Collecting pyparsing>=2.3.1\n",
+ " Downloading pyparsing-3.1.1-py3-none-any.whl (103 kB)\n",
+ " ---------------------------------------- 0.0/103.1 kB ? eta -:--:--\n",
+ " -------------------------------------- 103.1/103.1 kB 6.2 MB/s eta 0:00:00\n",
+ "Collecting cycler>=0.10\n",
+ " Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB)\n",
+ "Requirement already satisfied: six>=1.5 in c:\\users\\jheni\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\n",
+ "Installing collected packages: pyparsing, pillow, kiwisolver, fonttools, cycler, contourpy, matplotlib\n",
+ "Successfully installed contourpy-1.1.1 cycler-0.12.1 fonttools-4.43.1 kiwisolver-1.4.5 matplotlib-3.8.0 pillow-10.1.0 pyparsing-3.1.1\n",
+ "Note: you may need to restart the kernel to use updated packages.\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "[notice] A new release of pip is available: 23.0.1 -> 23.3.1\n",
+ "[notice] To update, run: C:\\Users\\jheni\\AppData\\Local\\Microsoft\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\python.exe -m pip install --upgrade pip\n"
+ ]
+ }
+ ],
+ "source": [
+ "%pip install matplotlib\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+=======
"execution_count": 58,
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
@@ -3252,6 +3442,26 @@
},
"outputs": [
{
+<<<<<<< HEAD
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "Matplotlib is building the font cache; this may take a moment.\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "[]"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+=======
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
"data": {
"image/png": "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",
"text/plain": [
@@ -3283,13 +3493,38 @@
},
{
"cell_type": "code",
+<<<<<<< HEAD
+ "execution_count": 17,
+=======
"execution_count": 59,
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
"metadata": {
"id": "bmZg5LjvS_nJ",
"outputId": "f3874a08-9ec1-4235-8db1-2250deeb54ea"
},
"outputs": [
{
+<<<<<<< HEAD
+ "ename": "KeyError",
+ "evalue": "'Classe'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\indexes\\base.py:3790\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3789\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m-> 3790\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_engine\u001b[39m.\u001b[39;49mget_loc(casted_key)\n\u001b[0;32m 3791\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mKeyError\u001b[39;00m \u001b[39mas\u001b[39;00m err:\n",
+ "File \u001b[1;32mindex.pyx:152\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mindex.pyx:181\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:7080\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:7088\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
+ "\u001b[1;31mKeyError\u001b[0m: 'Classe'",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32mc:\\Users\\jheni\\on26-python-s12-pandas-numpy-II\\material\\aula_s12.ipynb Cell 42\u001b[0m line \u001b[0;36m5\n\u001b[0;32m 1\u001b[0m \u001b[39m# Criação de um gráfico de barras: matplotlib + Pandas\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[39m# plot() + bar\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mmatplotlib\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpyplot\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mplt\u001b[39;00m\n\u001b[1;32m----> 5\u001b[0m contagem_passageiros \u001b[39m=\u001b[39m df[\u001b[39m'\u001b[39;49m\u001b[39mClasse\u001b[39;49m\u001b[39m'\u001b[39;49m]\u001b[39m.\u001b[39mvalue_counts()\n\u001b[0;32m 6\u001b[0m contagem_passageiros\u001b[39m.\u001b[39mplot(kind\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mbar\u001b[39m\u001b[39m'\u001b[39m)\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\frame.py:3896\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3894\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcolumns\u001b[39m.\u001b[39mnlevels \u001b[39m>\u001b[39m \u001b[39m1\u001b[39m:\n\u001b[0;32m 3895\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_getitem_multilevel(key)\n\u001b[1;32m-> 3896\u001b[0m indexer \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mcolumns\u001b[39m.\u001b[39;49mget_loc(key)\n\u001b[0;32m 3897\u001b[0m \u001b[39mif\u001b[39;00m is_integer(indexer):\n\u001b[0;32m 3898\u001b[0m indexer \u001b[39m=\u001b[39m [indexer]\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\indexes\\base.py:3797\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3792\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(casted_key, \u001b[39mslice\u001b[39m) \u001b[39mor\u001b[39;00m (\n\u001b[0;32m 3793\u001b[0m \u001b[39misinstance\u001b[39m(casted_key, abc\u001b[39m.\u001b[39mIterable)\n\u001b[0;32m 3794\u001b[0m \u001b[39mand\u001b[39;00m \u001b[39many\u001b[39m(\u001b[39misinstance\u001b[39m(x, \u001b[39mslice\u001b[39m) \u001b[39mfor\u001b[39;00m x \u001b[39min\u001b[39;00m casted_key)\n\u001b[0;32m 3795\u001b[0m ):\n\u001b[0;32m 3796\u001b[0m \u001b[39mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[1;32m-> 3797\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mKeyError\u001b[39;00m(key) \u001b[39mfrom\u001b[39;00m \u001b[39merr\u001b[39;00m\n\u001b[0;32m 3798\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mTypeError\u001b[39;00m:\n\u001b[0;32m 3799\u001b[0m \u001b[39m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[0;32m 3800\u001b[0m \u001b[39m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[0;32m 3801\u001b[0m \u001b[39m# the TypeError.\u001b[39;00m\n\u001b[0;32m 3802\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_check_indexing_error(key)\n",
+ "\u001b[1;31mKeyError\u001b[0m: 'Classe'"
+ ]
+=======
"data": {
"text/plain": [
"Classe\n",
@@ -3302,6 +3537,7 @@
"execution_count": 59,
"metadata": {},
"output_type": "execute_result"
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
}
],
"source": [
@@ -3320,6 +3556,9 @@
},
{
"cell_type": "code",
+<<<<<<< HEAD
+ "execution_count": 19,
+=======
"execution_count": 62,
"metadata": {},
"outputs": [
@@ -3392,12 +3631,34 @@
{
"cell_type": "code",
"execution_count": 68,
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
"metadata": {
"id": "zpZmI2e9S_nJ",
"outputId": "3f16a4f4-3039-4426-ac46-d0f8178d87a6"
},
"outputs": [
{
+<<<<<<< HEAD
+ "ename": "KeyError",
+ "evalue": "'Classe'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\indexes\\base.py:3790\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3789\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m-> 3790\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_engine\u001b[39m.\u001b[39;49mget_loc(casted_key)\n\u001b[0;32m 3791\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mKeyError\u001b[39;00m \u001b[39mas\u001b[39;00m err:\n",
+ "File \u001b[1;32mindex.pyx:152\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mindex.pyx:181\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:7080\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:7088\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
+ "\u001b[1;31mKeyError\u001b[0m: 'Classe'",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32mc:\\Users\\jheni\\on26-python-s12-pandas-numpy-II\\material\\aula_s12.ipynb Cell 43\u001b[0m line \u001b[0;36m1\n\u001b[1;32m----> 1\u001b[0m contagem_passageiros \u001b[39m=\u001b[39m df[\u001b[39m'\u001b[39;49m\u001b[39mClasse\u001b[39;49m\u001b[39m'\u001b[39;49m]\u001b[39m.\u001b[39mvalue_counts()\n\u001b[0;32m 2\u001b[0m contagem_passageiros\u001b[39m.\u001b[39mplot(kind\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mbar\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 4\u001b[0m plt\u001b[39m.\u001b[39mxlabel(\u001b[39m'\u001b[39m\u001b[39mClasse do Passageiro\u001b[39m\u001b[39m'\u001b[39m)\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\frame.py:3896\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3894\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcolumns\u001b[39m.\u001b[39mnlevels \u001b[39m>\u001b[39m \u001b[39m1\u001b[39m:\n\u001b[0;32m 3895\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_getitem_multilevel(key)\n\u001b[1;32m-> 3896\u001b[0m indexer \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mcolumns\u001b[39m.\u001b[39;49mget_loc(key)\n\u001b[0;32m 3897\u001b[0m \u001b[39mif\u001b[39;00m is_integer(indexer):\n\u001b[0;32m 3898\u001b[0m indexer \u001b[39m=\u001b[39m [indexer]\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\indexes\\base.py:3797\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3792\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(casted_key, \u001b[39mslice\u001b[39m) \u001b[39mor\u001b[39;00m (\n\u001b[0;32m 3793\u001b[0m \u001b[39misinstance\u001b[39m(casted_key, abc\u001b[39m.\u001b[39mIterable)\n\u001b[0;32m 3794\u001b[0m \u001b[39mand\u001b[39;00m \u001b[39many\u001b[39m(\u001b[39misinstance\u001b[39m(x, \u001b[39mslice\u001b[39m) \u001b[39mfor\u001b[39;00m x \u001b[39min\u001b[39;00m casted_key)\n\u001b[0;32m 3795\u001b[0m ):\n\u001b[0;32m 3796\u001b[0m \u001b[39mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[1;32m-> 3797\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mKeyError\u001b[39;00m(key) \u001b[39mfrom\u001b[39;00m \u001b[39merr\u001b[39;00m\n\u001b[0;32m 3798\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mTypeError\u001b[39;00m:\n\u001b[0;32m 3799\u001b[0m \u001b[39m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[0;32m 3800\u001b[0m \u001b[39m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[0;32m 3801\u001b[0m \u001b[39m# the TypeError.\u001b[39;00m\n\u001b[0;32m 3802\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_check_indexing_error(key)\n",
+ "\u001b[1;31mKeyError\u001b[0m: 'Classe'"
+ ]
+=======
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Número de Passageiros por Classe')"
@@ -3416,6 +3677,7 @@
},
"metadata": {},
"output_type": "display_data"
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
}
],
"source": [
@@ -3461,13 +3723,38 @@
},
{
"cell_type": "code",
+<<<<<<< HEAD
+ "execution_count": 21,
+=======
"execution_count": 74,
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
"metadata": {
"id": "RzV9cvoOS_nK",
"outputId": "eea06c73-5805-427d-f2b1-b82d3481b8a8"
},
"outputs": [
{
+<<<<<<< HEAD
+ "ename": "KeyError",
+ "evalue": "'Idade'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\indexes\\base.py:3790\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3789\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m-> 3790\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_engine\u001b[39m.\u001b[39;49mget_loc(casted_key)\n\u001b[0;32m 3791\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mKeyError\u001b[39;00m \u001b[39mas\u001b[39;00m err:\n",
+ "File \u001b[1;32mindex.pyx:152\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mindex.pyx:181\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:7080\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:7088\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
+ "\u001b[1;31mKeyError\u001b[0m: 'Idade'",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32mc:\\Users\\jheni\\on26-python-s12-pandas-numpy-II\\material\\aula_s12.ipynb Cell 45\u001b[0m line \u001b[0;36m3\n\u001b[0;32m 1\u001b[0m \u001b[39m# Criando um histograma com a distribuição de idade em passageiros do Titanic\u001b[39;00m\n\u001b[1;32m----> 3\u001b[0m df[\u001b[39m'\u001b[39;49m\u001b[39mIdade\u001b[39;49m\u001b[39m'\u001b[39;49m]\u001b[39m.\u001b[39mplot\u001b[39m.\u001b[39mhist(bins\u001b[39m=\u001b[39m\u001b[39m10\u001b[39m, edgecolor\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mblack\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 5\u001b[0m plt\u001b[39m.\u001b[39mxlabel(\u001b[39m'\u001b[39m\u001b[39mIdade\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 6\u001b[0m plt\u001b[39m.\u001b[39mylabel(\u001b[39m'\u001b[39m\u001b[39mQuantidade\u001b[39m\u001b[39m'\u001b[39m)\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\frame.py:3896\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3894\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcolumns\u001b[39m.\u001b[39mnlevels \u001b[39m>\u001b[39m \u001b[39m1\u001b[39m:\n\u001b[0;32m 3895\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_getitem_multilevel(key)\n\u001b[1;32m-> 3896\u001b[0m indexer \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mcolumns\u001b[39m.\u001b[39;49mget_loc(key)\n\u001b[0;32m 3897\u001b[0m \u001b[39mif\u001b[39;00m is_integer(indexer):\n\u001b[0;32m 3898\u001b[0m indexer \u001b[39m=\u001b[39m [indexer]\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\indexes\\base.py:3797\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3792\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(casted_key, \u001b[39mslice\u001b[39m) \u001b[39mor\u001b[39;00m (\n\u001b[0;32m 3793\u001b[0m \u001b[39misinstance\u001b[39m(casted_key, abc\u001b[39m.\u001b[39mIterable)\n\u001b[0;32m 3794\u001b[0m \u001b[39mand\u001b[39;00m \u001b[39many\u001b[39m(\u001b[39misinstance\u001b[39m(x, \u001b[39mslice\u001b[39m) \u001b[39mfor\u001b[39;00m x \u001b[39min\u001b[39;00m casted_key)\n\u001b[0;32m 3795\u001b[0m ):\n\u001b[0;32m 3796\u001b[0m \u001b[39mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[1;32m-> 3797\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mKeyError\u001b[39;00m(key) \u001b[39mfrom\u001b[39;00m \u001b[39merr\u001b[39;00m\n\u001b[0;32m 3798\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mTypeError\u001b[39;00m:\n\u001b[0;32m 3799\u001b[0m \u001b[39m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[0;32m 3800\u001b[0m \u001b[39m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[0;32m 3801\u001b[0m \u001b[39m# the TypeError.\u001b[39;00m\n\u001b[0;32m 3802\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_check_indexing_error(key)\n",
+ "\u001b[1;31mKeyError\u001b[0m: 'Idade'"
+ ]
+=======
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Distribuição de Idade')"
@@ -3486,6 +3773,7 @@
},
"metadata": {},
"output_type": "display_data"
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
}
],
"source": [
@@ -3509,6 +3797,43 @@
},
{
"cell_type": "code",
+<<<<<<< HEAD
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "KeyError",
+ "evalue": "'Idade'",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\indexes\\base.py:3790\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3789\u001b[0m \u001b[39mtry\u001b[39;00m:\n\u001b[1;32m-> 3790\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49m_engine\u001b[39m.\u001b[39;49mget_loc(casted_key)\n\u001b[0;32m 3791\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mKeyError\u001b[39;00m \u001b[39mas\u001b[39;00m err:\n",
+ "File \u001b[1;32mindex.pyx:152\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mindex.pyx:181\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:7080\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
+ "File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:7088\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
+ "\u001b[1;31mKeyError\u001b[0m: 'Idade'",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32mc:\\Users\\jheni\\on26-python-s12-pandas-numpy-II\\material\\aula_s12.ipynb Cell 47\u001b[0m line \u001b[0;36m1\n\u001b[1;32m----> 1\u001b[0m df[\u001b[39m'\u001b[39;49m\u001b[39mIdade\u001b[39;49m\u001b[39m'\u001b[39;49m]\u001b[39m.\u001b[39mplot\u001b[39m.\u001b[39mhist(bins\u001b[39m=\u001b[39m\u001b[39m10\u001b[39m, edgecolor\u001b[39m=\u001b[39m\u001b[39m'\u001b[39m\u001b[39mpink\u001b[39m\u001b[39m'\u001b[39m)\n\u001b[0;32m 2\u001b[0m taxa_sob_idade \u001b[39m=\u001b[39m df\u001b[39m.\u001b[39mgroupby(\u001b[39m'\u001b[39m\u001b[39mIdade\u001b[39m\u001b[39m'\u001b[39m)[\u001b[39m'\u001b[39m\u001b[39mSobreviveu\u001b[39m\u001b[39m'\u001b[39m]\u001b[39m.\u001b[39mmean()\n\u001b[0;32m 3\u001b[0m taxa_sob_idade\u001b[39m.\u001b[39mplot\u001b[39m.\u001b[39mbar()\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\frame.py:3896\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3894\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39mcolumns\u001b[39m.\u001b[39mnlevels \u001b[39m>\u001b[39m \u001b[39m1\u001b[39m:\n\u001b[0;32m 3895\u001b[0m \u001b[39mreturn\u001b[39;00m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_getitem_multilevel(key)\n\u001b[1;32m-> 3896\u001b[0m indexer \u001b[39m=\u001b[39m \u001b[39mself\u001b[39;49m\u001b[39m.\u001b[39;49mcolumns\u001b[39m.\u001b[39;49mget_loc(key)\n\u001b[0;32m 3897\u001b[0m \u001b[39mif\u001b[39;00m is_integer(indexer):\n\u001b[0;32m 3898\u001b[0m indexer \u001b[39m=\u001b[39m [indexer]\n",
+ "File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages\\pandas\\core\\indexes\\base.py:3797\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3792\u001b[0m \u001b[39mif\u001b[39;00m \u001b[39misinstance\u001b[39m(casted_key, \u001b[39mslice\u001b[39m) \u001b[39mor\u001b[39;00m (\n\u001b[0;32m 3793\u001b[0m \u001b[39misinstance\u001b[39m(casted_key, abc\u001b[39m.\u001b[39mIterable)\n\u001b[0;32m 3794\u001b[0m \u001b[39mand\u001b[39;00m \u001b[39many\u001b[39m(\u001b[39misinstance\u001b[39m(x, \u001b[39mslice\u001b[39m) \u001b[39mfor\u001b[39;00m x \u001b[39min\u001b[39;00m casted_key)\n\u001b[0;32m 3795\u001b[0m ):\n\u001b[0;32m 3796\u001b[0m \u001b[39mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[1;32m-> 3797\u001b[0m \u001b[39mraise\u001b[39;00m \u001b[39mKeyError\u001b[39;00m(key) \u001b[39mfrom\u001b[39;00m \u001b[39merr\u001b[39;00m\n\u001b[0;32m 3798\u001b[0m \u001b[39mexcept\u001b[39;00m \u001b[39mTypeError\u001b[39;00m:\n\u001b[0;32m 3799\u001b[0m \u001b[39m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[0;32m 3800\u001b[0m \u001b[39m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[0;32m 3801\u001b[0m \u001b[39m# the TypeError.\u001b[39;00m\n\u001b[0;32m 3802\u001b[0m \u001b[39mself\u001b[39m\u001b[39m.\u001b[39m_check_indexing_error(key)\n",
+ "\u001b[1;31mKeyError\u001b[0m: 'Idade'"
+ ]
+ }
+ ],
+ "source": [
+ "df['Idade'].plot.hist(bins=10, edgecolor='pink')\n",
+ "taxa_sob_idade = df.groupby('Idade')['Sobreviveu'].mean()\n",
+ "taxa_sob_idade.plot.bar()\n",
+ "\n",
+ "plt.xlabel('Idade')\n",
+ "plt.ylabel('Taxa de Sobrevivência')\n",
+ "plt.title('Taxa de Sobrevivência por Idade')\n",
+ "\n",
+ "plt.show()"
+=======
"execution_count": 86,
"metadata": {},
"outputs": [],
@@ -3625,6 +3950,7 @@
],
"source": [
"df[df['PortoEmbarcacao']]"
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
]
},
{
@@ -3655,7 +3981,44 @@
},
{
"cell_type": "code",
+<<<<<<< HEAD
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Requirement already satisfied: numpy in c:\\users\\jheni\\appdata\\local\\packages\\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\\localcache\\local-packages\\python310\\site-packages (1.26.0)Note: you may need to restart the kernel to use updated packages.\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "[notice] A new release of pip is available: 23.0.1 -> 23.3.1\n",
+ "[notice] To update, run: C:\\Users\\jheni\\AppData\\Local\\Microsoft\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\python.exe -m pip install --upgrade pip\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "%pip install numpy"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+=======
"execution_count": 92,
+>>>>>>> d0272b0e971aa8c3e9bbbff7edc83af7e132fef5
"metadata": {
"id": "6qrRb5EIS_nL"
},
@@ -4169,6 +4532,28 @@
"\n",
"https://matplotlib.org/"
]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "NameError",
+ "evalue": "name 'np' is not defined",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
+ "\u001b[1;32mc:\\Users\\jheni\\on26-python-s12-pandas-numpy-II\\material\\aula_s12.ipynb Cell 63\u001b[0m line \u001b[0;36m1\n\u001b[1;32m----> 1\u001b[0m array_numpy \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39mrandom\u001b[39m.\u001b[39mrandint(\u001b[39m5\u001b[39m,\u001b[39m50\u001b[39m,\u001b[39m500\u001b[39m)\n\u001b[0;32m 2\u001b[0m \u001b[39mprint\u001b[39m(array_numpy)\n",
+ "\u001b[1;31mNameError\u001b[0m: name 'np' is not defined"
+ ]
+ }
+ ],
+ "source": [
+ "array_numpy = np.random.randint(5,50,500)\n",
+ "print(array_numpy)"
+ ]
}
],
"metadata": {
@@ -4190,7 +4575,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.4"
+ "version": "3.10.11"
}
},
"nbformat": 4,