![](/img/trans.png)
[英]How to check type of string and cast it to float if it is a number?
[英]How to cast String float to Float in PySpark?
我有以下 PySpark dataframe:
df = spark.createDataFrame(
[
('31,2', 'foo'),
('33,1', 'bar'),
],
['cost', 'label']
)
我需要将“成本”列设为浮动。 我这样做如下:
df = df.withColumn('cost', df.cost.cast('float'))
但是,结果我得到null
值,而不是cost
列中的数字。
如何将cost
转换为浮点数?
这应该适合你。
df = (df.withColumn('cost', F.regexp_replace(df.cost, ',', '.')
.withColumn('cost', df.cost.cast('float')))
我认为一个简单的 lambda 表达式应该可以解决大部分问题。
df.loc[:, 'cost'] = df.cost.apply(lambda x: float(x.replace(',', '.')))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.