{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Python e Pandas - Nozioni e operazioni base\n", "\n", "**questo notebook è utile come riferimento *-cassetta degli attrezzi-* per le attività formative del DataLifeLab e per le esercitazioni in classe del corso di Open Notebook Science del dell'Università di Firenze**\n", "\n", "## Python - nozioni base\n", "\n", "* Assegnazione variabili, stampa e indentificazione tipo di dati della variabile\n", "* tipi di dati\n", " * Numeri e operatori\n", " * Stringhe\n", " * Liste\n", " * Dictionari\n", " * Valori Booleani\n", " * Tuple \n", " * Set\n", "* Operatori di comparazione\n", "* Condizioni (if, elif, else, try-except)\n", "* Cicli For\n", "* Cicli While\n", "* range()\n", "* list comprehension\n", "* funzioni\n", "* expressioni lambda\n", "* metodi\n", "\n", "## Python - operazioni su file\n", "\n", "* aprire un file in lettura\n", "* aprire un file in scrittura\n", "\n", "## Pandas - nozioni base\n", "\n", "* Importare correttamente la libreria\n", "* Crare un DataFrame\n", "* DataFrame e Serie\n", "* Filtrare DataFrame e Serie\n", "* Concatenazione e Merge\n", "* Tabella Pivot\n", "* Formato Wide e Long (melt)\n", "* Applicare una funzione alle celle\n", "* Aprire e creare un file\n", " * excel\n", " \n", "## Pandas - funzioni statistiche di base\n", "\n", "* Describe\n", "* media \n", "* deviazione standard\n", "* correlazione\n", "\n", "## Pandas - grafici di base \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Python\n", "## Assegnazione variabili, stampa e indentificazione tipo di dati della variabile" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [], "source": [ "variabile = \"qualsiasi cosa in python è un oggetto\"" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'qualsiasi cosa in python è un oggetto'" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "variabile" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "qualsiasi cosa in python è un oggetto\n" ] } ], "source": [ "print(variabile)" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "str" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(variabile)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## tipi di dati\n", "\n", "### Numeri" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# interi\n", "1" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.4" ] }, "execution_count": 117, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# numeri con virgola (float)\n", "1.4" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# operazioni\n", "1 + 1" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "3" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1 * 3" ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.5" ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1 / 2" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "16" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2 ** 4" ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 122, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# modulo o resto\n", "4 % 2" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 123, "metadata": {}, "output_type": "execute_result" } ], "source": [ "5 % 2" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "50" ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(2 + 3) * (5 + 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Stringhe" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'testo compreso fra apostrofi'" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "'testo compreso fra apostrofi'" ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'virgolette'" ] }, "execution_count": 126, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"virgolette\"" ] }, { "cell_type": "code", "execution_count": 127, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\" testo che contiene apostrofi ' \"" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\" testo che contiene apostrofi ' \"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Liste" ] }, { "cell_type": "code", "execution_count": 128, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3]" ] }, "execution_count": 128, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[1,2,3]" ] }, { "cell_type": "code", "execution_count": 129, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['ciao', 1, [1, 2]]" ] }, "execution_count": 129, "metadata": {}, "output_type": "execute_result" } ], "source": [ "['ciao',1,[1,2]]" ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [], "source": [ "la_mia_lista = ['a','b','c']" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [], "source": [ "la_mia_lista.append('d')" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['a', 'b', 'c', 'd']" ] }, "execution_count": 132, "metadata": {}, "output_type": "execute_result" } ], "source": [ "la_mia_lista" ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'a'" ] }, "execution_count": 133, "metadata": {}, "output_type": "execute_result" } ], "source": [ "la_mia_lista[0]" ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'b'" ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" } ], "source": [ "la_mia_lista[1]" ] }, { "cell_type": "code", "execution_count": 135, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['b', 'c', 'd']" ] }, "execution_count": 135, "metadata": {}, "output_type": "execute_result" } ], "source": [ "la_mia_lista[1:]" ] }, { "cell_type": "code", "execution_count": 136, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['a']" ] }, "execution_count": 136, "metadata": {}, "output_type": "execute_result" } ], "source": [ "la_mia_lista[:1]" ] }, { "cell_type": "code", "execution_count": 137, "metadata": {}, "outputs": [], "source": [ "la_mia_lista[0] = \"modifico l'elemento zero\"" ] }, { "cell_type": "code", "execution_count": 138, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[\"modifico l'elemento zero\", 'b', 'c', 'd']" ] }, "execution_count": 138, "metadata": {}, "output_type": "execute_result" } ], "source": [ "la_mia_lista" ] }, { "cell_type": "code", "execution_count": 139, "metadata": {}, "outputs": [], "source": [ "lista_nested = [1,2,3,[4,5,['secondo livello del terzo elemento']]] " ] }, { "cell_type": "code", "execution_count": 140, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 2, 3, [4, 5, ['secondo livello del terzo elemento']]]" ] }, "execution_count": 140, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lista_nested" ] }, { "cell_type": "code", "execution_count": 141, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[4, 5, ['secondo livello del terzo elemento']]" ] }, "execution_count": 141, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lista_nested[3]" ] }, { "cell_type": "code", "execution_count": 142, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['secondo livello del terzo elemento']" ] }, "execution_count": 142, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lista_nested[3][2]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dizionari" ] }, { "cell_type": "code", "execution_count": 143, "metadata": {}, "outputs": [], "source": [ "d = {'chiave1':'elemento1','chiave2':'elemento2'}" ] }, { "cell_type": "code", "execution_count": 144, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'chiave1': 'elemento1', 'chiave2': 'elemento2'}" ] }, "execution_count": 144, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d" ] }, { "cell_type": "code", "execution_count": 145, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'elemento1'" ] }, "execution_count": 145, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d['chiave1']" ] }, { "cell_type": "code", "execution_count": 146, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['chiave1', 'chiave2'])" ] }, "execution_count": 146, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d.keys()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Valori Booleani" ] }, { "cell_type": "code", "execution_count": 147, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 147, "metadata": {}, "output_type": "execute_result" } ], "source": [ "True" ] }, { "cell_type": "code", "execution_count": 148, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 148, "metadata": {}, "output_type": "execute_result" } ], "source": [ "False" ] }, { "cell_type": "code", "execution_count": 149, "metadata": {}, "outputs": [], "source": [ "## Turple" ] }, { "cell_type": "code", "execution_count": 150, "metadata": {}, "outputs": [], "source": [ "t = (1,2,3)" ] }, { "cell_type": "code", "execution_count": 151, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 151, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t[0]" ] }, { "cell_type": "code", "execution_count": 152, "metadata": {}, "outputs": [], "source": [ "# t[0] = 'NEW'\n", "# TypeError: 'tuple' object does not support item assignment" ] }, { "cell_type": "code", "execution_count": 153, "metadata": {}, "outputs": [], "source": [ "## Sets" ] }, { "cell_type": "code", "execution_count": 154, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1, 2, 3}" ] }, "execution_count": 154, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{1,2,3}" ] }, { "cell_type": "code", "execution_count": 155, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1, 2, 3}" ] }, "execution_count": 155, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{1,2,3,1,2,1,2,3,3,3,3,2,2,2,1,1,2}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Operatori di comparazione" ] }, { "cell_type": "code", "execution_count": 156, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 156, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1 > 2" ] }, { "cell_type": "code", "execution_count": 157, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 157, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1 < 2" ] }, { "cell_type": "code", "execution_count": 158, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 158, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1 >= 1" ] }, { "cell_type": "code", "execution_count": 159, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 159, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1 <= 4" ] }, { "cell_type": "code", "execution_count": 160, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 160, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1 == 1" ] }, { "cell_type": "code", "execution_count": 161, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 161, "metadata": {}, "output_type": "execute_result" } ], "source": [ "'hi' == 'bye'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Operatori Logici" ] }, { "cell_type": "code", "execution_count": 162, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 162, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1 > 2) and (2 < 3)" ] }, { "cell_type": "code", "execution_count": 163, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 163, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1 > 2) or (2 < 3)" ] }, { "cell_type": "code", "execution_count": 164, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 164, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1 == 2) or (2 == 3) or (4 == 4)" ] }, { "cell_type": "code", "execution_count": 165, "metadata": {}, "outputs": [], "source": [ "#Gestione eccezioni" ] }, { "cell_type": "code", "execution_count": 166, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "bene!\n" ] } ], "source": [ "if 1 < 2:\n", " print('bene!')" ] }, { "cell_type": "code", "execution_count": 167, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "bene\n" ] } ], "source": [ "if 1 < 2:\n", " print('bene')\n", "else:\n", " print('altrimenti')" ] }, { "cell_type": "code", "execution_count": 168, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "altrimenti\n" ] } ], "source": [ "if 1 > 2:\n", " print('bene')\n", "else:\n", " print('altrimenti')" ] }, { "cell_type": "code", "execution_count": 169, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "intermedio\n" ] } ], "source": [ "if 1 == 2:\n", " print('primo')\n", "elif 3 == 3:\n", " print('intermedio')\n", "else:\n", " print('ultimo')" ] }, { "cell_type": "code", "execution_count": 170, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "10\n" ] } ], "source": [ "try:\n", " print(\"10\")\n", "except:\n", " print(\"fai qualcosa in caso di errore\")" ] }, { "cell_type": "code", "execution_count": 171, "metadata": {}, "outputs": [], "source": [ "#print(int(\"mamma\"))\n", "#ValueError: invalid literal for int() with base 10: 'mamma'" ] }, { "cell_type": "code", "execution_count": 172, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fai qualcosa in caso di errore\n" ] } ], "source": [ "try:\n", " print(int(\"mamma\"))\n", "except:\n", " print(\"fai qualcosa in caso di errore\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cicli Loop" ] }, { "cell_type": "code", "execution_count": 173, "metadata": {}, "outputs": [], "source": [ "seq = [1,2,3,4,5]" ] }, { "cell_type": "code", "execution_count": 174, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "2\n", "3\n", "4\n", "5\n" ] } ], "source": [ "for item in seq:\n", " print(item)" ] }, { "cell_type": "code", "execution_count": 175, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Bene!\n", "Bene!\n", "Bene!\n", "Bene!\n", "Bene!\n" ] } ], "source": [ "for item in seq:\n", " print('Bene!')" ] }, { "cell_type": "code", "execution_count": 176, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n", "4\n", "6\n", "8\n", "10\n" ] } ], "source": [ "for nome_a_caso in seq:\n", " print(nome_a_caso+nome_a_caso)" ] }, { "cell_type": "code", "execution_count": 177, "metadata": {}, "outputs": [], "source": [ "## Ciclo while " ] }, { "cell_type": "code", "execution_count": 178, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "i is: 1\n", "i is: 2\n", "i is: 3\n", "i is: 4\n", "i is: 5\n", "i is: 6\n", "i is: 7\n", "i is: 8\n", "i is: 9\n" ] } ], "source": [ "i = 1\n", "while i < 10:\n", " print('i is: {}'.format(i))\n", " i = i+1" ] }, { "cell_type": "code", "execution_count": 179, "metadata": {}, "outputs": [], "source": [ "## range()" ] }, { "cell_type": "code", "execution_count": 180, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "range(0, 10)" ] }, "execution_count": 180, "metadata": {}, "output_type": "execute_result" } ], "source": [ "range(10)" ] }, { "cell_type": "code", "execution_count": 181, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n", "3\n", "4\n" ] } ], "source": [ "for i in range(5):\n", " print(i)" ] }, { "cell_type": "code", "execution_count": 182, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[0, 1, 2, 3, 4]" ] }, "execution_count": 182, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(range(5))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Metodi" ] }, { "cell_type": "code", "execution_count": 183, "metadata": {}, "outputs": [], "source": [ "st = 'Marco saluta il Mondo'" ] }, { "cell_type": "code", "execution_count": 184, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['__add__',\n", " '__class__',\n", " '__contains__',\n", " '__delattr__',\n", " '__dir__',\n", " '__doc__',\n", " '__eq__',\n", " '__format__',\n", " '__ge__',\n", " '__getattribute__',\n", " '__getitem__',\n", " '__getnewargs__',\n", " '__gt__',\n", " '__hash__',\n", " '__init__',\n", " '__init_subclass__',\n", " '__iter__',\n", " '__le__',\n", " '__len__',\n", " '__lt__',\n", " '__mod__',\n", " '__mul__',\n", " '__ne__',\n", " '__new__',\n", " '__reduce__',\n", " '__reduce_ex__',\n", " '__repr__',\n", " '__rmod__',\n", " '__rmul__',\n", " '__setattr__',\n", " '__sizeof__',\n", " '__str__',\n", " '__subclasshook__',\n", " 'capitalize',\n", " 'casefold',\n", " 'center',\n", " 'count',\n", " 'encode',\n", " 'endswith',\n", " 'expandtabs',\n", " 'find',\n", " 'format',\n", " 'format_map',\n", " 'index',\n", " 'isalnum',\n", " 'isalpha',\n", " 'isdecimal',\n", " 'isdigit',\n", " 'isidentifier',\n", " 'islower',\n", " 'isnumeric',\n", " 'isprintable',\n", " 'isspace',\n", " 'istitle',\n", " 'isupper',\n", " 'join',\n", " 'ljust',\n", " 'lower',\n", " 'lstrip',\n", " 'maketrans',\n", " 'partition',\n", " 'replace',\n", " 'rfind',\n", " 'rindex',\n", " 'rjust',\n", " 'rpartition',\n", " 'rsplit',\n", " 'rstrip',\n", " 'split',\n", " 'splitlines',\n", " 'startswith',\n", " 'strip',\n", " 'swapcase',\n", " 'title',\n", " 'translate',\n", " 'upper',\n", " 'zfill']" ] }, "execution_count": 184, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# lista di metodi e attributi\n", "dir(st)" ] }, { "cell_type": "code", "execution_count": 185, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'marco saluta il mondo'" ] }, "execution_count": 185, "metadata": {}, "output_type": "execute_result" } ], "source": [ "st.lower()" ] }, { "cell_type": "code", "execution_count": 186, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'MARCO SALUTA IL MONDO'" ] }, "execution_count": 186, "metadata": {}, "output_type": "execute_result" } ], "source": [ "st.upper()" ] }, { "cell_type": "code", "execution_count": 187, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Marco', 'saluta', 'il', 'Mondo']" ] }, "execution_count": 187, "metadata": {}, "output_type": "execute_result" } ], "source": [ "st.split()" ] }, { "cell_type": "code", "execution_count": 188, "metadata": {}, "outputs": [], "source": [ "post = 'si parla di scienza! #DataLifeLab'" ] }, { "cell_type": "code", "execution_count": 189, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['si parla di scienza! ', 'DataLifeLab']" ] }, "execution_count": 189, "metadata": {}, "output_type": "execute_result" } ], "source": [ "post.split('#')" ] }, { "cell_type": "code", "execution_count": 190, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'DataLifeLab'" ] }, "execution_count": 190, "metadata": {}, "output_type": "execute_result" } ], "source": [ "post.split('#')[1]" ] }, { "cell_type": "code", "execution_count": 191, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'chiave1': 'elemento1', 'chiave2': 'elemento2'}" ] }, "execution_count": 191, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d" ] }, { "cell_type": "code", "execution_count": 192, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['chiave1', 'chiave2'])" ] }, "execution_count": 192, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d.keys()" ] }, { "cell_type": "code", "execution_count": 193, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_items([('chiave1', 'elemento1'), ('chiave2', 'elemento2')])" ] }, "execution_count": 193, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d.items()" ] }, { "cell_type": "code", "execution_count": 194, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "False" ] }, "execution_count": 194, "metadata": {}, "output_type": "execute_result" } ], "source": [ "'x' in [1,2,3]" ] }, { "cell_type": "code", "execution_count": 195, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 195, "metadata": {}, "output_type": "execute_result" } ], "source": [ "'x' in ['x','y','z']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Operazioni su file" ] }, { "cell_type": "code", "execution_count": 196, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "## deve essere raccolta ogni informazione ed inserita in un dizionario python \n", "\n", "Albert Einstein è stato un fisico e filosofo tedesco naturalizzato svizzero e statunitense. Oltre a essere uno dei più celebri fisici della storia della scienza, che mutò in maniera radicale il paradigma ... Wikipedia\n", "Nascita: 14 marzo 1879, Ulma, Germania\n", "Decesso: 18 aprile 1955, Princeton, New Jersey, Stati Uniti\n", "Altezza: 1,75 m\n", "Figli: Eduard Einstein, Hans Albert Einstein, Lieserl Einstein\n", "Coniuge: Elsa Einstein (s. 1919–1936), Mileva Marić (s. 1903–1919)\n", "\n" ] } ], "source": [ "# aprire un file di testo in sola lettura\n", "# il file si trova nella cartella Esercizio_1 all'interno della cartella esercizi e il nome del file è albert.txt\n", "with open(\"./esercizi/Esercizio_1/albert.txt\" , \"r\") as miofile:\n", " contenuto_mio_file = miofile.read()\n", " \n", "print(contenuto_mio_file)" ] }, { "cell_type": "code", "execution_count": 197, "metadata": {}, "outputs": [], "source": [ "# aprire un file di testo in scrittura\n", "# il file si trova nella cartella Esercizio_2 all'interno della cartella esercizi e il nome del file è Luigino.txt\n", "\n", "contenuto = '''\n", "Luigino è stato uno dei più grandi artisti lirici della storia di San Marino \n", "Nascita: 14 marzo 1945, San Marino, San Marino.\n", "Decesso: 18 aprile 2015, San Marino, San Marino.\n", "Altezza: 1,75 m\n", "Peso: 205 KG\n", "\n", "'''\n", "\n", "with open(\"./esercizi/Esercizio_2/Luigino.txt\", \"w\") as miofile:\n", " contenuto_mio_file = miofile.write(contenuto)\n", " \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Funzioni" ] }, { "cell_type": "code", "execution_count": 198, "metadata": {}, "outputs": [], "source": [ "def mia_funzione(parametro='default'):\n", " \"\"\"\n", " documentazione della funzione va qui.\n", " \"\"\"\n", " return(parametro)" ] }, { "cell_type": "code", "execution_count": 199, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 199, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mia_funzione" ] }, { "cell_type": "code", "execution_count": 200, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "'default'" ] }, "execution_count": 200, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mia_funzione()" ] }, { "cell_type": "code", "execution_count": 201, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'marco'" ] }, "execution_count": 201, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mia_funzione(\"marco\")" ] }, { "cell_type": "code", "execution_count": 202, "metadata": {}, "outputs": [], "source": [ "def area_triangolo(base, altezza):\n", " return base * altezza / 2" ] }, { "cell_type": "code", "execution_count": 203, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "75.0" ] }, "execution_count": 203, "metadata": {}, "output_type": "execute_result" } ], "source": [ "area_triangolo(10,15)" ] }, { "cell_type": "code", "execution_count": 204, "metadata": {}, "outputs": [], "source": [ "## Espressioni Lambda" ] }, { "cell_type": "code", "execution_count": 205, "metadata": {}, "outputs": [], "source": [ "def la_variabile_per_2(var):\n", " return var*2" ] }, { "cell_type": "code", "execution_count": 206, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "20" ] }, "execution_count": 206, "metadata": {}, "output_type": "execute_result" } ], "source": [ "la_variabile_per_2(10)" ] }, { "cell_type": "code", "execution_count": 207, "metadata": {}, "outputs": [], "source": [ "a = lambda var: var*2" ] }, { "cell_type": "code", "execution_count": 208, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "20" ] }, "execution_count": 208, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a(10)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Pandas - nozioni base" ] }, { "cell_type": "code", "execution_count": 209, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
col1col2col3
01444abc
12800abc
231200ghi
34444xyz
\n", "
" ], "text/plain": [ " col1 col2 col3\n", "0 1 444 abc\n", "1 2 800 abc\n", "2 3 1200 ghi\n", "3 4 444 xyz" ] }, "execution_count": 209, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "\n", "\n", "#costruzione di un dataframe\n", "df = pd.DataFrame({'col1':[1,2,3,4],'col2':[444,800,1200,444],'col3':['abc','abc','ghi','xyz']})\n", "df\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![\"DataFrame\"](https://www.kdnuggets.com/wp-content/uploads/pandas-02.png \"DataFrame\") " ] }, { "cell_type": "code", "execution_count": 210, "metadata": {}, "outputs": [], "source": [ "## filtrare i dati con **loc**" ] }, { "cell_type": "code", "execution_count": 211, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'xyz'" ] }, "execution_count": 211, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# filtrare passando i valori di indice e colonna\n", "df.loc[3,\"col3\"] " ] }, { "cell_type": "code", "execution_count": 212, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "col2 1200\n", "col3 ghi\n", "Name: 2, dtype: object" ] }, "execution_count": 212, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.loc[2,[\"col2\", \"col3\"]] " ] }, { "cell_type": "code", "execution_count": 213, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
col2col3
21200ghi
1800abc
\n", "
" ], "text/plain": [ " col2 col3\n", "2 1200 ghi\n", "1 800 abc" ] }, "execution_count": 213, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.loc[[2,1],[\"col2\", \"col3\"]] " ] }, { "cell_type": "code", "execution_count": 214, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 True\n", "1 False\n", "2 False\n", "3 True\n", "Name: col2, dtype: bool" ] }, "execution_count": 214, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(df['col2']==444) # filtrare passando un vettore boleano" ] }, { "cell_type": "code", "execution_count": 215, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
col1col2col3
34444xyz
\n", "
" ], "text/plain": [ " col1 col2 col3\n", "3 4 444 xyz" ] }, "execution_count": 215, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.loc[(df['col1']>3) & (df['col2']==444), :]\n" ] }, { "cell_type": "code", "execution_count": 216, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
col1col2col3
34444xyz
\n", "
" ], "text/plain": [ " col1 col2 col3\n", "3 4 444 xyz" ] }, "execution_count": 216, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#oppure\n", "filtro1 = df['col1']>2\n", "filtro2 = df['col2']==444\n", "\n", "df.loc[filtro1 & filtro2, :]\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 217, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
col1col2col3
01444abc
231200ghi
34444xyz
\n", "
" ], "text/plain": [ " col1 col2 col3\n", "0 1 444 abc\n", "2 3 1200 ghi\n", "3 4 444 xyz" ] }, "execution_count": 217, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.loc[(df['col1']>2) | (df['col2']==444), :]" ] }, { "cell_type": "code", "execution_count": 218, "metadata": {}, "outputs": [], "source": [ "# assegnazione di valori " ] }, { "cell_type": "code", "execution_count": 219, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
col1col2col3
01444abc
12800abc
231200ghi
3101010
\n", "
" ], "text/plain": [ " col1 col2 col3\n", "0 1 444 abc\n", "1 2 800 abc\n", "2 3 1200 ghi\n", "3 10 10 10" ] }, "execution_count": 219, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#assegnazione ad un intera riga\n", "df.loc[(df['col1']>2) & (df['col2']==444), :] = 10 \n", "df" ] }, { "cell_type": "code", "execution_count": 220, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
col1col2col3
01444abc
12800abc
231200ghi
\n", "
" ], "text/plain": [ " col1 col2 col3\n", "0 1 444 abc\n", "1 2 800 abc\n", "2 3 1200 ghi" ] }, "execution_count": 220, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#filtro tramite isin\n", "#si passa una lista di valori su cui effettuare il filtro\n", "\n", "df[df[\"col3\"].isin([\"ghi\", \"abc\"])]" ] }, { "cell_type": "code", "execution_count": 221, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
col2col3
0444abc
\n", "
" ], "text/plain": [ " col2 col3\n", "0 444 abc" ] }, "execution_count": 221, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#certe volte può essere utile filtrare \"stile battaglia navale\", passando per il numero di riga e di colonna \n", "# questo si può fare con iloc\n", "df.iloc[0:1,1:3] #prendo la seconda e terza colonna e la prima riga (indipendentemente dal valore del'indice)" ] }, { "cell_type": "code", "execution_count": 222, "metadata": {}, "outputs": [], "source": [ "## Operazioni fra colonne e righe\n", "# creazione di una nuova colonna\n", "\n", "nuova_colonna = df[\"col1\"] + df[\"col2\"]" ] }, { "cell_type": "code", "execution_count": 223, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
col1col2col3nuova_colonna
01444abc445
12800abc802
231200ghi1203
310101020
\n", "
" ], "text/plain": [ " col1 col2 col3 nuova_colonna\n", "0 1 444 abc 445\n", "1 2 800 abc 802\n", "2 3 1200 ghi 1203\n", "3 10 10 10 20" ] }, "execution_count": 223, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[\"nuova_colonna\"] = nuova_colonna\n", "df" ] }, { "cell_type": "code", "execution_count": 224, "metadata": {}, "outputs": [], "source": [ "#sommare interi con stringa porta ad errore\n", "#df[\"col1\"] + df[\"col3\"]\n", "#TypeError: unsupported operand type(s) for +: 'int' and 'str'" ] }, { "cell_type": "code", "execution_count": 225, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
col1col2nuova_colonna
00.22471999.775281100.0
10.24937799.750623100.0
20.24937799.750623100.0
350.00000050.000000100.0
\n", "
" ], "text/plain": [ " col1 col2 nuova_colonna\n", "0 0.224719 99.775281 100.0\n", "1 0.249377 99.750623 100.0\n", "2 0.249377 99.750623 100.0\n", "3 50.000000 50.000000 100.0" ] }, "execution_count": 225, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[[\"col1\", \"col2\", \"nuova_colonna\"]].div(df[\"nuova_colonna\"], axis = 0) * 100" ] }, { "cell_type": "code", "execution_count": 226, "metadata": {}, "outputs": [], "source": [ "#per approfondire https://pandas.pydata.org/pandas-docs/stable/api.html#id4" ] }, { "cell_type": "code", "execution_count": 227, "metadata": {}, "outputs": [], "source": [ "altezze = pd.DataFrame({'Nome':[\"Marco\",\"Luigi\",\"Nino\",\"Ugo\", \"Marino\" ],'Altezza':[175,173,178,182,160]})\n", "pesi = pd.DataFrame({'Nome':[\"Marco\",\"Luigi\",\"Vittorio\",\"Ugo\", \"Marino\" ],'Peso':[75,70,100,97,50]})\n" ] }, { "cell_type": "code", "execution_count": 228, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AltezzaNomePeso
0175.0MarcoNaN
1173.0LuigiNaN
2178.0NinoNaN
3182.0UgoNaN
4160.0MarinoNaN
0NaNMarco75.0
1NaNLuigi70.0
2NaNVittorio100.0
3NaNUgo97.0
4NaNMarino50.0
\n", "
" ], "text/plain": [ " Altezza Nome Peso\n", "0 175.0 Marco NaN\n", "1 173.0 Luigi NaN\n", "2 178.0 Nino NaN\n", "3 182.0 Ugo NaN\n", "4 160.0 Marino NaN\n", "0 NaN Marco 75.0\n", "1 NaN Luigi 70.0\n", "2 NaN Vittorio 100.0\n", "3 NaN Ugo 97.0\n", "4 NaN Marino 50.0" ] }, "execution_count": 228, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#concatenazione verticale\n", "# https://pandas.pydata.org/pandas-docs/stable/generated/pandas.concat.html\n", "pd.concat([altezze, pesi])" ] }, { "cell_type": "code", "execution_count": 229, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AltezzaNomeNomePeso
0175MarcoMarco75
1173LuigiLuigi70
2178NinoVittorio100
3182UgoUgo97
4160MarinoMarino50
\n", "
" ], "text/plain": [ " Altezza Nome Nome Peso\n", "0 175 Marco Marco 75\n", "1 173 Luigi Luigi 70\n", "2 178 Nino Vittorio 100\n", "3 182 Ugo Ugo 97\n", "4 160 Marino Marino 50" ] }, "execution_count": 229, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#concatenazione orizzonate\n", "\n", "pd.concat([altezze, pesi], axis = 1)\n", "\n", "## i dati sono disallineati" ] }, { "cell_type": "code", "execution_count": 230, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AltezzaNomePeso
0175.0Marco75.0
1173.0Luigi70.0
2178.0NinoNaN
3182.0Ugo97.0
4160.0Marino50.0
5NaNVittorio100.0
\n", "
" ], "text/plain": [ " Altezza Nome Peso\n", "0 175.0 Marco 75.0\n", "1 173.0 Luigi 70.0\n", "2 178.0 Nino NaN\n", "3 182.0 Ugo 97.0\n", "4 160.0 Marino 50.0\n", "5 NaN Vittorio 100.0" ] }, "execution_count": 230, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# join dei dati\n", "# https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html\n", "pd.merge(altezze, pesi, how = \"outer\", left_on = \"Nome\", right_on = \"Nome\")" ] }, { "cell_type": "code", "execution_count": 231, "metadata": {}, "outputs": [], "source": [ "# aggiunto Gabriele e la sua altezza\n", "altezze = altezze.append([{\"Nome\": \"Gabriele\", \"Altezza\": 213}], )" ] }, { "cell_type": "code", "execution_count": 232, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AltezzaNomePeso
0175.0Marco75
1173.0Luigi70
2182.0Ugo97
3160.0Marino50
4NaNVittorio100
\n", "
" ], "text/plain": [ " Altezza Nome Peso\n", "0 175.0 Marco 75\n", "1 173.0 Luigi 70\n", "2 182.0 Ugo 97\n", "3 160.0 Marino 50\n", "4 NaN Vittorio 100" ] }, "execution_count": 232, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.merge(altezze, pesi, how = \"right\", left_on = \"Nome\", right_on = \"Nome\")" ] }, { "cell_type": "code", "execution_count": 233, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AltezzaNomePeso
0175Marco75.0
1173Luigi70.0
2178NinoNaN
3182Ugo97.0
4160Marino50.0
5213GabrieleNaN
\n", "
" ], "text/plain": [ " Altezza Nome Peso\n", "0 175 Marco 75.0\n", "1 173 Luigi 70.0\n", "2 178 Nino NaN\n", "3 182 Ugo 97.0\n", "4 160 Marino 50.0\n", "5 213 Gabriele NaN" ] }, "execution_count": 233, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.merge(altezze, pesi, how = \"left\", left_on = \"Nome\", right_on = \"Nome\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 234, "metadata": {}, "outputs": [], "source": [ "# da formato wide a long\n", "# https://pandas.pydata.org/pandas-docs/stable/generated/pandas.melt.html\n", "wide = pd.merge(altezze, pesi, how = \"left\", left_on = \"Nome\", right_on = \"Nome\")" ] }, { "cell_type": "code", "execution_count": 235, "metadata": {}, "outputs": [], "source": [ "#calcolo un indice di massa corporea\n", "wide[\"Imc\"] = wide[\"Peso\"] / (wide[\"Altezza\"] / 100) ** 2 " ] }, { "cell_type": "code", "execution_count": 236, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AltezzaNomePesoImc
0175Marco75.024.489796
1173Luigi70.023.388687
2178NinoNaNNaN
3182Ugo97.029.283903
4160Marino50.019.531250
5213GabrieleNaNNaN
\n", "
" ], "text/plain": [ " Altezza Nome Peso Imc\n", "0 175 Marco 75.0 24.489796\n", "1 173 Luigi 70.0 23.388687\n", "2 178 Nino NaN NaN\n", "3 182 Ugo 97.0 29.283903\n", "4 160 Marino 50.0 19.531250\n", "5 213 Gabriele NaN NaN" ] }, "execution_count": 236, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wide" ] }, { "cell_type": "code", "execution_count": 237, "metadata": {}, "outputs": [], "source": [ "long = pd.melt(wide, id_vars = \"Nome\", \n", " value_vars=['Altezza', 'Peso', \"Imc\"], \n", " var_name='Variabile', \n", " value_name= \"Valori\")" ] }, { "cell_type": "code", "execution_count": 238, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NomeVariabileValori
0MarcoAltezza175.000000
1LuigiAltezza173.000000
2NinoAltezza178.000000
3UgoAltezza182.000000
4MarinoAltezza160.000000
5GabrieleAltezza213.000000
6MarcoPeso75.000000
7LuigiPeso70.000000
8NinoPesoNaN
9UgoPeso97.000000
10MarinoPeso50.000000
11GabrielePesoNaN
12MarcoImc24.489796
13LuigiImc23.388687
14NinoImcNaN
15UgoImc29.283903
16MarinoImc19.531250
17GabrieleImcNaN
\n", "
" ], "text/plain": [ " Nome Variabile Valori\n", "0 Marco Altezza 175.000000\n", "1 Luigi Altezza 173.000000\n", "2 Nino Altezza 178.000000\n", "3 Ugo Altezza 182.000000\n", "4 Marino Altezza 160.000000\n", "5 Gabriele Altezza 213.000000\n", "6 Marco Peso 75.000000\n", "7 Luigi Peso 70.000000\n", "8 Nino Peso NaN\n", "9 Ugo Peso 97.000000\n", "10 Marino Peso 50.000000\n", "11 Gabriele Peso NaN\n", "12 Marco Imc 24.489796\n", "13 Luigi Imc 23.388687\n", "14 Nino Imc NaN\n", "15 Ugo Imc 29.283903\n", "16 Marino Imc 19.531250\n", "17 Gabriele Imc NaN" ] }, "execution_count": 238, "metadata": {}, "output_type": "execute_result" } ], "source": [ "long" ] }, { "cell_type": "code", "execution_count": 239, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Valori
Variabile
Altezza180.166667
Imc24.173409
Peso73.000000
\n", "
" ], "text/plain": [ " Valori\n", "Variabile \n", "Altezza 180.166667\n", "Imc 24.173409\n", "Peso 73.000000" ] }, "execution_count": 239, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# tabella pivot\n", "# https://pandas.pydata.org/pandas-docs/stable/generated/pandas.pivot_table.html\n", "pd.pivot_table(long, values = \"Valori\",\n", " index = \"Variabile\",\n", " aggfunc = np.mean)" ] }, { "cell_type": "code", "execution_count": 240, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Altezza 180.166667\n", "Peso 73.000000\n", "dtype: float64" ] }, "execution_count": 240, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#operazioni di riga e di cella\n", "\n", "wide.loc[:, [\"Altezza\", \"Peso\"]].apply(np.mean, axis = 0) # asse 0, vuol dire esegue l'operazione per colonna, asse 1 vuol dire per riga" ] }, { "cell_type": "code", "execution_count": 241, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 Medio\n", "1 Medio\n", "2 Medio\n", "3 Medio\n", "4 Basso\n", "5 Alto\n", "Name: Altezza, dtype: object" ] }, "execution_count": 241, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# operazione lambda\n", "def recode_altezza(altezza):\n", " if altezza >= 185:\n", " return \"Alto\"\n", " elif altezza < 185 and altezza > 165:\n", " return \"Medio\"\n", " else:\n", " return \"Basso\"\n", "\n", "wide[\"Altezza\"].apply(recode_altezza)" ] }, { "cell_type": "code", "execution_count": 242, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AltezzaPeso
0175_ciao75.0_ciao
1173_ciao70.0_ciao
2178_ciaonan_ciao
3182_ciao97.0_ciao
4160_ciao50.0_ciao
5213_ciaonan_ciao
\n", "
" ], "text/plain": [ " Altezza Peso\n", "0 175_ciao 75.0_ciao\n", "1 173_ciao 70.0_ciao\n", "2 178_ciao nan_ciao\n", "3 182_ciao 97.0_ciao\n", "4 160_ciao 50.0_ciao\n", "5 213_ciao nan_ciao" ] }, "execution_count": 242, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wide.loc[:, [\"Altezza\", \"Peso\"]].applymap(lambda cella: str(cella) + \"_ciao\")" ] }, { "cell_type": "code", "execution_count": 243, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
VariabileAltezzaImcPeso
Nome
Gabriele213.0NaNNaN
Luigi173.023.38868770.0
Marco175.024.48979675.0
Marino160.019.53125050.0
Nino178.0NaNNaN
Ugo182.029.28390397.0
\n", "
" ], "text/plain": [ "Variabile Altezza Imc Peso\n", "Nome \n", "Gabriele 213.0 NaN NaN\n", "Luigi 173.0 23.388687 70.0\n", "Marco 175.0 24.489796 75.0\n", "Marino 160.0 19.531250 50.0\n", "Nino 178.0 NaN NaN\n", "Ugo 182.0 29.283903 97.0" ] }, "execution_count": 243, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Da long a wide\n", "long.pivot(index='Nome', columns='Variabile', values='Valori')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Creare o aprire file excel" ] }, { "cell_type": "code", "execution_count": 244, "metadata": {}, "outputs": [], "source": [ "#Creare un file excel\n", "long.to_excel(\"excel_di_exempio.xlsx\")" ] }, { "cell_type": "code", "execution_count": 245, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NomeVariabileValori
0MarcoAltezza175.000000
1LuigiAltezza173.000000
2NinoAltezza178.000000
3UgoAltezza182.000000
4MarinoAltezza160.000000
5GabrieleAltezza213.000000
6MarcoPeso75.000000
7LuigiPeso70.000000
8NinoPesoNaN
9UgoPeso97.000000
10MarinoPeso50.000000
11GabrielePesoNaN
12MarcoImc24.489796
13LuigiImc23.388687
14NinoImcNaN
15UgoImc29.283903
16MarinoImc19.531250
17GabrieleImcNaN
\n", "
" ], "text/plain": [ " Nome Variabile Valori\n", "0 Marco Altezza 175.000000\n", "1 Luigi Altezza 173.000000\n", "2 Nino Altezza 178.000000\n", "3 Ugo Altezza 182.000000\n", "4 Marino Altezza 160.000000\n", "5 Gabriele Altezza 213.000000\n", "6 Marco Peso 75.000000\n", "7 Luigi Peso 70.000000\n", "8 Nino Peso NaN\n", "9 Ugo Peso 97.000000\n", "10 Marino Peso 50.000000\n", "11 Gabriele Peso NaN\n", "12 Marco Imc 24.489796\n", "13 Luigi Imc 23.388687\n", "14 Nino Imc NaN\n", "15 Ugo Imc 29.283903\n", "16 Marino Imc 19.531250\n", "17 Gabriele Imc NaN" ] }, "execution_count": 245, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Leggere un file excel\n", "pd.read_excel(\"excel_di_exempio.xlsx\")" ] }, { "cell_type": "code", "execution_count": 246, "metadata": {}, "outputs": [], "source": [ "# Creare un file excel con più tab\n", "writer = pd.ExcelWriter('excel_di_esempio2.xlsx')\n", "long.loc[long[\"Variabile\"] == \"Altezza\"].to_excel(writer,'Altezza')\n", "long.loc[long[\"Variabile\"] == \"Peso\"].to_excel(writer,'Peso')\n", "long.loc[long[\"Variabile\"] == \"Imc\"].to_excel(writer,'Imc')\n", "writer.save()" ] }, { "cell_type": "code", "execution_count": 247, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "OrderedDict([('Altezza', Nome Variabile Valori\n", " 0 Marco Altezza 175\n", " 1 Luigi Altezza 173\n", " 2 Nino Altezza 178\n", " 3 Ugo Altezza 182\n", " 4 Marino Altezza 160\n", " 5 Gabriele Altezza 213),\n", " ('Peso', Nome Variabile Valori\n", " 6 Marco Peso 75.0\n", " 7 Luigi Peso 70.0\n", " 8 Nino Peso NaN\n", " 9 Ugo Peso 97.0\n", " 10 Marino Peso 50.0\n", " 11 Gabriele Peso NaN),\n", " ('Imc', Nome Variabile Valori\n", " 12 Marco Imc 24.489796\n", " 13 Luigi Imc 23.388687\n", " 14 Nino Imc NaN\n", " 15 Ugo Imc 29.283903\n", " 16 Marino Imc 19.531250\n", " 17 Gabriele Imc NaN)])" ] }, "execution_count": 247, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Leggere un file excel con più tab\n", "tab_multiple = pd.read_excel('excel_di_esempio2.xlsx', sheetname = None)\n", "tab_multiple" ] }, { "cell_type": "code", "execution_count": 248, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NomeVariabileValori
0MarcoAltezza175
1LuigiAltezza173
2NinoAltezza178
3UgoAltezza182
4MarinoAltezza160
5GabrieleAltezza213
\n", "
" ], "text/plain": [ " Nome Variabile Valori\n", "0 Marco Altezza 175\n", "1 Luigi Altezza 173\n", "2 Nino Altezza 178\n", "3 Ugo Altezza 182\n", "4 Marino Altezza 160\n", "5 Gabriele Altezza 213" ] }, "execution_count": 248, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# accedere ad una tab\n", "tab_multiple[\"Altezza\"]" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Pandas - funzioni statistiche" ] }, { "cell_type": "code", "execution_count": 249, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AltezzaPesoImc
count6.0000004.0000004.000000
mean180.16666773.00000024.173409
std17.72474719.3045764.015913
min160.00000050.00000019.531250
25%173.50000065.00000022.424327
50%176.50000072.50000023.939241
75%181.00000080.50000025.688323
max213.00000097.00000029.283903
\n", "
" ], "text/plain": [ " Altezza Peso Imc\n", "count 6.000000 4.000000 4.000000\n", "mean 180.166667 73.000000 24.173409\n", "std 17.724747 19.304576 4.015913\n", "min 160.000000 50.000000 19.531250\n", "25% 173.500000 65.000000 22.424327\n", "50% 176.500000 72.500000 23.939241\n", "75% 181.000000 80.500000 25.688323\n", "max 213.000000 97.000000 29.283903" ] }, "execution_count": 249, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wide.describe()" ] }, { "cell_type": "code", "execution_count": 250, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "180.16666666666666" ] }, "execution_count": 250, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# media\n", "wide[\"Altezza\"].mean()" ] }, { "cell_type": "code", "execution_count": 251, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "17.72474729486056" ] }, "execution_count": 251, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# deviazione standard # indice di dispersione\n", "wide[\"Altezza\"].std()" ] }, { "cell_type": "code", "execution_count": 252, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
AltezzaPesoImc
Altezza1.0000000.9758570.966893
Peso0.9758571.0000000.999277
Imc0.9668930.9992771.000000
\n", "
" ], "text/plain": [ " Altezza Peso Imc\n", "Altezza 1.000000 0.975857 0.966893\n", "Peso 0.975857 1.000000 0.999277\n", "Imc 0.966893 0.999277 1.000000" ] }, "execution_count": 252, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# correlazione\n", "wide.corr()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![](https://www.kdnuggets.com/wp-content/uploads/pandas-08.png \"alcune stats\")" ] }, { "cell_type": "code", "execution_count": 253, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 2.333333\n", "1 2.471429\n", "2 NaN\n", "3 1.876289\n", "4 3.200000\n", "5 NaN\n", "dtype: float64" ] }, "execution_count": 253, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# iterazione con lambda per eseguire operazioni complesse fra colonne\n", "\n", "wide.apply(lambda x: (x['Altezza'] / x[\"Peso\"]) , axis=1)" ] }, { "cell_type": "code", "execution_count": 254, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Altezza 0 175\n", "1 173\n", "2 178\n", "3 182\n", "4 160\n", "5 213\n", "Name: Altezza, dtype: int64\n", "Nome 0 Marco\n", "1 Luigi\n", "2 Nino\n", "3 Ugo\n", "4 Marino\n", "5 Gabriele\n", "Name: Nome, dtype: object\n", "Peso 0 75.0\n", "1 70.0\n", "2 NaN\n", "3 97.0\n", "4 50.0\n", "5 NaN\n", "Name: Peso, dtype: float64\n", "Imc 0 24.489796\n", "1 23.388687\n", "2 NaN\n", "3 29.283903\n", "4 19.531250\n", "5 NaN\n", "Name: Imc, dtype: float64\n" ] } ], "source": [ "# iterazione classica sui dati di un dataframe di pandas\n", "#Può essere molto utile quando si deve eseguire calcoli che è difficile rappresentare in lambda e si vuole adoperare (difetto principale: richiede maggiore tempo di esecuzione)\n", "\n", "for i, v in wide.items(): # qui prendo indice e valori\n", " print(i, v)" ] }, { "cell_type": "code", "execution_count": 255, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 175\n", "1 173\n", "2 178\n", "3 182\n", "4 160\n", "5 213\n" ] } ], "source": [ "# iterazione classica sui dati di una serie di pandas\n", "for i, v in wide[\"Altezza\"].items(): # qui prendo indice e valori\n", " print(i, v)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Pandas - grafici di base " ] }, { "cell_type": "code", "execution_count": 256, "metadata": {}, "outputs": [], "source": [ "serie_dati = {\"Italia\": {2010: 35, 2011: 30, 2012: 25}, \"Spagna\": {2010: 25, 2011: 27, 2012: 34}}" ] }, { "cell_type": "code", "execution_count": 257, "metadata": {}, "outputs": [], "source": [ "df_serie_dati = pd.DataFrame(serie_dati)" ] }, { "cell_type": "code", "execution_count": 258, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ItaliaSpagna
20103525
20113027
20122534
\n", "
" ], "text/plain": [ " Italia Spagna\n", "2010 35 25\n", "2011 30 27\n", "2012 25 34" ] }, "execution_count": 258, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_serie_dati" ] }, { "cell_type": "code", "execution_count": 259, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import matplotlib\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 260, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 260, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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WrSga9eu7N69G4A9e/bQrVs3WrZsya233kp8fDx79+6loKCARo0acfPNN9OkSRO6d+/OsWPHAHjnnXdo3bo1aWlp9OnTh6NHq9ZtFGvcGbH/5eXuRt9WcVybHsuibfsYu2A7/5yTz79yt3F18xiys+w0jKj8G52KiIhUuq9GwA/rfvNunzOnwe0iK0FkKvR67ncf0r17d5544gkaNmxI165d6d+/Px06dACgbt26LFu2jPfee4977rmH6dOn43A4WLJkCYZhMHbsWJ5//nlefPFFHn/8cTp37szIkSOZMWMGb7/99i/HyM/PZ/Lkybzzzjv069ePadOmccMNN3DNNddw8803A/DII4+Qk5PDnXfeeXGfawWo8UXsZ4ZhkJkUSmZSKFt/LGH8QifTVhUzZcUOshqEku2w06FhmObIREREypmfnx8rV65kwYIFzJ8/n/79+/Pcc67yNmDAgF9+v/feewEoLi6mf//+7Nq1i5MnT2K32wHIy8vj008/BaBnz54EBQX9cgy73U7z5s0BSE9Pp6CgAID169fzyCOPcPDgQUpKSujRo0elfM5lVWuK2K8lhfvx9NWpPNA9mUnLipiwqIDB45eTFO5HtsPO1S1iNEcmIiI1z3nOXB07fBh//4q9OuTm5vbLfSNTU1OZMGECwH+dAPn5z3feeSf33XcfV1xxBbm5uTz22GMAmKZ53o//82XPn4/186XJwYMH89lnn5GWlsa7775Lbm5uOX9mf06NnREriyBfT27vlETe8M681C8NL3cbIz9ZR8Zz83hx1mZ+PHzc6ogiIiLV3ubNm8nPz//l7dWrVxMfHw/AlClTfvm9ffv2ABw6dIiYmBiAXwobgMPhYOrUqQDMmjWLAwcOXPDYhw8fJioqilOnTjFx4sTy+YTKUa08I/a/PN1tXNMylqtbxLBk+35y8py8Nn8rb329ncvTosl22GkcXdfqmCIiItVSSUkJd955JwcPHsTd3Z2kpCTefvttpk+fzokTJ2jbti2lpaVMnjwZgMcee4y+ffsSExNDu3btcDqdADz66KMMGDCAKVOm0KFDB6KiovD396ekpOS8x37yySdp27Yt8fHxpKamcvjw4Ur5nMtKRexXDMOgff0Q2tcPwbn3COMXOvloRTHTVhWTUT+EbIedTsnh2GyaIxMRESmr9PR0Fi1adM6/u/3223n00Uf/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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df_serie_dati.plot(kind = \"line\", grid = True, rot=45, figsize = (10,5))" ] }, { "cell_type": "code", "execution_count": 261, "metadata": {}, "outputs": [], "source": [ "df_serie_dati.index = pd.to_datetime(df_serie_dati.index, format=\"%Y\")" ] }, { "cell_type": "code", "execution_count": 262, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ItaliaSpagna
2010-01-013525
2011-01-013027
2012-01-012534
\n", "
" ], "text/plain": [ " Italia Spagna\n", "2010-01-01 35 25\n", "2011-01-01 30 27\n", "2012-01-01 25 34" ] }, "execution_count": 262, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_serie_dati" ] }, { "cell_type": "code", "execution_count": 263, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 263, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df_serie_dati.plot(kind = \"line\", grid = True, rot=45, figsize = (10,5))" ] }, { "cell_type": "code", "execution_count": 264, "metadata": {}, "outputs": [], "source": [ "Altezza = tab_multiple[\"Altezza\"]" ] }, { "cell_type": "code", "execution_count": 265, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
NomeVariabileValori
0MarcoAltezza175
1LuigiAltezza173
2NinoAltezza178
3UgoAltezza182
4MarinoAltezza160
5GabrieleAltezza213
\n", "
" ], "text/plain": [ " Nome Variabile Valori\n", "0 Marco Altezza 175\n", "1 Luigi Altezza 173\n", "2 Nino Altezza 178\n", "3 Ugo Altezza 182\n", "4 Marino Altezza 160\n", "5 Gabriele Altezza 213" ] }, "execution_count": 265, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Altezza" ] }, { "cell_type": "code", "execution_count": 266, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 266, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Altezza.plot(y= \"Valori\", kind = \"box\", grid = True, rot=45, figsize = (10,5))" ] }, { "cell_type": "code", "execution_count": 267, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 267, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Altezza.plot(x=\"Nome\", y= \"Valori\", kind = \"bar\", grid = True, rot=45, figsize = (10,5))" ] }, { "cell_type": "code", "execution_count": 268, "metadata": {}, "outputs": [ { "data": { "image/png": "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o0ZxhSiScTLuWpwikjn69u3LCy+8sEnZuHHjmDFjBjNmzOC0007j1FNPBeDxxx9nzZo1zJ49m6lTp3L//fdTUlISQ9SZZ6+99uK1114D4NVXX+WAAw4A4IsvvuDUU0/lH//4BwceeGCcIYpknIy71JOIZI7u3btvMclydx577DFeffVVAMyMlStXUlpayqpVq6hduza77rprGqPNDEVFRUyaNImlS5fSokULbrrpJh544AEuvfRSSktLqVu3LsOHDwfg5ptv5ttvv+XCC4MZKTVr1mTKlClxhi+SMZSgVVPbMvRTUlLCwQcfTKtWrQA49NBDGTZsWGyxi1SF119/nZycnI29OT179uSZZ56hWbNm/PjjjwwdOpQ99tgj5iirn7Fjx1ZaPnXq1M3KHnzwQR588MGoQxLJSkrQqqm+ffty8cUX06dPn41l48aN23j78ssvp2HD/+3lsv/++zNjxoy0xigSpbFjx1JUVLTx+N1336VGjRp89dVXLFu2jCOOOIKjjz6a/fbbL8YoRUS2jxK0ampbhn5EMk1paSlPPfXUJr06Y8aM4fjjj6dWrVo0bdqUww8/nClTpihBE5FqSYsEMlDFoR+A+fPn06FDB37xi1/w+uuvxxhd9VXZJXDOPPNM2rdvT/v27cnNzaV9+/ZA0JtTVt6uXTuefvrpuMLOSP/+97856KCDaNGixcayffbZh1dffRV3Z+XKlbz99tscdNBBMUYpIrL9lKBloIpDP82aNeOLL75g+vTpDBkyhLPPPpvvv/8+xgirp21ZUdimTRumTJnCjBkzeOGFFzj//PMpLS2NI+xqraioiMMOO4x58+bRokULRowYAUBxcfEmr3GAiy66iBUrVtCmTRs6d+7MOeecQ9u2beMIu1p5+eWXN5keISLJoCHODFPZ0E+dOnWoU6cOAJ06dWL//ffno48+Ij8/pcuBSWhbhpV33nnnjfetXr2a4MIasq22NGF95MiRm5XVr1+fxx9/POKIMse6deu44YYbGDVqFI899ljc4YhIBepByzCVDf0sWbKE9evXA/DZZ5/x8ccfa15OFatsWPmdd96hdevW5OXlMWzYMGrW1PchSYb58+dzxBFHMGvWLKZPn063bt3iDklEKlCCVk1ty9DP5MmTadu2Le3ataNnz54MGzZM2w9UsYrDygBdu3Zl7ty5vPfeewwaNIjV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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = Altezza.plot(x=\"Nome\", y= \"Valori\", kind = \"bar\", grid = True, rot=45, figsize = (10,5))\n", "ax.set_ylabel('Infant mort. rate')\n", "ax.set_xlabel('Country')\n", "for riga in range(Altezza.shape[0]):\n", " ax.annotate(Altezza[\"Valori\"][riga],\n", " (Altezza.index[riga], Altezza[\"Valori\"][riga]),\n", " xytext=(15, 15), \n", " textcoords='offset points',\n", " arrowprops=dict(arrowstyle='-|>'))\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }