Изучение различных методов построения сгруппированных таблиц частот

Когда дело доходит до анализа и обобщения данных, одним из основных инструментов является таблица частот. Таблица частот отображает количество вхождений каждого отдельного значения в наборе данных. Хотя базовые таблицы частот полезны, иногда необходимо сгруппировать данные по интервалам или классам, чтобы получить более четкое представление о распределении. В этой статье мы рассмотрим различные методы построения сгруппированных таблиц частот, используя разговорный язык и примеры кода.

Метод 1: расчет вручную
Самый простой способ создать сгруппированную таблицу частот — вручную рассчитать частоту для каждого интервала. Допустим, у нас есть набор данных о возрастах, и мы хотим сгруппировать их по интервалам по 10 (например, 0–9, 10–19, 20–29 и т. д.). Вот пример на Python:

ages = [24, 18, 32, 27, 42, 15, 30, 22, 19, 36, 45, 28, 31, 26, 23, 21, 20, 25]
# Define the intervals
intervals = [(0, 9), (10, 19), (20, 29), (30, 39), (40, 49)]
# Initialize the frequency table
frequency_table = {interval: 0 for interval in intervals}
# Count the frequencies
for age in ages:
    for interval in intervals:
        if interval[0] <= age <= interval[1]:
            frequency_table[interval] += 1
# Display the frequency table
for interval, frequency in frequency_table.items():
    print(f"{interval}: {frequency}")

Метод 2: функция pandas.cut()
Если вы работаете с большим набором данных или хотите более эффективный способ построения сгруппированной таблицы частот, вы можете использовать функцию cut()из популярной библиотеки панд. Допустим, у нас есть набор данных с результатами экзаменов, и мы хотим сгруппировать их по буквенным оценкам (A, B, C, D, F). Вот пример:

import pandas as pd
scores = [85, 92, 78, 65, 91, 82, 75, 88, 95, 79, 83, 87, 72, 69, 94, 81, 76, 90]
# Define the intervals for each grade
intervals = [0, 60, 70, 80, 90, 100]
# Define the labels for each grade
labels = ['F', 'D', 'C', 'B', 'A']
# Create the frequency table
frequency_table = pd.cut(scores, bins=intervals, labels=labels, include_lowest=True).value_counts()
# Display the frequency table
print(frequency_table)

Метод 3: использование функции numpy.histogram()
Другой подход к построению сгруппированной таблицы частот — использование функции histogram()из библиотеки numpy. Этот метод автоматически рассчитывает для вас частоту и интервалы. Вот пример использования набора данных высот:

import numpy as np
heights = [165, 172, 168, 155, 160, 175, 180, 158, 163, 170, 169, 166, 176, 162, 159, 157, 173, 167, 171]
# Create the frequency table
hist, bins = np.histogram(heights, bins='auto')
# Display the frequency table
for i in range(len(hist)):
    print(f"{int(bins[i])}-{int(bins[i+1])}: {hist[i]}")

В этой статье мы рассмотрели различные методы построения сгруппированных таблиц частот. Мы начали с ручного расчета, где сами определяли интервалы и считали частоты. Затем мы исследовали два эффективных метода с использованием популярных библиотек, таких как pandas и numpy. Функция cut()в pandas позволила нам легко группировать данные по интервалам, а функция histogram()в numpy автоматически рассчитывала для нас интервалы и частоты. В зависимости от вашего набора данных и требований вы можете выбрать метод, который подходит вам лучше всего. Удачного анализа данных!