Team I.A. Italia

8 min

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

  1. Importare i dati

  2. Somma, Media, Max, Min, Count

  3. Sostituiamo l' IF

  4. Pulizia dei dati di base

  5. Sostituiamo i grafici di Excel con Matplotlib di Python

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.

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

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

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

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

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


 
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


 
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

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 !