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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *