Scorri le righe di un DataFrame in Pandas
-
Attributo
indexper 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.itertuplesper ripetere le righe sui pandas -
pandas.DataFrame.applyper 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
