Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.quantile方法的使用。

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

返回在请求轴上的给定的quantile值。

参数

q : float 或 array-like, 默认 0.5 (50% quantile)

要计算的quantile值在 0 <= q <= 1之间。

axis : {0, 1, ‘index’, ‘columns’} (默认为 0)

行为0' index ',列为1'columns'

numeric_only : bool,默认值True

如果为False,也将计算datetimetimedelta数据的quantile。

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

这个可选参数指定了当所需quantile位于两个数据点i和j之间时要使用的插值方法:

1) linear: i + (j - i) *fraction,其中分数是指数中被i和j包围的小数部分。

2) loweri

3) higher: j

4) nearest: ij,以最接近的为准。

5) midpoint(i + j) / 2 

返回值

Series DataFrame

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

index是q,列是self的列,值是quantiles。

如果qfloat,则在

indexself的列,值是quantiles。

例子

>>> 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还将计算日期时间和时间增量数据的分位数

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