首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与数值相关的Pyspark分类数据向量化

与数值相关的Pyspark分类数据向量化
EN

Stack Overflow用户
提问于 2021-01-22 07:41:05
回答 1查看 47关注 0票数 0

我是Pyspark编程的新手。我需要些帮助。

我有一个带有分类特征的数据集和一些与之相关的数值。我想对分类值进行矢量化,包括与之相关的数值。我有大约300万个分类数据列的可能值。

EN

回答 1

Stack Overflow用户

发布于 2021-01-22 15:14:52

您可以按数量分组,并将UserID列聚合到一个数组中:

代码语言:javascript
复制
import pyspark.sql.functions as F

df2 = df.groupBy('UserID').agg(F.collect_list('Quantity').alias('Quantity'))

但这可能不能保证水果的顺序保持正确。要实现这一点,您可以使用涉及排序的更复杂的方法:

代码语言:javascript
复制
df2 = df.groupBy('UserID').agg(
    F.expr("transform(array_sort(collect_list(array(`Fruit Purchased`, Quantity))), x -> x[1]) Quantity")
)

或者你也可以做一个轴心,这也可以确保水果的顺序:

代码语言:javascript
复制
df2 = df.groupBy('UserID').pivot('Fruit Purchased').agg(F.first('Quantity'))
df3 = df2.select('UserID', F.array([c for c in df2.columns[1:]]).alias('Quantity'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65837384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档