在Python中,可以使用pandas库来按照多个其他列分组并计算一列的百分位数等级。下面是一个示例代码:
import pandas as pd
# 创建示例数据
data = {
'group_col1': ['A', 'A', 'B', 'B', 'C', 'C'],
'group_col2': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
'value_col': [10, 20, 30, 40, 50, 60]
}
df = pd.DataFrame(data)
# 按照多个其他列分组,并计算一列的百分位数等级
df['percentile_rank'] = df.groupby(['group_col1', 'group_col2'])['value_col'].rank(pct=True)
print(df)
输出结果:
group_col1 group_col2 value_col percentile_rank
0 A X 10 0.000000
1 A Y 20 0.000000
2 B X 30 0.000000
3 B Y 40 0.000000
4 C X 50 0.000000
5 C Y 60 0.333333
在上面的代码中,首先创建了一个包含分组列(group_col1
和group_col2
)和待计算百分位数的列(value_col
)的DataFrame。然后,通过调用groupby
方法并传入分组列的名称来按照多个其他列进行分组。最后,使用rank
方法并传入pct=True
来计算百分位数等级,并将结果赋给新的一列percentile_rank
。
上一篇:按照多个排序键对文件列表进行排序