Python Pandas 百分位數

Bangale Sampath Kumar Rao 2022年5月16日
Python Pandas 百分位數

在 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

通過這種方式,我們可以根據公司的成長確定適當的價值。

相關文章 - Python Pandas