Python Pandas 百分位數
Bangale Sampath Kumar Rao
2022年5月16日
在 Python 中,有一些內建函式,例如 mean()
、mode()
、median()
和 quantile()
函式。
開發人員認為此功能是資料清理過程中的關鍵步驟。
在 Python 中計算 Pandas 百分位數
一家豪華汽車公司想要發展它的分支機構,因為它試圖通過獲得人們的收入來尋找最佳位置。
import pandas as pd
import numpy as np
df = pd.read_excel("C:\\Users\\banga\\Downloads\\Record.xlsx")
df
輸出:
# A Dataframe with `Name` and `Monthly Income (in INR)` as columns present in the Record.xlsx file. These columns determine the income of people present in the respective locality.
index Name Monthly Income (in INR)
0 John 30000
1 Joel 35000
2 Albert 45000
3 Ali 50000
4 Jerin 70000
5 Robert 90000
6 Sampath 1000000
我們已經使用 pandas 將資料集匯入到 DataFrame 中。讓我們根據我們的要求過濾 DataFrame。
公司需要當地的平均收入,影響其成長。
df.describe()
輸出:
index Monthly Income (in INR)
count 7.000000
mean 188571.428571
std 358407.522774
min 30000.000000
25% 40000.000000
50% 50000.000000
75% 80000.000000
max 1000000.000000
我們可以推斷,均值高於人們的平均收入。我們使用百分比
概念來處理這些型別的實時情況。
percentile = df["Monthly Income (in INR)"].quantile(0.99)
percentile
輸出:
945399.9999999995
new_df = df[df["Monthly Income (in INR)"] <= percentile]
new_df
輸出:
index Name Monthly Income (in INR)
0 John 30000
1 Joel 35000
2 Albert 45000
3 Ali 50000
4 Jerin 70000
5 Robert 90000
我們找到了一種解決方案,現在我們必須在 DataFrame 中填充空值,主要是平均值。
df
輸出:
index Name Monthly Income (in INR)
0 John 30000.0
1 Joel 35000.0
2 Albert 45000.0
3 Ali NaN
4 Jerin 70000.0
5 Robert 90000.0
6 Sampath 1000000.0
avg = df["Monthly Income (in INR)"].mean()
df.fillna(avg)
輸出:
index Name Monthly Income (in INR)
0 John 30000.000000
1 Joel 35000.000000
2 Albert 45000.000000
3 Ali 211666.666667
4 Jerin 70000.000000
5 Robert 90000.000000
6 Sampath 1000000.000000
我們可以看到空值填充了平均收入
,但並不理想。為了克服這個問題,我們使用了另一種方法。
med = df["Monthly Income (in INR)"].median()
df.fillna(med)
輸出:
index Name Monthly Income (in INR)
0 John 30000.0
1 Joel 35000.0
2 Albert 45000.0
3 Ali 57500.0
4 Jerin 70000.0
5 Robert 90000.0
6 Sampath 1000000.0
通過這種方式,我們可以根據公司的成長確定適當的價值。