Как вычесть два столбца в Pandas DataFrame


Вы можете использовать следующий синтаксис для вычитания одного столбца из другого в кадре данных pandas:

#subtract column 'B' from column 'A'
df['A-B'] = df.A - df.B

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: вычесть два столбца в Pandas

В следующем коде показано, как вычесть один столбец из другого в кадре данных pandas и присвоить результат новому столбцу:

import pandas as pd

#create DataFrame 
df = pd.DataFrame({'A': [25, 12, 15, 14, 19, 23, 25, 29],
 'B': [5, 7, 8, 9, 12, 9, 12, 4],
 'C': [11, 8, 10, 6, 6, 5, 9, 12]})

#subtract column B from column A
df['A-B'] = df.A - df.B

#view DataFrame
df

 A B C A-B
0 25 5 11 20
1 12 7 8 5
2 15 8 10 7
3 14 9 6 5
4 19 12 6 7
5 23 9 5 14
6 25 12 9 13
7 29 4 12 25

В новом столбце под названием « AB » отображаются результаты вычитания значений в столбце B из значений в столбце A.

Пример 2: вычесть два столбца с пропущенными значениями

Если мы вычтем один столбец из другого в pandas DataFrame и в одном из столбцов окажутся пропущенные значения, результатом вычитания всегда будет отсутствующее значение:

import pandas as pd
import numpy as np

#create DataFrame with some missing values
df = pd.DataFrame({'A': [25, 12, 15, 14, 19, 23, 25, 29],
 'B': [5, 7, np.nan , 9, 12, np.nan , 12, 4],
 'C': [np.nan , 8, 10, 6, 6, 5, 9, 12]}) 

#subtract column B from column A
df['A-B'] = df.A - df.B

#view DataFrame
df

 A B C A-B
0 25 5.0 NaN 20.0
1 12 7.0 8.0 5.0
2 15 NaN 10.0 NaN
3 14 9.0 6.0 5.0
4 19 12.0 6.0 7.0
5 23 NaN 5.0 NaN
6 25 12.0 9.0 13.0
7 29 4.0 12.0 25.0

При желании вы можете заменить все отсутствующие значения в dataFrame нулями, используя функцию df.fillna(0) перед вычитанием одного столбца из другого:

import pandas as pd
import numpy as np

#create DataFrame with some missing values
df = pd.DataFrame({'A': [25, 12, 15, 14, 19, 23, 25, 29],
 'B': [5, 7, np.nan , 9, 12, np.nan , 12, 4],
 'C': [np.nan , 8, 10, 6, 6, 5, 9, 12]}) 

#replace all missing values with zeros
df = df.fillna( 0 )

#subtract column B from column A
df['A-B'] = df.A - df.B

#view DataFrame
df
 A B C A-B
0 25 5.0 0.0 20.0
1 12 7.0 8.0 5.0
2 15 0.0 10.0 15.0
3 14 9.0 6.0 5.0
4 19 12.0 6.0 7.0
5 23 0.0 5.0 23.0
6 25 12.0 9.0 13.0
7 29 4.0 12.0 25.0

Дополнительные ресурсы

Как добавить строки в Pandas DataFrame
Как добавить массив Numpy в фрейм данных Pandas
Как подсчитать количество строк в Pandas DataFrame

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.