我的spark数据框中有一个字符串类型的列int_rate
,其所有值都类似于9.5%, 7.0%, etc
。
image是此列的外观
现在,我知道有一种方法可以将类型字符串转换为python中的float,但是仅适用于值应为9.5
而没有%
符号的情况。我尝试了以下方法:
df.int_rate = [x.strip('%') for x in df.int_rate]
为此link删除了%
符号,但它抛出错误:
列不可迭代
我也尝试了link上列出的其他方法,但是似乎没有任何效果。有人可以帮我摆脱%
符号并将我的列转换为float类型吗?
答案 0 :(得分:0)
一种可能的解决方案:
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()
和另一个
from pyspark.sql.functions import regexp_replace
df.withColumn("int_rate", regexp_replace("int_rate", "%$", "").cast("float"))