gpt4 book ai didi

python - 如何根据大小更改列值

转载 作者:太空宇宙 更新时间:2023-11-03 20:45:34 24 4
gpt4 key购买 nike

我在 PySpark 设置中有一个数据帧 df。我想更改一列,假设它名为 A,其数据类型为“string”。我想根据它们的长度改变它的值。特别是,如果一行中只有一个字符,我们希望将 0 连接到末尾。否则,我们采用默认值。 “修改”列的名称仍必须是 A。这是针对使用 PySpark3 的 Jupyter Notebook。

这是我迄今为止尝试过的:

df = df.withColumn("A", when(size(df.col("A")) == 1, concat(df.col("A"), lit("0"))).otherwise(df.col("A")))

我还尝试使用相同的代码删除“df.col”。

当我运行此代码时,软件提示语法无效,但我没有看到错误。

最佳答案

df.withColumn("temp", when(length(df.A) == 1, concat(df.A, lit("0"))).\
otherwise(df.A)).drop("A").withColumnRenamed('temp', 'A')

读完你的问题后我了解到的是,你会得到一个额外的 A 列。

所以您希望旧的 A 列被新的 A 列替换。因此,我使用所需的逻辑创建了一个临时列,然后删除了 A 列,然后将临时列重命名为 A。

关于python - 如何根据大小更改列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56629800/

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