Столбец не повторяется - apache spark dataframe - python - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть столбец int_rate типа string в моем фрейме данных spark, и все его значения похожи на 9.5%, 7.0%, etc.

Вот изображение того, как выглядит столбец

Теперь я знаю, что есть способ, которым я могу преобразовать строку типа в float в python, но этоприменимо только тогда, когда значение будет 9.5 без символа %.Я попытался использовать следующий метод:

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

, указанный на этой ссылке , чтобы удалить символ %, но выдает ошибку, говорящую:

Столбецне повторяется

Я также пробовал другие методы, перечисленные в ссылке , но, похоже, ничего не работает.Может кто-нибудь помочь мне избавиться от символа % и преобразовать мой столбец в тип float?

1 Ответ

0 голосов
/ 11 февраля 2019

Одно возможное решение:

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"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...