Панди: як знайти різницю між двома колонками


Щоб знайти різницю між двома стовпцями в pandas DataFrame, ви можете використати такий синтаксис:

 df[' difference '] = df[' column1 '] - df[' column2 ']

Наступні приклади показують, як використовувати цей синтаксис на практиці.

Приклад 1: Знайти різницю між двома стовпцями

Припустімо, що ми маємо наступний DataFrame pandas, який показує загальні продажі для двох регіонів (A та B) за вісім послідовних періодів продажів:

 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

У наведеному нижче коді показано, як обчислити різницю між продажами регіону B і регіону A для кожного періоду продажу:

 #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

Ми також можемо обчислити абсолютну різницю в продажах за допомогою функції 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

Приклад 2: Знайдіть різницю між стовпцями за умовою

Ми також можемо відфільтрувати DataFrame, щоб відображати лише ті рядки, де різниця між стовпцями менша або більша за певне значення.

Наприклад, наведений нижче код повертає лише ті рядки, де продажі в регіоні A перевищують продажі в регіоні 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

Додаткові ресурси

Панди: як знайти різницю між двома лініями
Pandas: як групувати та агрегувати в кількох стовпцях

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *