pandas.DataFrame.quantile#
- DataFrame.quantile(q=0.5, axis=0, numeric_only=False, interpolation='linear', method='single')[源代码][源代码]#
返回在请求轴上的给定分位数的返回值。
- 参数:
- q浮点数或类似数组的对象,默认值为0.5(50%分位数)
值在 0 <= q <= 1 之间,要计算的分位数。
- 轴{0 或 ‘index’, 1 或 ‘columns’},默认 0
0 或 ‘index’ 表示按行,1 或 ‘columns’ 表示按列。
- numeric_onlybool, 默认为 False
仅包含 float, int 或 boolean 数据。
在 2.0.0 版本发生变更:
numeric_only
的默认值现在是False
。- 插值{‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}
这个可选参数指定当所需的分位数位于两个数据点 i 和 j 之间时要使用的插值方法:
线性:i + (j - i) * fraction,其中 fraction 是被 i 和 j 包围的索引的小数部分。
小写: i.
更高:j。
nearest: i 或 j 哪个最近。
中点: (i + j) / 2.
- 方法{‘single’, ‘table’}, 默认 ‘single’
是否按列计算分位数(’single’)或在所有列上计算(’table’)。当为’table’时,唯一允许的插值方法是’nearest’、’lower’和’higher’。
- 返回:
- Series 或 DataFrame
- 如果
q
是一个数组,将返回一个 DataFrame 索引是
q
,列是 self 的列,值是分位数。- 如果
q
是一个浮点数,将返回一个 Series index 是 self 的列,值是分位数。
- 如果
参见
core.window.rolling.Rolling.quantile
滚动分位数。
numpy.percentile
用于计算百分位数的 Numpy 函数。
例子
>>> df = pd.DataFrame( ... np.array([[1, 1], [2, 10], [3, 100], [4, 100]]), columns=["a", "b"] ... ) >>> df.quantile(0.1) a 1.3 b 3.7 Name: 0.1, dtype: float64 >>> df.quantile([0.1, 0.5]) a b 0.1 1.3 3.7 0.5 2.5 55.0
指定 method=’table’ 将计算所有列的分位数。
>>> df.quantile(0.1, method="table", interpolation="nearest") a 1 b 1 Name: 0.1, dtype: int64 >>> df.quantile([0.1, 0.5], method="table", interpolation="nearest") a b 0.1 1 1 0.5 3 100
指定 numeric_only=False 还将计算日期时间和时间增量数据的百分位数。
>>> 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