Pandas-Python 中列的分位数和分位数排名
让我们看看如何在 Pandas 中找到列的分位数和十分位数。我们将使用pandas
模块的qcut()
函数。
熊猫.qcut()
Pandas 库的函数qcut()
是一个基于分位数的离散化函数。这意味着它将变量离散到基于等级或基于样本分位数的大小相等的桶中。
Syntax : pandas.qcut(x, q, labels=None, retbins: bool = False, precision: int = 3, duplicates: str = ‘raise’)
Parameters :
- x : 1d ndarray or Series.
- q : Number of quantiles. For example, 10 refers to deciles and 4 refers to quantiles.
- labels : Used as labels for the resulting bins. If it is set as False, it returns only integer indicators of the bins. If True, then it raises an error. By default, it is set to None.
- retbins : (Optional) It is a boolean which returns the (bins, labels) when set to True.
- precision : (Optional) The precision at which to store and display the bins labels.
- duplicates : (Optional) If bin edges are not unique, raise ValueError or drop non-uniques.
分位数等级
算法 :
- 导入
pandas
和numpy
模块。 - 创建一个数据框。
- 使用
pandas.qcut()
函数,通过Score
列,计算分位数离散化。并且q
设置为 4,因此从 0-3 分配值 - 打印具有分位数等级的数据框。
# importing the modules
import pandas as pd
import numpy as np
# creating a DataFrame
df = {'Name' : ['Amit', 'Darren', 'Cody', 'Drew',
'Ravi', 'Donald', 'Amy'],
'Score' : [50, 71, 87, 95, 63, 32, 80]}
df = pd.DataFrame(df, columns = ['Name', 'Score'])
# adding Quantile_rank column to the DataFrame
df['Quantile_rank'] = pd.qcut(df['Score'], 4,
labels = False)
# printing the DataFrame
print(df)
输出 :
等分等级
算法 :
- 导入
pandas
和numpy
模块。 - 创建一个数据框。
- 使用
pandas.qcut()
函数,通过Score
列,计算分位数离散化。并且q
设置为 10,因此从 0-9 分配值 - 打印具有十分位数等级的数据框。
# importing the modules
import pandas as pd
import numpy as np
# creating a DataFrame
df = {'Name' : ['Amit', 'Darren', 'Cody', 'Drew',
'Ravi', 'Donald', 'Amy'],
'Score' : [50, 71, 87, 95, 63, 32, 80]}
df = pd.DataFrame(df, columns = ['Name', 'Score'])
# adding Decile_rank column to the DataFrame
df['Decile_rank'] = pd.qcut(df['Score'], 10,
labels = False)
# printing the DataFrame
print(df)
输出 :
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。