English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Operazioni di base su Pandas DataFrame
DataFrame è una struttura dati bidimensionale, ossia, i dati sono allineati in tabella per righe e colonne.
Le colonne potenziali sono di diversi tipi La dimensione è variabile Asse etichettato (righe e colonne) Esegui operazioni aritmetiche sulle righe e sulle colonne
La struttura della Series è la seguente:
Supponiamo di essere in fase di creazione di un DataFrame utilizzando dati degli studenti.
Possiamo considerarlo come una rappresentazione di dati in tabella SQL o elettronica.
Puoi creare un DataFrame di pandas utilizzando i seguenti costruttori-
pandas.DataFrame(data, index, columns, dtype, copy)
Spiegazione dei parametri:
data: I dati possono assumere varie forme, ad esempio ndarray, serie, mappature, liste, dict, costanti e un altro DataFrame. index: Per i tag delle righe, se non è stato passato un indice, l'indice del frame di risultato utilizzato è Optional Default np.arange(n). columns: Per i tag delle colonne, la sintassi predefinita opzionale è -np.arange(n). Questo è il caso solo se non è stato passato un indice. dtype: Il tipo di dati di ogni colonna. copy: Se il valore predefinito è False, questo comando (o qualsiasi suo comando) viene utilizzato per copiare i dati.
È possibile creare un pandas DataFrame utilizzando vari input-
Lists dict Series Numpy ndarrays Un altro DataFrame
Nella parte successiva di questo capitolo, vedremo come utilizzare questi input per creare un DataFrame.
È possibile creare un DataFrame di base che è Empty DataFrame.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd df = pd.DataFrame() print(df)
Risultato esecuzione:
Empty DataFrame Columns: [] Index: []
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd data = [1, 2, 3, 4, 5] df = pd.DataFrame(data) print(df)
Risultato esecuzione:
0 0 1 1 2 2 3 3 4 4 5
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd data = [['Alex', 10], ['Bob', 12], ['Clarke', 13]] df = pd.DataFrame(data, columns=['Name', 'Age']) print(df)
Risultato esecuzione:
Name Age 0 Alex 10 1 Bob 12 2 Clarke 13
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd data = [['Alex', 10], ['Bob', 12], ['Clarke', 13]] df = pd.DataFrame(data, columns=['Name', 'Age'], dtype=float) print(df)
Risultato esecuzione:
Name Age 0 Alex 10.0 1 Bob 12.0 2 Clarke 13.0
La lunghezza di tutti i ndarray deve essere la stessa. Se è stato passato un index, la lunghezza dell'indice deve essere uguale alla lunghezza dell'array.
Se non viene passato un indice, di default l'indice sarà range(n), dove n è la lunghezza dell'array.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'], 'Age':[28,34,29,42]} df = pd.DataFrame(data) print(df)
Risultato esecuzione:
Age Name 0 28 Tom 1 34 Jack 2 29 Steve 3 42 Ricky
Usiamo un array per creare un DataFrame con l'indice.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'], 'Age':[28,34,29,42]} df = pd.DataFrame(data, index=['rank1','rank2','rank3','rank4']) print(df)
Risultato esecuzione:
Age Name rank1 28 Tom rank2 34 Jack rank3 29 Steve rank4 42 Ricky
Una lista di dizionari può essere passata come dati di input per creare un DataFrame. Di default, le chiavi del dizionario vengono utilizzate come nomi di colonna.
Esempio di come creare un DataFrame passando una lista di dizionari.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd data = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}] df = pd.DataFrame(data) print(df)
Risultato esecuzione:
a b c 0 1 2 NaN 1 5 10 20.0
Esempio di come creare un DataFrame passando una lista di dizionari e indici di riga.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd data = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}] df = pd.DataFrame(data, index=['first', 'second']) print(df)
Risultato esecuzione:
a b c first 1 2 NaN second 5 10 20.0
Esempio di come creare un DataFrame contenente una lista di dizionari, indici di riga e indici di colonna.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd data = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}] # Ci sono due indici di colonna, i valori sono identici alle chiavi del dizionario df1 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b']) # Ci sono due indici di colonna df2 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b1']) print(df1) print(df2)
Risultato esecuzione:
# output df1 a b primo 1 2 secondo 5 10 # output df2 a b1 primo 1 NaN secondo 5 NaN
È possibile passare un dizionario di serie per formare un DataFrame. L'indice di risultato è l'unione degli indici di tutte le serie passate.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(d) print(df)
Risultato esecuzione:
one two a 1.0 1 b 2.0 2 c 3.0 3 d NaN 4
Per la prima serie, non è stato passato l'etichetta 'd', ma il risultato è che per l'etichetta 'd', è stato aggiunto NaN.
Ora, attraverso un esempio, vedremo come selezionare, aggiungere e eliminare le colonne.
Vedremo come selezionare una colonna dal DataFrame per capire questo.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(d) print(df['one'])
Risultato esecuzione:
a 1.0 b 2.0 c 3.0 d NaN Nome: one, dtype: float64
Vedremo come aggiungere una nuova colonna all'existing DataFrame.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(d) # Aggiungere una nuova colonna passando una nuova serie al DataFrame esistente con etichette di colonna print('Aggiungere una nuova colonna passando come Series:') df['three'] = pd.Series([10, 20, 30], index=['a', 'b', 'c']) print(df) print('Aggiungere una nuova colonna utilizzando le colonne esistenti nel DataFrame:') df['four'] = df['one'] + df['three'] print(df)
Risultato esecuzione:
Aggiungere una nuova colonna passando come Series: uno due tre a 1.0 1 10.0 b 2.0 2 20.0 c 3.0 3 30.0 d NaN 4 NaN Aggiungere una nuova colonna utilizzando le colonne esistenti nel DataFrame: uno due tre quattro a 1.0 1 10.0 11.0 b 2.0 2 20.0 22.0 c 3.0 3 30.0 33.0 d NaN 4 NaN NaN
È possibile eliminare o espandere le colonne; lasciamo che un esempio ci spieghi come fare.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']), 'three': pd.Series([10, 20, 30], index=['a', 'b', 'c']) df = pd.DataFrame(d) print("Il nostro dataframe è:") print(df) # utilizzando del function print("Rimozione della prima colonna utilizzando la funzione del:") del df['one'] print(df) # utilizzando pop function print("Rimozione di un'altra colonna utilizzando la funzione POP:") df.pop('two') print(df)
Risultato esecuzione:
Il nostro dataframe è: one three two a 1.0 10.0 1 b 2.0 20.0 2 c 3.0 30.0 3 d NaN NaN 4 Rimozione della prima colonna utilizzando la funzione del: three two a 10.0 1 b 20.0 2 c 30.0 3 d NaN 4 Rimozione di un'altra colonna utilizzando la funzione POP: three a 10.0 b 20.0 c 30.0 d NaN
Ora, vedremo attraverso un esempio come selezionare, aggiungere e rimuovere righe. Iniziamo con il concetto di selezione.
È possibile selezionare una riga passando un'etichetta di riga alla funzione loc.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(d) print(df.loc['b'])
Risultato esecuzione:
one 2.0 two 2.0 Nome: b, dtype: float64
Il risultato è una serie con etichette come nomi delle colonne del DataFrame e il nome della serie viene utilizzato per recuperare le sue etichette.
È possibile selezionare una riga passando un posizionamento intero alla funzione iloc.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(d) print(df.iloc[2])
Risultato esecuzione:
one 3.0 two 3.0 Nome: c, dtype: float64
È possibile selezionare più righe utilizzando l'operatore ':'.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd d = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']), 'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) df = pd.DataFrame(d) print(df[2:4])
Risultato esecuzione:
one two c 3.0 3 d NaN 4
Aggiungi nuove righe al DataFrame utilizzando la funzione append. Questa funzione aggiungerà le righe alla fine.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b']) df2 = pd.DataFrame([[5, 6], [7, 8]], columns=['a', 'b']) df = df.append(df2) print(df)
Risultato esecuzione:
a b 0 1 2 1 3 4 0 5 6 1 7 8
Elimina righe dal DataFrame utilizzando l'etichetta dell'indice. Se le etichette sono duplicate, verranno eliminate più righe.
Se hai notato, nell'esempio sopra, gli etichette sono duplicati. Elimineremo un'etichetta e vedremo quante righe verranno eliminate.
# Filename: pandas.py # author by: it.oldtoolbag.com # Importa il pacchetto di dipendenza pandas e assegna un alias import pandas as pd df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b']) df2 = pd.DataFrame([[5, 6], [7, 8]], columns=['a', 'b']) df = df.append(df2) # Elimina righe con etichetta 0 df = df.drop(0) print(df)
Risultato esecuzione:
a b 1 3 4 1 7 8
Nell'esempio sopra, sono stati eliminati due righe perché contenevano lo stesso etichetta 0.