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
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.
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:
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:
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:
un elenco di condizioni
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:
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:
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:
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.
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:
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 !
Utili queste pillole... fanno bene alla programmazione! ;-)