繁体   English   中英

如何将 String float 转换为 PySpark 中的 Float?

[英]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.

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