如何在Julia DataFrame中实现分组价格四分位数计算与排名
Julia 按产品分组计算四分位数与价格排名实现方案
依赖安装导入
using Pkg # 安装所需依赖包,已安装可跳过此步 Pkg.add(["DataFrames", "Statistics"]) using DataFrames, Statistics
核心实现代码
假设原始数据存储在df变量中,执行以下代码即可得到目标结果:
# 按产品分组后计算统计量,广播到组内每一行 result_df = transform( groupby(df, :Product), :Price => (p -> quantile(p, 0.25)) => :Quartil_1, :Price => (p -> quantile(p, 0.5)) => :Quartil_2, :Price => (p -> quantile(p, 0.75)) => :Quartil_3, :Price => (p -> quantile(p, 1.0)) => :Quartil_4, :Price => (p -> denserank(p)) => :Rank_Price )
说明
- 代码自动适配多产品场景,按
Product字段独立分组计算,不会跨产品混淆统计结果 - 四分位数计算使用标准库
quantile方法,如果你需要和Python的计算结果完全对齐,可以调整quantile的alpha、beta参数匹配对应分位数计算规则 - 排名默认采用升序密集排名,价格越低排名数值越小,和示例逻辑一致;如果需要价格越高排名越靠前,将最后一行的
denserank(p)修改为denserank(-p)即可 - 可替换
denserank为rank函数,调整参数即可实现其他排名规则
内容的提问来源于stack exchange,提问作者merchmallow
相关产品推荐
相关产品推荐

