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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。