将带美元符号的字符串转换为数字
Convert string with dollar sign into numbers
我有一个带有美元符号的字符串列。如何转换为双精度型或浮点型以便对其进行计算?
这些列看起来像“$1000,000.28”。
谢谢。
您可以使用 string.replace 删除 $ 符号,然后只需使用 float() 即可将字符串转换为浮点数。
money = ',345'
money = money.replace('$','') .replace(',','') #this replaces the $ and , in the string
money = float(money)
使用 regexp_replace
函数并转换为双倍。
import pyspark.sql.functions as f
df2 = df.withColumn('new_value', f.regexp_replace('value', '[$,]', '').cast('double'))
df2.printSchema()
df2.show(10, False)
root
|-- id: string (nullable = true)
|-- value: string (nullable = true)
|-- new_value: double (nullable = true)
+---+------------+----------+
|id |value |new_value |
+---+------------+----------+
|1 |00,000.28|1000000.28|
+---+------------+----------+
我有一个带有美元符号的字符串列。如何转换为双精度型或浮点型以便对其进行计算?
这些列看起来像“$1000,000.28”。
谢谢。
您可以使用 string.replace 删除 $ 符号,然后只需使用 float() 即可将字符串转换为浮点数。
money = ',345'
money = money.replace('$','') .replace(',','') #this replaces the $ and , in the string
money = float(money)
使用 regexp_replace
函数并转换为双倍。
import pyspark.sql.functions as f
df2 = df.withColumn('new_value', f.regexp_replace('value', '[$,]', '').cast('double'))
df2.printSchema()
df2.show(10, False)
root
|-- id: string (nullable = true)
|-- value: string (nullable = true)
|-- new_value: double (nullable = true)
+---+------------+----------+
|id |value |new_value |
+---+------------+----------+
|1 |00,000.28|1000000.28|
+---+------------+----------+