繁体   English   中英

列不可迭代-Apache Spark DataFrame-Python

[英]Column is not iterable - apache spark dataframe - python

我的spark数据int_rate有一个类型为string的int_rate列,其所有值都像9.5%, 7.0%, etc

这是该列外观的图像

现在,我知道有一种方法可以将类型字符串转换为float在python中,但是仅适用于值不为%符号为9.5情况。 我尝试了以下方法:

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

在此链接上给出以删除%符号,但是会引发错误消息:

列不可迭代

我也尝试了链接上列出的其他方法,但似乎无济于事。 有人可以帮我摆脱%符号,然后将我的列转换为float类型吗?

一种可能的解决方案:

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"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM