Pandas як категоризувати вік бази
Категоризація віку в Pandas за допомогою функції cut () або qcut ().
cut () розбиває дані на інтервали за заданими межами, а qcut () розбиває дані на інтервали рівного розміру.
Приклад використання cut () для категоризації віку на групи «діти», «підлітки», «дорослі» і «літні»:
import pandas as pd # DataFrame с возрастом df = pd.DataFrame({'возраст': [12, 25, 36, 54, 67, 80]}) # Границы возрастных категорий bins = [0, 18, 30, 60, 120] # Новый столбец с категориями возраста df['возрастная группа'] = pd.cut(df['возраст'], bins, labels=['дети', 'подростки', 'взрослые', 'пожилые']) print(df)
Вивід на екран:
возраст возрастная группа 0 12 дети 1 25 подростки 2 36 взрослые 3 54 взрослые 4 67 пожилые 5 80 пожилые
Таким чином, було створено новий стовпець «возрастная группа», який містить категорії віку на основі меж, заданих у bins. Категорії позначені мітками, зазначеними в параметрі labels.
Категоризація віку в Pandas за допомогою бібліотеки NumPy і функції digitize ()
Функція digitize () розбиває дані на інтервали за заданими межами і повертає індекси інтервалів для кожного елемента вхідного масиву.
Приклад використання digitize () для категоризації віку на групи «діти», «підлітки», «дорослі» і «літні»:
import pandas as pd import numpy as np # Создаем DataFrame с возрастом df = pd.DataFrame({'возраст': [12, 25, 36, 54, 67, 80]}) # Определяем границы возрастных категорий bins = [0, 18, 30, 60, np.inf] # Добавляем новый столбец с категориями возраста df['возрастная группа'] = np.digitize(df['возраст'], bins, right=True) # Заменяем числовые индексы на категории labels = {1: 'дети', 2: 'подростки', 3: 'взрослые', 4: 'пожилые'} df['возрастная группа'] = df['возрастная группа'].replace(labels) print(df)
Вивід на екран:
возраст возрастная группа 0 12 дети 1 25 подростки 2 36 взрослые 3 54 взрослые 4 67 пожилые 5 80 пожилые
Таким чином, було створено новий стовпець «возрастная группа», який містить категорії віку на основі меж, заданих у bins. Індекси категорій позначені числами від 1 до 4, потім ми замінили числові індекси на категорії, використовуючи словник labels.