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.