Panda: come trovare la differenza tra due colonne
Per trovare la differenza tra due colonne in un DataFrame panda, puoi utilizzare la seguente sintassi:
df[' difference '] = df[' column1 '] - df[' column2 ']
Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.
Esempio 1: trova la differenza tra due colonne
Supponiamo di avere il seguente DataFrame panda che mostra le vendite totali per due regioni (A e B) per otto periodi di vendita consecutivi:
import pandas as pd #createDataFrame df = pd. DataFrame ({' period ': [1, 2, 3, 4, 5, 6, 7, 8], ' A_sales ': [12, 14, 15, 13, 18, 20, 19, 24], ' B_sales ': [14, 19, 20, 22, 24, 20, 17, 23]}) #view DataFrame df period A_sales B_sales 0 1 12 14 1 2 14 19 2 3 15 20 3 4 13 22 4 5 18 24 5 6 20 20 6 7 19 17 7 8 24 23
Il seguente codice mostra come calcolare la differenza tra le vendite della Regione B e della Regione A per ciascun periodo di vendita:
#add new column to represent difference between B sales and A sales df[' diff '] = df[' B_sales '] - df[' A_sales '] #view DataFrame df period A_sales B_sales diff 0 1 12 14 2 1 2 14 19 5 2 3 15 20 5 3 4 13 22 9 4 5 18 24 6 5 6 20 20 0 6 7 19 17 -2 7 8 24 23 -1
Potremmo anche calcolare la differenza assoluta nelle vendite utilizzando la funzione pandas.Series.abs() :
#add new column to represent absolute difference between B sales and A sales df[' diff '] = pd. Series . abs (df[' B_sales '] - df[' A_sales ']) #view DataFrame df period A_sales B_sales diff 0 1 12 14 2 1 2 14 19 5 2 3 15 20 5 3 4 13 22 9 4 5 18 24 6 5 6 20 20 0 6 7 19 17 2 7 8 24 23 1
Esempio 2: trova la differenza tra le colonne in base alla condizione
Possiamo anche filtrare DataFrame per mostrare solo le righe in cui la differenza tra le colonne è inferiore o superiore a un determinato valore.
Ad esempio, il codice seguente restituisce solo le righe in cui le vendite nella regione A sono maggiori delle vendite nella regione B:
#add new column to represent difference between B sales and A sales df[' diff '] = df[' B_sales '] - df[' A_sales '] #display rows where sales in region A is greater than sales in region B df[df[' diff ']< 0 ] period A_sales B_sales diff 6 7 19 17 -2 7 8 24 23 -1
Risorse addizionali
Panda: come trovare la differenza tra due linee
Panda: come raggruppare e aggregare su più colonne