Scorri le righe di un DataFrame in Pandas
-
Attributo
index
per scorrere le righe in Pandas DataFrame -
Metodo
loc[]
per scorrere le righe di DataFrame in Python -
Metodo
iloc[]
per scorrere le righe di DataFrame in Python -
pandas.DataFrame.iterrows()
per ripetere i pandas su righe -
pandas.DataFrame.itertuples
per ripetere le righe sui pandas -
pandas.DataFrame.apply
per ripetere i pandas su righe
Possiamo scorrere le righe di un Pandas DataFrame usando l’attributo index
del DataFrame. Possiamo anche iterare attraverso righe di DataFrame Pandas usando i metodi loc()
, iloc()
, iterrows()
, itertuples()
, iteritems()
e apply()
degli oggetti DataFrame.
Useremo il seguente dataframe come esempio nelle sezioni seguenti.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
print(df)
Produzione:
Date Income_1 Income_2
0 April-10 10 20
1 April-11 20 30
2 April-12 10 10
3 April-13 15 5
4 April-14 10 40
5 April-16 12 13
Attributo index
per scorrere le righe in Pandas DataFrame
L’attributo index
di Pandas DataFrame fornisce un oggetto intervallo dalla riga superiore alla riga inferiore di un DataFrame. Possiamo usare l’intervallo per iterare su righe in Pandas.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
for i in df.index:
print(
"Total income in "
+ df["Date"][i]
+ " is:"
+ str(df["Income_1"][i] + df["Income_2"][i])
)
Produzione:
Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25
Aggiunge Income_1
e Income_2
di ogni riga e stampa il reddito totale.
Metodo loc[]
per scorrere le righe di DataFrame in Python
Il metodo loc[]
viene utilizzato per accedere a una riga alla volta. Quando usiamo il metodo loc[]
all’interno del bucle attraverso DataFrame, possiamo iterare attraverso le righe di DataFrame.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
for i in range(len(df)):
print(
"Total income in "
+ df.loc[i, "Date"]
+ " is:"
+ str(df.loc[i, "Income_1"] + df.loc[i, "Income_2"])
)
Produzione:
Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25
Qui, range(len(df))
genera un oggetto intervallo per eseguire il bucle su intere righe nel DataFrame.
Metodo iloc[]
per scorrere le righe di DataFrame in Python
Anche l’attributo iloc
di Pandas DataFrame è molto simile all’attributo loc
. L’unica differenza tra loc
e iloc
è che in loc
dobbiamo specificare il nome della riga o della colonna a cui accedere mentre in iloc
specifichiamo l’indice della riga o della colonna a cui accedere.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
for i in range(len(df)):
print(
"Total income in " + df.iloc[i, 0] + " is:" + str(df.iloc[i, 1] + df.iloc[i, 2])
)
Produzione:
Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25
Qui l’indice 0
rappresenta la prima colonna di DataFrame cioè Date
, l’indice 1
rappresenta la colonna Income_1
e l’indice 2
rappresenta la colonna Income_2
.
pandas.DataFrame.iterrows()
per ripetere i pandas su righe
pandas.DataFrame.iterrows()
restituisce l’indice della riga e tutti i dati della riga come una Series
. Quindi, potremmo usare questa funzione per iterare su righe in Pandas DataFrame.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
for index, row in df.iterrows():
print(
"Total income in "
+ row["Date"]
+ " is:"
+ str(row["Income_1"] + row["Income_2"])
)
Produzione:
Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25
pandas.DataFrame.itertuples
per ripetere le righe sui pandas
pandas.DataFrame.itertuples
restituisce un oggetto da iterare su tuple per ogni riga con il primo campo come indice e i campi rimanenti come valori di colonna. Quindi, potremmo anche usare questa funzione per iterare su righe in Pandas DataFrame.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
for row in df.itertuples():
print("Total income in " + row.Date + " is:" + str(row.Income_1 + row.Income_2))
Produzione:
Total income in April-10 is:30
Total income in April-11 is:50
Total income in April-12 is:20
Total income in April-13 is:20
Total income in April-14 is:50
Total income in April-16 is:25
pandas.DataFrame.apply
per ripetere i pandas su righe
pandas.DataFrame.apply
restituisce un DataFrame
come risultato dell’applicazione della funzione data lungo l’asse specificato del DataFrame.
Sintassi:
DataFrame.apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwds)
Dove, func
rappresenta la funzione da applicare e axis
rappresenta l’asse lungo il quale viene applicata la funzione. Possiamo usare axis=1
o axis = 'columns'
per applicare la funzione a ciascuna riga.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
income1 = [10, 20, 10, 15, 10, 12]
income2 = [20, 30, 10, 5, 40, 13]
df = pd.DataFrame({"Date": dates, "Income_1": income1, "Income_2": income2})
print(
df.apply(
lambda row: "Total income in "
+ row["Date"]
+ " is:"
+ str(row["Income_1"] + row["Income_2"]),
axis=1,
)
)
Produzione:
0 Total income in April-10 is:30
1 Total income in April-11 is:50
2 Total income in April-12 is:20
3 Total income in April-13 is:20
4 Total income in April-14 is:50
5 Total income in April-16 is:25
dtype: object
Qui, la parola chiave lambda
viene utilizzata per definire una funzione inline che viene applicata a ciascuna riga.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticolo correlato - Pandas DataFrame
- Come ottenere le intestazioni delle colonne DataFrame Pandas come lista
- Come cancellare la colonna DataFrame Pandas DataFrame
- Come convertire la colonna DataFrame in data e ora in pandas
- Converti un Float in un Integer in Pandas DataFrame
- Ordina Pandas DataFrame in base ai valori di una colonna
- Ottieni l'aggregato di Pandas Group-By e Sum
Articolo correlato - Pandas DataFrame Row
- Ottieni il conteggio delle righe di un DataFrame Pandas
- Mescola casualmente le righe DataFrame in Pandas
- Filtra le righe del dataframe in base ai valori delle colonne in Pandas
- Ottieni l'indice di tutte le righe la cui colonna specifica soddisfa una determinata condizione in Pandas
- Ottieni l'indice delle righe la cui colonna corrisponde a un valore specifico in Pandas