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
通过这种方式,我们可以根据公司的成长确定适当的价值。