dtoolkit.accessor.series.jenks_bin#

dtoolkit.accessor.series.jenks_bin(s: Series, /, bins: int, **kwargs) Series[source]#

Bin values into discrete intervals via “natural breaks” (Fisher-Jenks algorithm).

Parameters:
binsint

The desired number of class. Requires 2 <= bins < len(s).

**kwargs

See the documentation for pandas.cut() for complete details on the keyword arguments.

Returns:
Series(float64)
Raises:
ModuleNotFoundError

If don’t have module named ‘jenkspy’.

Notes

This method could be called via s.jenks_bin or df.jenks_cut.

Examples

>>> import dtoolkit
>>> import pandas as pd
>>> s = pd.Series([1.3, 7.1, 7.3, 2.3, 3.9, 4.1, 7.8, 1.2, 4.3, 7.3, 5.0, 4.3])
>>> s
0     1.3
1     7.1
2     7.3
3     2.3
4     3.9
5     4.1
6     7.8
7     1.2
8     4.3
9     7.3
10    5.0
11    4.3
dtype: float64
>>> s.jenks_bin(3, include_lowest=True)
0     (1.199, 2.3]
1       (5.0, 7.8]
2       (5.0, 7.8]
3     (1.199, 2.3]
4       (2.3, 5.0]
5       (2.3, 5.0]
6       (5.0, 7.8]
7     (1.199, 2.3]
8       (2.3, 5.0]
9       (5.0, 7.8]
10      (2.3, 5.0]
11      (2.3, 5.0]
dtype: category
Categories (3, interval[float64, right]): [(1.199, 2.3] < (2.3, 5.0] < (5.0, 7.8]]