当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.DataFrame.quantile用法及代码示例


用法:

DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpolation='linear')

返回请求轴上给定分位数的值。

参数

qfloat 或 array-like,默认 0.5(50% 分位数)

0 <= q <= 1 之间的值,即要计算的分位数。

axis{0, 1, ‘index’, ‘columns’},默认 0

等于 0 或 ‘index’ 表示逐行,1 或 ‘columns’ 表示逐列。

numeric_only布尔值,默认为真

如果为 False,还将计算 datetime 和 timedelta 数据的分位数。

interpolation{‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}

当所需的分位数位于两个数据点 ij 之间时,此可选参数指定要使用的插值方法:

  • 线性: i + (j - i) * fraction ,其中 fraction 是由 ij 包围的索引的小数部分。

  • 下:i

  • 更高:j

  • 最近:ij 以最近的为准。

  • 中点:(i + j)/2。

返回

Series或DataFrame

如果q 是一个数组,将返回一个 DataFrame,其中

索引是q,列是self的列,值是分位数。

如果q 是浮点数,则将返回一个系列,其中

index 是 self 的列,值是分位数。

例子

>>> 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

指定 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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.quantile。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。