将带有美元符号的字符串转换为数字
Posted
技术标签:
【中文标题】将带有美元符号的字符串转换为数字【英文标题】:Convert string with dollar sign into numbers 【发布时间】:2020-08-12 13:53:45 【问题描述】:我有一个带有美元符号的字符串列。如何转换为 doubletype 或 float 以便进行计算?
这些列看起来像“$1000,000.28”。
谢谢。
【问题讨论】:
你可以使用正则表达式或替换 这能回答你的问题吗? Pyspark replace strings in Spark dataframe column 【参考方案1】:使用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 |$1000,000.28|1000000.28|
+---+------------+----------+
【讨论】:
【参考方案2】:你可以使用string.replace来去掉$符号,然后你可以用float()把字符串转换成浮点数。
money = '$12,345'
money = money.replace('$','') .replace(',','') #this replaces the $ and , in the string
money = float(money)
【讨论】:
以上是关于将带有美元符号的字符串转换为数字的主要内容,如果未能解决你的问题,请参考以下文章
将 PHP 字符串(html 源代码)转换为 jQuery 对象美元符号 $?
将 Long/ULong 转换为带有填充零的无符号十六进制字符串