pandas.cut()
Функция cut() разбивает числовой массив на интервалы (бины) и сопоставляет каждому значению соответствующую категорию. Часто применяется для дискретизации непрерывных величин — например, классификации температур по уровням «холодно/норма/жарко».
Сигнатура
pandas.cut(x, bins, right=True, labels=None, retbins=False,
precision=3, include_lowest=False, duplicates="raise",
ordered=True)
Параметры
x— массив илиSeries.bins— число интервалов или список границ.right— включать правую границу.labels— метки категорий илиFalseдля возврата кодов.include_lowest— включать ли самую нижнюю границу.retbins— возвращать ли границы интервалов.
Возвращаемое значение
Categorical или Series категорий (опционально + массив границ).
Примеры
Пример 1. Разбиение на N интервалов
import pandas as pd
s = pd.Series([1, 5, 10, 15, 20])
print(pd.cut(s, bins=2))
0 (0.981, 10.5]
1 (0.981, 10.5]
2 (0.981, 10.5]
3 (10.5, 20.0]
4 (10.5, 20.0]
dtype: category
Categories (2, interval[float64, right]): [(0.981, 10.5] < (10.5, 20.0]]
Пример 2. Пользовательские границы с метками
Классификация температурных режимов:
import pandas as pd
temp = pd.Series([15, 22, 28, 35, 5])
print(pd.cut(temp, bins=[-10, 18, 26, 50],
labels=["cold", "normal", "hot"]))
0 cold
1 normal
2 hot
3 hot
4 cold
dtype: category
Categories (3, object): ['cold' < 'normal' < 'hot']
Пример 3. Возврат границ
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
cats, bins = pd.cut(s, bins=2, retbins=True)
print(bins)
[0.996 3. 5. ]
Пример 4. Числовые коды вместо меток
import pandas as pd
s = pd.Series([10, 20, 30, 40])
print(pd.cut(s, bins=[0, 15, 35, 100], labels=False))
0 0
1 1
2 1
3 2
dtype: int64
Пример 5. С include_lowest
import pandas as pd
s = pd.Series([0, 1, 2, 3])
print(pd.cut(s, bins=[0, 1, 3], include_lowest=True))
0 (-0.001, 1.0]
1 (-0.001, 1.0]
2 (1.0, 3.0]
3 (1.0, 3.0]
dtype: category
Categories (2, interval[float64, right]): [(-0.001, 1.0] < (1.0, 3.0]]
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.