РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
55 of 687 menu

Метод mode

Метод mode применяется к DataFrame и возвращает моду для каждого столбца или строки. Мода - это значение, которое встречается чаще всего. Если несколько значений имеют одинаковую максимальную частоту, то все они включаются в результат. Метод возвращает DataFrame, где каждая строка соответствует одному модальному значению для соответствующего столбца. Результат всегда отсортирован по возрастанию.

Основные параметры метода:

  • axis - ось, по которой вычисляется мода: 0 (по умолчанию) - для столбцов, 1 - для строк
  • numeric_only - если True, то вычисления только для числовых столбцов
  • dropna - если True (по умолчанию), то пропущенные значения не учитываются

Синтаксис

df.mode([axis], [numeric_only], [dropna])

Пример

Давайте найдём моду для каждого столбца таблицы:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 2, 3, 3, 3], 'b': [10, 10, 20, 20, 30, 30] }) print(df.mode())

Результат выполнения кода:

a b 0 3 10.0 1 3 20.0 2 3 30.0

В столбце a мода равна 3, так как это значение встречается три раза. В столбце b все значения встречаются по два раза, поэтому в результате три строки.

Пример

Давайте найдём моду для каждой строки, указав ось 1:

import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 2, 3], 'b': [1, 2, 3, 3] }) print(df.mode(axis=1))

Результат выполнения кода:

0 0 1.0 1 2.0 2 2.0 3 3.0

Пример

Давайте рассмотрим работу с пропущенными значениями. По умолчанию dropna равен True, поэтому пропуски игнорируются:

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, 1, np.nan, 2, 2], 'b': [10, 10, 10, 20, 20] }) print(df.mode())

Результат выполнения кода:

a b 0 1.0 10.0 1 2.0 20.0

В столбце a значения 1 и 2 встречаются по два раза, поэтому оба являются модой. Пропуск был проигнорирован.

Пример

Если мы хотим включить пропуски в расчёт, установим dropna в False:

import pandas as pd import numpy as np df = pd.DataFrame({ 'a': [1, 1, np.nan, 2, 2], 'b': [10, 10, 10, 20, 20] }) print(df.mode(dropna=False))

Результат выполнения кода:

a b 0 1.0 10.0 1 2.0 20.0

Обратите внимание: столбец a снова выдаёт два модальных значения, так как пропуск не влияет на частоту встречаемости значений 1 и 2.

Пример

Давайте найдём моду только для числовых столбцов с помощью параметра numeric_only:

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 2, 2, 2], 'b': ['x', 'y', 'x', 'y', 'z'], 'c': [10, 10, 20, 20, 20] }) print(df.mode(numeric_only=True))

Результат выполнения кода:

a c 0 2.0 20.0

В результат попали только числовые столбцы a и c, столбец b со строковыми данными был исключён.

Смотрите также

  • метод mean,
    который вычисляет среднее арифметическое
  • метод median,
    который вычисляет медиану значений
  • метод value_counts,
    который подсчитывает количество уникальных значений
  • метод describe,
    который считает описательную статистику
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить