Pandas DataFrame.quantile(~)
方法返回指定分位数处的插值。
参数
1.q
| array-like
共 float
要计算的所需分位数,必须介于 0(含)和 1(含)之间。默认情况下, q=0.5
,即计算第 50 个百分位数的值。
2. axis
| None
或 int
或 string
| optional
是否按行或按列计算分位数:
轴 |
说明 |
---|---|
|
计算每列的分位数。 |
|
计算每行的分位数。 |
默认情况下,axis=0
。
3. numeric_only
| boolean
| optional
是否仅计算数字类型的行/列的分位数。如果设置为 False
,则还将计算具有 datetime
和 timedelta
的行/列的分位数。默认情况下,numeric_only=True
。
4. interpolation
| string
| optional
当给定百分位数位于两个 data-points 之间时,如何对值进行插值,例如 i
和 j
,其中 i<j
:
值 |
说明 |
---|---|
|
标准线性插补 |
|
返回 |
|
返回 |
|
返回 |
|
返回 |
默认情况下,interpolation="linear"
。
返回值
如果 q
是标量,则返回 Series
。否则,返回DataFrame
。
例子
考虑以下 DataFrame :
df = pd.DataFrame({"A":[2,4,6,8],"B":[5,6,7,8]})
df
A B
0 2 5
1 4 6
2 6 7
3 8 8
按列计算百分位
要计算每列的第 50 个百分位数:
df.quantile() # q=0.5
A 5.0
B 6.5
Name: 0.5, dtype: float64
这里,返回类型是Series
。为了解释输出,A
列中的值正好有 50% 小于 5.0
。
按行计算百分位
要计算每行的第 30 个百分位数:
df.quantile(q=0.3, axis=1)
0 2.9
1 4.6
2 6.3
3 8.0
Name: 0.3, dtype: float64
计算多个百分位数
要获取每列第 50 个和 75 个百分位数的值:
df.quantile([0.5, 0.75]) # returns a DataFrame
A B
0.50 5.0 6.50
0.75 6.5 7.25
更改插值方法
考虑以下 DataFrame :
df = pd.DataFrame({"A":[2,4,6,8]})
df
A
0 2
1 4
2 6
3 8
线性
考虑指定分位数对应的值不存在的情况:
df.quantile(0.5) # interpolation="linear"
A 5.0
Name: 0.5, dtype: float64
此处,由于 A
列中不存在对应于第 50 个百分位数的值,因此该值在 4 和 6 之间线性插值。
降低
df.quantile(0.5, interpolation="lower")
A 4
Name: 0.5, dtype: int64
同样,由于 50% 分位数不存在,我们需要执行插值。我们知道它在值 4 和 6 之间。通过传入 "lower"
,我们选择较低的值,即本例中的 4。
更高
df.quantile(0.5, interpolation="higher")
A 6
Name: 0.5, dtype: int64
与 "lower"
相同的逻辑,但我们采用较高的值。
这是相同的 df
供您参考:
df
A
0 2
1 4
2 6
3 8
最近的
df.quantile(0.5, interpolation="nearest")
A 6
Name: 0.5, dtype: int64
通过传入 "nearest"
,我们不再总是选择较低或较高的值,而是采用最接近的值。在本例中,50% 分位数为 5,恰好位于 4 和 6 的中间。在这种情况下,选择较高的值。
中点
df.quantile(0.5, interpolation="midpoint")
A 5.0
Name: 0.5, dtype: float64
在这里,我们只取下限值和上限值的中点,因此 (4+6)/2=5
。
相关用法
- Python Pandas DataFrame query方法用法及代码示例
- Python Pandas DataFrame empty属性用法及代码示例
- Python Pandas DataFrame pop方法用法及代码示例
- Python Pandas DataFrame nsmallest方法用法及代码示例
- Python Pandas DataFrame sample方法用法及代码示例
- Python Pandas DataFrame items方法用法及代码示例
- Python Pandas DataFrame max方法用法及代码示例
- Python Pandas DataFrame swaplevel方法用法及代码示例
- Python Pandas DataFrame agg方法用法及代码示例
- Python Pandas DataFrame copy方法用法及代码示例
- Python Pandas DataFrame pow方法用法及代码示例
- Python Pandas DataFrame insert方法用法及代码示例
- Python Pandas DataFrame lt方法用法及代码示例
- Python Pandas DataFrame all方法用法及代码示例
- Python Pandas DataFrame unstack方法用法及代码示例
- Python Pandas DataFrame mean方法用法及代码示例
- Python PySpark DataFrame filter方法用法及代码示例
- Python Pandas DataFrame tz_convert方法用法及代码示例
- Python Pandas DataFrame isin方法用法及代码示例
- Python PySpark DataFrame collect方法用法及代码示例
- Python PySpark DataFrame intersect方法用法及代码示例
- Python PySpark DataFrame dtypes属性用法及代码示例
- Python Pandas DataFrame rank方法用法及代码示例
- Python Pandas DataFrame tail方法用法及代码示例
- Python Pandas DataFrame transform方法用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | quantile method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。