top of page

Una Guida Semplice e Completa per passare da Excel a Python Usando le Librerie Pandas e Numpy

So che l'idea di imparare cose che puoi già fare in Excel / VBA in un ambiente completamente nuovo come Python non sembra così eccitante, tuttavia, i vantaggi offerti da Python, le molte librerie disponibili e l'alta richiesta delle aziende di data scientist rende ancora più interessante questo " switch ".

Per questo motivo, ho pensato a un utile e semplice guida che avrei voluto avere quando sono passato da Excel a Python. In questo articolo, utilizzeremo le librerie Panda e Numpy di Python per sostituire molti Excel funzioni che probabilmente hai usato in passato.

Sommario


Una Guida Semplice e Completa per passare da Excel a Python Usando le Librerie Pandas e Numpy
Una Guida Semplice e Completa per passare da Excel a Python Usando le Librerie Pandas e Numpy


Prima di iniziare :

  • Se non sai perchè utilizzeremo python, clicca qui

  • Se non hai ancora installato Python, clicca qui

  • Se non sai come scaricare e gestire le librerie, clicca qui

  • Se non sai cosa sia un Dataset, clicca qui

  • Se non sai quali sono le migliori librerie per l'I.A. , clicca qui



IMPORTARE I DATI

In questa guida, utilizzeremo un file Excel con formato .csv, ma non preoccuparti, un vantaggio di Python è la possibilità di poter leggere quasi ogni tipo di file, txt, json, xml, html e i vari formati excel. Ti lascio il link per vedere come importare i diversi tipi di file.

Nel caso in cui vuoi solo esercitarti e non sai che dataset usare ti lascio questo link per vedere dove trovare dataset gratis a scaricare.

Se vuoi seguire passo passo l'intero articolo ti lascio il file .csv che utilizzeremo in questa guida.


EsempioPython
.csv
Scarica CSV • 9.54MB


Per iniziare con questa guida, importiamo le librerie Pandas, Numpy e Matplotlib.


#importiamo le librerie
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

Con questo, possiamo dare una prima occhiata ai dati. Per farlo, usiamo pd.read_csv (). Assicurati che il CSV e il tuo script Python si trovino nella stessa cartella.


dataset = pd.read_csv("EsempioPython.csv")
print(dataset)

Una volta letto questo file CSV, gli diamo un nome. In questo caso, l'ho chiamato dataset. Come consuetudine si usa df che sta per dataframe ed è il nome tipico dato dopo aver letto un file CSV. Dopo eseguendo il codice sottostante, otteniamo il seguente output.

Nel nostro caso stiamo usando jupyter notebook per scrivere il codice quindi se stai utilizzando il terminale o altri editor sarà stampato in modo diverso.

Importare e stampare file CSV con python
Importare e stampare file CSV con python

Sembra simile a un foglio di calcolo Excel, ma in questo formato sarà più facile lavorare i dati i dati. Ora ti mostrerò in Python come eseguire alcune funzioni comuni che probabilmente utilizzato in Excel.



SOMMA, MEDIA, MAX, MIN e COUNT


Le popolari funzioni di Excel possono essere facilmente sostituite con i metodi Pandas.

Prima di farti vedere le singole funzioni, ci tengo a dirti che Se vogliamo ottenere la maggior parte delle funzioni elencate sopra, utilizziamo il metodo .describe(). Diamo un'occhiata.


print(dataset.describe())

Output:

Come puoi vedere per ogni colonna ne verranno calcolate le principali operazioni statistiche di base. Ora procediamo nel vedere come sommare due o più colonne.


Per specificare su quali colonne operare utilizzeremo le parentisi subito dopo la nostra variabile contenente tutti i dati, con all'interno i nomi delle colonne che vuoi selezionare. Ne vediamo subito un esempio.


#Vogliamo calcolare le vendite totali dei negozi 
vendite_totali = dataset["Quantity"].sum()
print(vendite_totali)

Output:
Somma di una Colonna con Python
Somma di una Colonna con Python

Quindi, se vogliamo selezionare una colonna specifica, selezioniamo prima con parentesi quadre ["colonna"] e poi usa il metodo di cui abbiamo bisogno (.sum (), .mean (), .count (), ecc.). Ad esempio, calcoliamo la media, il max e il min delle quantità vendute dei negozi.



