Skip to main content

Python pandas library provides multitude of functions to work on two dimensioanl Data through the DataFrame class.

The sub() method of pandas DataFrame subtracts the elements of one DataFrame from the elements of another DataFrame. Invoking sub() method on a DataFrame object is equivalent to calling the binary subtraction operator(-).

The sub() method supports passing a parameter for missing values(np.nan, None). The subtract function of pandas is used to perform subtract operation on dataframes.

Syntax

pandas.DataFrame.sub(other, axis=’columns’, level=None, fill_value=None)

  • other : scalar, sequence, Series, or DataFrame – This parameter consists any single or multiple element data structure, or list-like object.
  • axis : {0 or ‘index’, 1 or ‘columns’} – This is used for deciding the axis on which the operation is applied.
  • level : int or label – The level parameter is used for broadcasting across a level and matching Index values on the passed MultiIndex level.
  • fill_value : float or None, default None – Whenever the dataframes have missing values, then to fill existing missing (NaN) values, we can use fill_value parameter.

The function will output the result of subtract function.

Example 1: Subtraction using pandas sub()

In this example, an array is provided to the subtract function of pandas. The axis parameter is provided to specify the axis on which the operation is performed. We can see in the output that the values are decreasing in the dataframe.

Input:

df

Output:

  speed weight
Audi 80 250
Jaguar 90 200
BMW 110 150

Input:

df.sub([15, 30], axis='columns')

Output:

  speed weight
Audi 65 220
Jaguar 75 170
BMW 95 120

Example 2: Using series data along with pandas subtraction function

In the 2nd example, series data is passed to the pandas sub() function. By providing the correct index, the values specified in the series data is deducted from the dataframe.

Input:

df

Output:

  speed weight
Audi 80 250
Jaguar 90 200
BMW 110 150

Input:

df.sub(pd.Series([7, 9, 11], index=['Audi', 'Jaguar', 'BMW']),
        axis='index')

Output:

  speed weight
Audi 73 243
Jaguar 81 191
BMW 99 139

Example 3: Subtraction using scalar values

Here scalar values are used for performing subtraction operation without using pandas subtraction function.

In [14]:

df

Output:

  speed weight
Audi 80 250
Jaguar 90 200
BMW 110 150

Input:

df - [6, 9]

Output:

  speed weight
Audi 74 241
Jaguar 84 191
BMW 104 141

Example: 

input:

import pandas as pd

 

# Create Data

data1 = [(2, 4, 6, 8),

         (1, 3, 5, 7),

         (5, 0, 0, 9)];

 

data2 = [(1, 1, 0 , 1),

         (1, 0, 1 , 1),

         (0, 1, 1 , 0)];

 

# Construct DataFrame1        

dataFrame1 = pd.DataFrame(data=data1);

print("DataFrame1:");

print(dataFrame1);

 

# Construct DataFrame2

dataFrame2 = pd.DataFrame(data=data2);

print("DataFrame2:");

print(dataFrame2);

 

# Subtracting DataFrame2 from DataFrame1

subtractionResults = dataFrame1 - dataFrame2;

print("Result of subtracting dataFrame1 from dataFrame2:");

print(subtractionResults);

output:

DataFrame1:

   0  1  2  3

0  2  4  6  8

1  1  3  5  7

2  5  0  0  9

DataFrame2:

   0  1  2  3

0  1  1  0  1

1  1  0  1  1

2  0  1  1  0

Result of subtracting dataFrame1 from dataFrame2:

   0  1  2  3

0  1  3  6  7

1  0  3  4  6

2  5 -1 -1  9
Tags
Submitted by shiksha.dahiya on February 16, 2021

Shiksha is working as a Data Scientist at iVagus. She has expertise in Data Science and Machine Learning.

About

Elix is a premium wordpress theme for portfolio, freelancer, design agencies and a wide range of other design institutions.