Calculate the Range in Python

Your goal

You need to calculate the range of a numerical dataset in Python.

Step-by-step tutorial

The approach depends on whether you have a list or a DataFrame.

Approach 1: List data

Though the Python Standard Library contains an apparent range function, it's not really a function at all, but an immutable sequence type for generating sequences. So this isn't what you're after.

Instead, simply take the difference of the max and min of the dataset:

>>> data = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
>>> max(data) - min(data)
8

Approach 2: Pandas DataFrame

You'll need to do the max/min trick for a DataFrame too, since it doesn't have a function for the statistical range.

>>> import pandas as pd
>>> precip = pd.read_csv("precip-central-park.csv")
>>> precip
     YEAR   JAN   FEB   MAR   APR   MAY   JUN   JUL   AUG   SEP   OCT   NOV   DEC  ANNUAL
0    1869  2.53  6.87  4.61  1.39  4.15  4.40  3.20  1.76  2.81  6.48  2.03  5.02   45.25
1    1870  4.41  2.83  3.33  5.11  1.83  2.82  3.76  3.07  2.52  4.97  2.42  2.18   39.25
2    1871  2.07  2.72  5.54  3.03  4.04  7.05  5.57  5.60  2.34  7.50  3.56  2.24   51.26
3    1872  1.88  1.29  3.74  2.29  2.68  2.93  7.83  6.29  2.95  3.35  4.08  3.18   42.49
4    1873  5.34  3.80  2.09  4.16  3.69  1.28  4.61  9.56  3.14  2.73  4.63  2.96   47.99
..    ...   ...   ...   ...   ...   ...   ...   ...   ...   ...   ...   ...   ...     ...
146  2015  5.23  2.04  4.72  2.08  1.86  4.79  3.98  2.35  3.28  3.91  2.01  4.72   40.97
147  2016  4.41  4.40  1.17  1.61  3.75  2.60  7.02  1.97  2.79  4.15  5.41  2.89   42.17
148  2017  4.83  2.48  5.25  3.84  6.38  4.76  4.19  3.34  2.00  4.18  1.58  2.21   45.04
149  2018  2.18  5.83  5.17  5.78  3.53  3.11  7.45  8.59  6.19  3.59  7.62  6.51   65.55
150  2019  3.58  3.14  3.87  4.55  6.82  5.46  5.77  3.70  0.95  6.15  1.95  7.09   53.03

[151 rows x 14 columns]
>>> precip.max() - precip.min()
YEAR      150.00
JAN         9.94
FEB         6.41
MAR         9.89
APR        13.06
MAY         9.94
JUN        10.24
JUL        11.45
AUG        18.77
SEP        16.64
OCT        16.59
NOV        12.07
DEC         9.73
ANNUAL     54.47
dtype: float64

For a single column (a Pandas Series), you can do the same sort of thing:

>>> precip["JUL"].max() - precip["JUL"].min()
11.450000000000001

Good old floating point mathematics on that 11.45 result.