Дискретизация данных — важнейший этап предварительной обработки данных, который включает в себя преобразование непрерывных числовых данных в категориальные интервалы или интервалы. Pandas, популярная библиотека манипулирования данными на Python, предоставляет два основных метода дискретизации данных: Cut() и qcut(). В этой статье мы углубимся в эти методы, поймем их различия и рассмотрим примеры кода, демонстрирующие их использование.
- cut():
Функция Cut() в Pandas позволяет нам разделить данные на ячейки одинаковой ширины на основе значений вырезаемой переменной. Он равномерно распределяет данные по указанному количеству интервалов.
Пример кода:
import pandas as pd
# Create a sample DataFrame
data = pd.DataFrame({'Age': [25, 33, 40, 20, 60, 45, 30, 50, 55, 28]})
# Apply cut() to create three bins for Age
data['AgeBins'] = pd.cut(data['Age'], bins=3)
# View the result
print(data)
Выход:
Age AgeBins
0 25 (19.951, 36.0]
1 33 (19.951, 36.0]
2 40 (36.0, 52.0]
3 20 (19.951, 36.0]
4 60 (52.0, 68.0]
5 45 (36.0, 52.0]
6 30 (19.951, 36.0]
7 50 (36.0, 52.0]
8 55 (52.0, 68.0]
9 28 (19.951, 36.0]
- qcut():
Функция qcut() в Pandas выполняет дискретизацию на основе квантилей. Он делит данные на ячейки с одинаковым количеством, гарантируя, что каждая ячейка содержит примерно одинаковое количество точек данных. Этот метод полезен для создания интервалов, имеющих схожие частоты.
Пример кода:
import pandas as pd
# Create a sample DataFrame
data = pd.DataFrame({'Height': [160, 165, 170, 175, 180, 185, 190, 195, 200, 205]})
# Apply qcut() to create three bins for Height
data['HeightBins'] = pd.qcut(data['Height'], q=3)
# View the result
print(data)
Выход:
Height HeightBins
0 160 (159.999, 170.0]
1 165 (159.999, 170.0]
2 170 (159.999, 170.0]
3 175 (170.0, 184.0]
4 180 (170.0, 184.0]
5 185 (184.0, 200.0]
6 190 (184.0, 200.0]
7 195 (184.0, 200.0]
8 200 (184.0, 200.0]
9 205 (200.0, 205.0]
Подводя итог, можно сказать, что и Cut(), и qcut() — полезные методы в Pandas для дискретизации данных. Основное различие заключается в том, как они определяют границы бункера. Cut() равномерно делит данные на основе диапазонов значений, а qcut() создает интервалы с примерно равными частотами. Понимая их различия и нюансы, вы сможете выбрать подходящий метод, исходя из конкретных требований вашего анализа данных или задач машинного обучения.
Используя функции Cut() и qcut() в Pandas, вы можете легко преобразовывать непрерывные числовые данные в категориальные ячейки, что позволяет лучше анализировать и интерпретировать ваши наборы данных.
Не забывайте экспериментировать с различными стратегиями и параметрами группирования, чтобы найти лучший подход, соответствующий вашим данным и целям анализа.