计算表“营销”中“余额”列的中位数
Posted
技术标签:
【中文标题】计算表“营销”中“余额”列的中位数【英文标题】:Calculating median of column "Balance" from table "Marketing" 【发布时间】:2017-04-05 07:38:03 【问题描述】:我有一个 spark (scala) 数据框“Marketing”,大约有 17 列,其中 1 列作为“Balance”。该列的数据类型是 Int。我需要找到平衡的中位数。我可以按升序排列它,但之后如何进行?我有一个给定的提示,可以使用 scala 的百分位函数。我对这个百分位函数一无所知。有人可以帮忙吗?
【问题讨论】:
您好,欢迎来到 ***。请花一些时间阅读帮助页面,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。更重要的是,请阅读the Stack Overflow question checklist。您可能还想了解Minimal, Complete, and Verifiable Examples。 【参考方案1】:中位数与第 50 个百分位数相同。如果您不介意使用 hive 函数,您可以执行以下操作之一:
marketingDF.selectExpr("percentile(CAST(Balance AS BIGINT), 0.5) AS median")
如果您不需要确切的数字,您可以考虑使用 percentile_approx() 代替。
这两个函数的文档位于here。
【讨论】:
以上是关于计算表“营销”中“余额”列的中位数的主要内容,如果未能解决你的问题,请参考以下文章
python使用statsmodels包中的robust.mad函数以及pandas的apply函数计算dataframe中所有数据列的中位数绝对偏差(MAD)
R语言colSums函数rowSums函数colMeans函数rowMeans函数colMedians函数rowMedians计算dataframe行或者列的加和均值中位数实战
pandas使用to_datetime函数将字符串时间数据列转化为时间对象数据列计算dataframe结束时间列和起始时间列的时间差并计算时间差的中位数(median)