gpt4 book ai didi

python - PySpark get_dummies 等效

转载 作者:行者123 更新时间:2023-12-05 04:25:55 24 4
gpt4 key购买 nike

我有一个具有以下架构的 pyspark 数据框:

<表类="s-表"><头>Key1Key2Key3值<正文>一个一个一个"value1"一个一个一个"value2"一个一个b"value1"bb一个"value2"

(在现实生活中这个数据框非常大,转换为 pandas DF 是不合理的)

我的目标是将数据框转换为如下所示:

<表类="s-表"><头>Key1Key2Key3value1value2<正文>一个一个一个11一个一个b10bb一个01

我知道这在使用 get_dummies 的 pandas 中是可能的功能,我还看到有某种 pyspark & pandas hybrid function我不确定是否可以使用。

值得一提的是专栏Value只能接收(在此示例中)值 "value1""value2"我遇到过this可能解决我的问题的问题,但我并不完全理解它,想知道是否有更简单的方法来解决这个问题。
非常感谢任何帮助!

小编辑

在实现公认的解决方案后,为了将其变成单热编码而不仅仅是外观的总和,我将每一列转换为 bool 类型,然后再转换回整数。

最佳答案

您可以在键列上分组并在计算所有记录时旋转值列。

data_sdf. \
groupBy('key1', 'key2', 'key3'). \
pivot('val'). \
agg(func.count('*')). \
fillna(0). \
show()

# +----+----+----+------+------+
# |key1|key2|key3|value1|value2|
# +----+----+----+------+------+
# | b| b| a| 0| 1|
# | a| a| a| 1| 1|
# | a| a| b| 1| 0|
# +----+----+----+------+------+

关于python - PySpark get_dummies 等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73135000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com