print("media : " + str( dataset["Quantity"].mean() ) )
print("MAX : " + str( dataset["Quantity"].max() ) )
print("MIN : " + str( dataset["Quantity"].min()) )

Output:
media : 780.5861655834982 
MAX : 67875.0 
MIN : 1.0 

Come puoi vedere è veramente semplice, quasi più di Excel dopo che ci avrai preso mano. Nel caso in cui desideriamo contare il numero di dati specifici all'interno di una colonna, possiamo usare il .value_counts () metodo. Ora vediamo un esempio dove contiamo quale tipi di metodi sono stati usati negli ordini.


print(dataset["Order_method_type"].value_counts())

Output:

Web            69181 
Sales visit     7168 
Telephone       5814 
E-mail          3092 
Fax             1664 
Mail            1024 
Special          532 
Name: Order_method_type, dtype: int64

Come puoi vedere anche la gestione delle variabili di testo non è minimamente un problema per Python. Ora facciamo un salto di livello e vediamo come implementare l' IF di Excel con numpy, utilizzando sempre semplici funzioni.




SOSTITUIAMO L' IF


Possiamo facilmente sostituire la funzione IF di Excel utilizzando Numpy. Immaginiamo di voler sapere quali vendite sono superiori ad una quantità di 200 pezzi e creare quindi un nuovo attributo per ogni riga la dove la vendita risulta maggiore o minore di questa quantità.

Possiamo farlo facilmente con quanto segue codice.



dataset["Vendite_all_ingrosso"] = np.where(dataset['Quantity'] > 500,  'vendita ad un negozio', 'vendita per privato')
​
print("dataset")

Output:

Sostituire l' IF di Excel con python
Sostituire l' IF di Excel con python

Come puoi vedere np.where () necessita di 3 argomenti: la condizione, il valore se la condizione è Vera e il valore se la condizione è Falsa.


Supponiamo ora di avere una condizione più complessa, la quale richiede di classificare nello specifico a che tipo di struttura è stato l'acquisto basandosi sulle quantità. In questo case, abbiamo più di 2 valori, quindi usiamo np.select () necessita di argomenti:

  1. un elenco di condizioni

  2. un elenco di valori

Un elenco in Python è rappresentato dalle parentesi quadre [].

Vediamo come si fa in modo pratico.



condizioni = [(dataset['Quantity']>=900),
            (dataset['Quantity']>=800)&(dataset['Quantity']<900),
            (dataset['Quantity']>=700)&(dataset['Quantity']<800),
            (dataset['Quantity']>=600)&(dataset['Quantity']<700),
            (dataset['Quantity']>=500)&(dataset['Quantity']<600),
            (dataset['Quantity']<500) ]
​
valori= ['Negozio vendita ingrosso',
 'Centro commerciale',
 'Catena di negozi',
 'Negozio Grande',
 'Negozio medio-piccolo',
 'Ptivato-Retailer']
​
dataset["Acquirente"] = np.select(condizioni, valori)
​
print("dataset")

Output:
Sostituire l' IF di Excel con python
Sostituire l' IF di Excel con python

Come puoi vedere manipolare colonne o righe con Python non è molto difficile, ma andiamo avanti e vediamo quali altre funzioni possiamo replicare da Excel.


Immaginiamo di voler le vendite di prodotti solo di uno specifico Paese. Per farlo, in primo luogo, scrivi la condizione dataset ["Retailer_country"] == "Italy" e poi selezioniamo quella condizione all'interno del frame dataset utilizzando parentesi quadre []

dataset_italia = dataset[dataset["Retailer_country"]=="Italy"]
dataset_italia

Output:

Sostituire l' IF di Excel con python
Sostituire l' IF di Excel con python

Abbiamo selezionato solo le vendite avvenute in italia e le abbiamo inserite dentro un nuovo dataframe dataset_italia . Adesso possiamo eseguire qualsiasi calcolo che abbiamo visto prima "Sum, Average, Max, Min, Count" .


Se abbiamo due o più condizioni, il codice sarà simile a quello sopra, ma con alcuni cambiamenti. Immaginiamo di voler creare un ulteriore dataframe contenente solo le vendite fatte in Spagna nel 2014.


dataset_spagna_2014 = dataset[(dataset["Retailer_country"]=="Spain") & (dataset["Year"]==2014)]

dataset_spagna_2014

Output:
Sostituire l' IF di Excel con python
Sostituire l' IF di Excel con python

