Facebook Page Twitter Page LinkedIn Page
× Pandas Tutorial Pandas Resources


The Pandas sub() function is used to get subtraction of series and argument, element-wise (binary operator sub). It is equivalent to series - other, but with support to substitute a fill_value for missing data as one of the parameters. The syntax for using this function is given below:

Syntax

Series.sub(other, level=None, fill_value=None)

Parameters

other Required. Specify scalar value or Series.
level Optional. Specify int or name to broadcast across a level, matching Index values on the passed MultiIndex level. Default is None.
fill_value Optional. Specify value to fill existing missing (NaN) values, and any new element needed for successful Series alignment. If data in both corresponding Series locations is missing the result will be missing. Default is None.

Return Value

Returns the result of the arithmetic operation.

Example: Subtracting a scalar value to the Series

In the below example, the sub() function is used to subtract a scalar value from the given series.

import pandas as pd
import numpy as np

x = pd.Series([10, 20, 30, 40, 50])

print("The Series contains:")
print(x)

#subtracting 3 from the Series
print("\nx.sub(3) returns:")
print(x.sub(3))

The output of the above code will be:

The Series contains:
0    10
1    20
2    30
3    40
4    50
dtype: int64

x.sub(3) returns:
0     7
1    17
2    27
3    37
4    47
dtype: int64

Example: Subtracting two Series

A series can be subtracted from another series in the similar fashion. Consider the following example:

import pandas as pd
import numpy as np

x = pd.Series([10, np.NaN, 30, 40], index=['A', 'B', 'C', 'D'])
y = pd.Series([1, 2, 3, np.NaN], index=['A', 'B', 'C', 'D'])

print("The x contains:")
print(x)

print("\nThe y contains:")
print(y)

#subtracting y from x
print("\nx.sub(y, fill_value=0) returns:")
print(x.sub(y, fill_value=0))

The output of the above code will be:

The x contains:
A    10.0
B     NaN
C    30.0
D    40.0
dtype: float64

The y contains:
A    1.0
B    2.0
C    3.0
D    NaN
dtype: float64

x.sub(y, fill_value=0) returns:
A     9.0
B    -2.0
C    27.0
D    40.0
dtype: float64

Example: Subtracting columns in a DataDrame

The sub() function can be applied in a data frame to get the subtraction of two series/column element-wise. Consider the following example.

import pandas as pd
import numpy as np

df = pd.DataFrame({
  "Bonus": [5, 3, 2, 4],
  "Total Salary": [60, 62, 65, 59]},
  index= ["John", "Marry", "Sam", "Jo"]
)

print("The DataFrame is:")
print(df)

#subtracting 'Bonus' from 'Total Salary' column
df['Salary'] = df['Total Salary'].sub(df['Bonus'])

print("\nThe DataFrame is:")
print(df)

The output of the above code will be:

The DataFrame is:
       Bonus  Total Salary
John       5            60
Marry      3            62
Sam        2            65
Jo         4            59

The DataFrame is:
       Bonus  Total Salary  Salary
John       5            60      55
Marry      3            62      59
Sam        2            65      63
Jo         4            59      55

❮ Pandas Series - Functions