scala – 如何在数据框中的列上创建bin
发布时间:2020-12-16 10:07:07 所属栏目:安全 来源:网络整理
导读:我有一个数据框df,结构如下: 输入 amount id13000 130000 210000 35000 4 我想根据列’amount’的分位数创建一个新列 预期产出: amount id amount_bin13000 1 1000030000 2 1500010000 3 100005000 4 5000 假设质量0.25,0.5和0.75分别为5000,10000和15000
我有一个数据框df,结构如下:
输入 amount id 13000 1 30000 2 10000 3 5000 4 我想根据列’amount’的分位数创建一个新列 预期产出: amount id amount_bin 13000 1 10000 30000 2 15000 10000 3 10000 5000 4 5000 假设质量0.25,0.5和0.75分别为5000,10000和15000 我知道如何在R中这样做: quantile <- quantile(df$amount,probs = c(0,0.25,0.50,0.75,1.0),na.rm = TRUE,names = FALSE) df$amount_bin <- cut(df$amount,breaks = quantile,include.lowest = TRUE,labels = c(quantile[2],quantile[3],quantile[4],quantile[5])) 解决方法
您可以使用ML库中的
QuantileDiscretizer.
根据拟合分位数创建存储桶: import org.apache.spark.ml.feature.QuantileDiscretizer val data = Array((13000,1),(30000,2),(10000,3),(5000,4)) val df = spark.createDataFrame(data).toDF("amount","id") val discretizer = new QuantileDiscretizer() .setInputCol("amount") .setOutputCol("result") .setNumBuckets(4) val result = discretizer.fit(df).transform(df) result.show() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读