Poiché ci sono 2 condizioni, potremmo usare & | che rappresenta e / o rispettivamente. Tieni a mente che ogni condizione dovrebbe essere tra parentesi.



PULIZIA DAI DI BASE


Vedremo alcuni metodi utilizzati per la pulizia dei dati. Continueremo a utilizzare il frame df_excel che abbiamo definito in precedenza.


STANDARDIZZAZIONE DEL TESTO

Potrebbe capitare, soprattutto se si opera con dati correlati a variabili non numeriche, di dover standardizzare il testo in modo da poterlo successivamente convertire in una variabile categorica numerica.

Cambia il faromato del testo con .str.lower, .str.upper o .str.title Per accedere alle stringhe contenute in una colonna, usiamo .str possiamo quindi cambiare maiuscole e minuscole di testo con quanto segue .


dataset["Product"].str.title()
dataset["Product"].str.upper()
dataset["Product"].str.lower()

Output:
​

Per sovrascrivere la colonna ti basterà assegnare il comando precedente sulla colonna.

Questo è il codice.


dataset['Product'] = dataset['Product'].str.lower()


RIMOZIONE VALORI NULLI

Ora vediamo come eliminare i valori nulli presenti nel dataset la sintassi della funzione dropna () è:

dropna(self, axis=0, how="any", thresh=None, subset=None, inplace=False)
  • axis : i valori possibili sono {0 o "indice", 1 o "colonne"}, valore predefinito 0. Se 0, rilascia le righe con valori nulli. Se 1, rilascia le colonne con valori mancanti.

  • how : i valori possibili sono {'any', 'all'}, il valore predefinito 'any'. Se "any", rilascia la riga / colonna se uno dei valori è nullo. Se "all", rilascia la riga / colonna se mancano tutti i valori.

  • thresh : un valore int per specificare la soglia per l'operazione di eliminazione.

  • subset : specifica le righe / colonne in cui cercare valori nulli.

  • inplace : un valore booleano. Se True, il DataFrame di origine viene modificato e viene restituito None.

Per sovrascrivere il Dataset, senza valori nulli, ci basterà utilizzare questa riga di codice.

Eliminare valori nulli dal Dataset con Python e pandas
Eliminare valori nulli dal Dataset con Python e pandas



SOSTITUIAMO I GRAFICI DI EXCEL CON MATPLOTLIB DI PYTHON


Questa parte dell'articolo ti introdurrà alla rappresentazione grafica in Python con Matplotlib, che è probabilmente la libreria di rappresentazione grafica e di visualizzazione dei dati più popolare per Python.

Installazione Il modo più semplice per installare matplotlib è usare pip. Digita il seguente comando nel terminale:

pip install matplotlib #python2
pip install matplotlib #python3

OPPURE, puoi scaricarlo da qui e installarlo manualmente.

Per iniziare (tracciamo una linea)

Il codice sembra autoesplicativo. Sono stati seguiti i seguenti passaggi:

  • Definisci i valori dell'asse x e corrispondenti dell'asse y come Liste.

  • Stampali usando la funzione .plot () .

  • Assegna un nome all'asse x e all'asse y usando le funzioni .xlabel () e .ylabel () .

  • Dai un titolo alla tua trama usando la funzione .title () .

  • Infine, per visualizzare il grafico, utilizziamo la funzione .show () .



Tracciare due o più linee sullo stesso grafico


  • Qui, tracciamo due linee sullo stesso grafico. Li differenziamo dando loro un nome ( etichetta ) che viene passato come argomento della funzione .plot ().

  • La piccola casella rettangolare che fornisce informazioni sul tipo di linea e sul suo colore è chiamata legenda. Possiamo aggiungere una legenda al nostro grafico usando la funzione .legend () .



Customizzazione dei grafici Qui, discutiamo alcune personalizzazioni elementari applicabili su quasi tutti i grafici.

Come puoi vedere, abbiamo effettuato diverse personalizzazioni come :

  • impostazione della larghezza della linea, dello stile della linea, del colore della linea.

  • impostazione del pennarello, colore del viso del pennarello, dimensione del pennarello.

  • sovrascrivendo l'intervallo degli assi x e y. Se l'override non viene eseguito, il modulo pyplot utilizza la funzione di scala automatica per impostare l'intervallo e la scala dell'asse.

