列不是iterable apache spark dataframe python

2024-04-24 14:05:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我的spark dataframe中有一个string类型的列int_rate,它的所有值都类似于9.5%, 7.0%, etc。在

下面是列的外观image

现在我知道在python中有一种方法可以将string类型转换为float,但它只适用于值为9.5而没有%符号的情况。我尝试了以下方法:

df.int_rate = [x.strip('%') for x in df.int_rate]

在这个link上给出删除%符号的方法,但是它抛出一个错误,说:

Column is not iterable

我还尝试了link上列出的其他方法,但似乎没有任何效果。有人能帮我去掉%符号,把我的列转换成float类型吗?在


Tags: 方法image类型dataframedfstringrateetc
1条回答
网友
1楼 · 发布于 2024-04-24 14:05:55

一种可能的解决方案:

from pyspark.sql.functions import expr

df = spark.createDataFrame(["9.5%", "7.0%"], "string").toDF("int_rate")

df.withColumn("int_rate", expr("rtrim('%', int_rate)").cast("float")).show()

还有一个

^{pr2}$

相关问题 更多 >