DataFrame.mode() / Series.mode()

Метод mode() возвращает моду — значение(я), встречающиеся чаще всего. Если несколько значений имеют одинаковую максимальную частоту, возвращаются все. Работает и для нечисловых данных.

Сигнатура

DataFrame.mode(axis=0, numeric_only=False, dropna=True)
Series.mode(dropna=True)

Параметры

  • axis — 0 (по столбцам) или 1 (по строкам); только для DataFrame.

  • numeric_only — учитывать только числовые столбцы.

  • dropna — игнорировать NaN (по умолчанию True).

Возвращаемое значение

Series (для Series.mode()) или DataFrame (для DataFrame.mode()), где строк столько, сколько мод. Часто результат — одна строка.

Примеры

Пример 1. Самая частая команда робота

import pandas as pd

s = pd.Series(["FWD", "LEFT", "FWD", "STOP", "FWD", "LEFT"])
print(s.mode())
0    FWD
dtype: object

Пример 2. Несколько мод

import pandas as pd

s = pd.Series([1, 2, 2, 3, 3, 4])
print(s.mode())
0    2
1    3
dtype: int64

Пример 3. Мода по столбцам DataFrame

import pandas as pd

df = pd.DataFrame({
    "cmd":    ["FWD", "FWD", "LEFT", "FWD"],
    "speed":  [150, 120, 150, 150],
})
print(df.mode())
   cmd  speed
0  FWD    150

Пример 4. dropna=False

import pandas as pd
import numpy as np

s = pd.Series([1, np.nan, np.nan, 2, 3])
print(s.mode(dropna=False))
0    NaN
dtype: float64

Пример 5. По строкам

import pandas as pd

df = pd.DataFrame({"a": [1, 2, 3], "b": [1, 3, 3], "c": [2, 2, 3]})
print(df.mode(axis=1))
   0
0  1
1  2
2  3

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.