Grafico a barre

  • Qui, usiamo la funzione plt.bar () per tracciare un grafico a barre.

  • Le coordinate x del lato sinistro delle barre vengono trasmesse insieme alle altezze delle barre.

  • puoi anche dare un nome alle coordinate dell'asse x definendo tick_labels



Istogramma

  • Qui, usiamo la funzione plt.hist () per tracciare un istogramma.

  • le frequenze vengono passate come elenco delle età .

  • L'intervallo può essere impostato definendo una tupla contenente il valore minimo e massimo.

  • Il passaggio successivo consiste nel " raggruppare " l'intervallo di valori, ovvero dividere l'intero intervallo di valori in una serie di intervalli, quindi contare quanti valori rientrano in ciascun intervallo. Qui abbiamo definito bin = 10. Quindi, ci sono un totale di 100/10 = 10 intervalli.




Trama a dispersione

  • Qui, usiamo la funzione plt.scatter () per tracciare un grafico a dispersione.

  • Come una linea, qui definiamo anche i valori dell'asse xe corrispondenti.

  • L' argomento marker viene utilizzato per impostare il carattere da utilizzare come marker. La sua dimensione può essere definita utilizzando il parametro s .




Grafico a torta

  • Qui, tracciamo un grafico a torta usando il metodo plt.pie () .

  • Prima di tutto, definiamo le etichette utilizzando un elenco chiamato attività .

  • Quindi, una parte di ciascuna etichetta può essere definita utilizzando un altro elenco chiamato slice .

  • Il colore per ciascuna etichetta viene definito utilizzando un elenco chiamato colori .

  • shadow = True mostrerà un'ombra sotto ogni etichetta nel grafico a torta.

  • startangle ruota l'inizio del grafico a torta di determinati gradi in senso antiorario dall'asse x.

  • explode viene utilizzato per impostare la frazione di raggio con cui compensiamo ogni cuneo.

  • autopct viene utilizzato per formattare il valore di ciascuna etichetta. Qui, l'abbiamo impostato per mostrare il valore percentuale solo fino a 1 cifra decimale.



Tracciare curve di una data equazione

  • Per impostare i valori dell'asse x, usiamo il metodo np.arange () in cui i primi due argomenti sono per l'intervallo e il terzo per l'incremento graduale. Il risultato è un array numpy.

  • Per ottenere i valori dell'asse y corrispondenti, usiamo semplicemente il metodo np.sin () predefinito sull'array numpy.

  • Infine, tracciamo i punti passando gli array xey alla funzione plt.plot () .

Quindi, in questa parte, abbiamo discusso i vari tipi di grafici che possiamo creare in matplotlib.


Come hai potuto vedere python offre le stesse se non più funzionalità di excel, spero che questa quida ti possa essere d'aiuto nella transizione. Per qualsiasi tipo di domanda o dubbio non esitare a lasciare un commento.



Grazie mille per la lettura, condivi l'articolo !




1 Comment

Rated 0 out of 5 stars.
No ratings yet

Add a rating
Romeo Ceccato
Romeo Ceccato
May 26, 2021

Utili queste pillole... fanno bene alla programmazione! ;-)


Like
PCR (5).gif
PCR (4).gif
PCR.gif
PCR.gif
PCR.gif
PCR.gif
PCR (5).gif
3.gif
Vediamo se riesci a cliccarmi ! Nascondo una Sorpresa... (2).png

Ciao 

🤗 Articoli consigliati dalla nostra
Intelligenza Artificiale in base ai tuoi interessi

Correlazione Alta

Correlazione Media

Correlazione Bassa

Iscriviti

VUOI DIVENTARE UN MEMBRO DI INTELLIGENZA ARTIFICIALE ITALIA GRATUITAMENTE E TRARNE I SEGUENTI BENEFICI?

Corsi Gratis

più di 150 lezioni online

Dataset Gratis

più di 150o dataset

Ebook Gratis

più di 10 libri da leggere

Editor Gratis

un editor python online

Progetti Gratis

più di 25 progetti python

App Gratis

4 servizi web con I.A.

Unisciti Ora a oltre
1.000.000
di lettori e appassionanti d'I.A.

Tutto ciò che riguarda l'intelligenza Artificiale, in unico posto, in italiano e gratis.

MEGLIO DI COSI' NON SI PUO' FARE

Dopo l'iscrizione riceverai diversi Regali

VUOI SCRIVERE ARTICOLI INSIEME A NOI.

Grazie

bottom of page