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.percentilecut() (в модуле 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