Вы можете использовать следующий синтаксис для вычитания одного столбца из другого в кадре данных 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