pandas.DataFrame.quantile#

DataFrame.квантиль(q=0.5, ось=0, numeric_only=False, интерполяция='linear', метод='single')[источник]#

Возвращает значения на заданном квантиле по запрошенной оси.

Параметры:
qfloat или array-like, по умолчанию 0.5 (50% квантиль)

Значение между 0 <= q <= 1, квантиль(и) для вычисления.

ось{0 или 'index', 1 или 'columns'}, по умолчанию 0

Равно 0 или 'index' для построчного, 1 или 'columns' для постолбцового.

numeric_onlybool, по умолчанию False

Включите только float, int или логический data.

Изменено в версии 2.0.0: Значение по умолчанию для numeric_only теперь False.

интерполяция{‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}

Этот необязательный параметр определяет метод интерполяции для использования, когда желаемый квантиль находится между двумя точками данных i и j:

  • линейный: i + (j - i) * fraction, где доля является дробной частью индекса, окружённой i и j.

  • нижний: i.

  • выше: j.

  • ближайший: i или j в зависимости от того, что ближе.

  • середина: (i + j) / 2.

метод{‘single’, ‘table’}, по умолчанию ‘single’

Вычислять квантили по столбцам ('single') или по всем столбцам ('table'). При 'table' единственными допустимыми методами интерполяции являются 'nearest', 'lower' и 'higher'.

Возвращает:
Series или DataFrame
Если q является массивом, будет возвращен DataFrame, где

индекс q, столбцы - это столбцы self, а значения - квантили.

Если q является float, будет возвращён Series, где

индекс - это столбцы self, а значения - квантили.

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

core.window.rolling.Rolling.quantile

Скользящий квантиль.

numpy.percentile

cut() (в модуле pandas)

Примеры

>>> df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]),
...                   columns=['a', 'b'])
>>> df.quantile(.1)
a    1.3
b    3.7
Name: 0.1, dtype: float64
>>> df.quantile([.1, .5])
       a     b
0.1  1.3   3.7
0.5  2.5  55.0

Указание method='table' будет вычислять квантиль по всем столбцам.

>>> df.quantile(.1, method="table", interpolation="nearest")
a    1
b    1
Name: 0.1, dtype: int64
>>> df.quantile([.1, .5], method="table", interpolation="nearest")
     a    b
0.1  1    1
0.5  3  100

Указание numeric_only=False также вычислит квантиль данных datetime и timedelta.

>>> df = pd.DataFrame({'A': [1, 2],
...                    'B': [pd.Timestamp('2010'),
...                          pd.Timestamp('2011')],
...                    'C': [pd.Timedelta('1 days'),
...                          pd.Timedelta('2 days')]})
>>> df.quantile(0.5, numeric_only=False)
A                    1.5
B    2010-07-02 12:00:00
C        1 days 12:00:00
Name: 0.5, dtype: object