English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

DataFramePandas

   Operazioni di base su Pandas DataFrame

DataFrame è una struttura dati bidimensionale, ossia, i dati sono allineati in tabella per righe e colonne.

Funzioni di DataFrame

Le colonne potenziali sono di diversi tipi La dimensione è variabile Asse etichettato (righe e colonne) Esegui operazioni aritmetiche sulle righe e sulle colonne

Struttura

pandas.Series

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.

pandas.DataFrame

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.

Creare un DataFrame

È 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.

Creare un DataFrame vuoto

È 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: []

Creare un DataFrame da List

 # 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
Attenzione:Il parametro dtype cambia il tipo della colonna Age in float.

Creare un DataFrame da ndarray / List di Dict

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
Attenzione:Rispettano i valori 0, 1, 2, 3. Sono gli indici di default assegnati a ciascun oggetto utilizzando la funzione range(n).

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
Attenzione:Il parametro index assegna un indice a ogni riga.

Creazione di DataFrame da lista di dizionari

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
Attenzione:NaN (non numerico) viene aggiunto nelle aree mancanti.

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
Attenzione:Il DataFrame df2 è stato creato utilizzando un'indice di colonna diverso dal dizionario chiave; quindi, NaN è stato aggiunto ai posti. Mentre df1 è stato creato utilizzando un'indice di colonna uguale ai dizionari chiave, quindi è stato aggiunto NaN.

Creazione di un DataFrame da una serie di dizionario

È 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.

Ricerca delle 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

Aggiunta delle colonne

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

Eliminazione delle colonne

È 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

Ricerca, aggiunta e rimozione di righe

Ora, vedremo attraverso un esempio come selezionare, aggiungere e rimuovere righe. Iniziamo con il concetto di selezione.

Ricerca per etichetta

È 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.

Ricerca per posizione intera

È 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

Taglio delle righe

È 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 righe

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

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.