Subtracting A Pandas Series Object From Another

Overview:

  • The Series class of the python library pandas, implements a one-dimensional, mutable container for storing heterogeneous elements using the numpy.ndarray as the underlying storage.
  • In addition to providing a versatile one dimensional container, the pandas.Series provides numerous computational methods for analyzing the data.
  • The subtraction operation is a binary operation. A binary operation consumes two values to produce a new value. In case of subtraction between two pandas.Series instances, one element of the Series is subtracted from the another producing a new Series.
  • To subtract two pandas.Series instances, the function Series.sub() is used. The subtraction operator “–“ can as well be used for the same purpose. In the similar way to subtract a DataFrame instance from another, the DataFrame.sub() function can be used.
  • While using the sub() function explicitly, it is possible to replace any occurrence of None, using the parameter fill_value.

 

Example:

# Example Python program that subtracts one series from another

import pandas as pds

import numpy as np

 

# Generate ten random integers between 1 and 20

np.random.seed(1);

randomNumbers = np.random.randint(1, 20, 10);

# Create a pandas series

series1 = pds.Series(randomNumbers);

 

# Generate ten random integers between 1 to 5

np.random.seed(1);

randomNumbers = np.random.randint(1, 5, 10);

# Create a pandas series

series2 = pds.Series(randomNumbers);

 

# Subtract a pandas Series instance from another

series3 = series1.sub(series2);

print("Series1:");

print(series1);

 

print("Series2:");

print(series2);

 

print("Series3:");

print(series3);

 

Output:

Series1:

0     6

1    12

2    13

3     9

4    10

5    12

6     6

7    16

8     1

9    17

dtype: int64

Series2:

0    2

1    4

2    1

3    1

4    4

5    2

6    4

7    2

8    4

9    1

dtype: int64

Series3:

0     4

1     8

2    12

3     8

4     6

5    10

6     2

7    14

8    -3

9    16

dtype: int64

 

Example - Subtracting a pandas Series from another while replacing None values with zero:

# Example Python program that subtracts one series from another

# where one or more elements are None.

import pandas as pds

import numpy as np

 

# Create pandas.Series instances

lookAndSaySeries = pds.Series([1, 11, 21, 1211, 111221, 312211]);

series2Subtract  = pds.Series([1, 0, None, 2, None, 4]);

 

# While subtracting replace any None with zero

newSeries        = lookAndSaySeries.sub(series2Subtract, fill_value=0);

 

print("Look and Say Series:");

print(lookAndSaySeries);

 

print("Series to Subtract:");

print(series2Subtract);

 

print("New series after subtraction:");

print(newSeries);

 

Output:

Look and Say Series:

0         1

1        11

2        21

3      1211

4    111221

5    312211

dtype: int64

Series to Subtract:

0    1.0

1    0.0

2    NaN

3    2.0

4    NaN

5    4.0

dtype: float64

New series after subtraction:

0         0.0

1        11.0

2        21.0

3      1209.0

4    111221.0

5    312207.0

dtype: float64

 

Example:

Any python sequence of same length like a Python tuple, a Python list can be subtracted from a pandas.Series, as given in the Python example program below.

# Example Python program that subtracts the elements

# of a tuple from a pandas.Series

import pandas as pds

import numpy as np

 

numbers = [1, 1, 4, 8, 22, 51];

 

# Create a pandas.Series from a Python List

series1 = pds.Series(numbers);

 

# Create a python tuple

toSubtract = (1, 2, 3, 4, 9, 20);

 

# Subtract a tuple from a series

resultantSeries = series1.sub(toSubtract);

 

print("Contents of the pandas.Series instance:");

print(series1);

 

print("Contents of the Python tuple:");

print(series1);

 

print("Resultant pandas.Series after subtracting the tuple:");

print(resultantSeries);

 

Output:

Contents of the pandas.Series instance:

0     1

1     1

2     4

3     8

4    22

5    51

dtype: int64

Contents of the Python tuple:

0     1

1     1

2     4

3     8

4    22

5    51

dtype: int64

Resultant pandas.Series after subtracting the tuple:

0     0

1    -1

2     1

3     4

4    13

5    31

dtype: int64


Copyright 2023 © pythontic.com