Pandas

Как исправить в Pandas: не удалось преобразовать строку в число с плавающей запятой

В: Pandas

Одна распространенная ошибка, с которой вы можете столкнуться при использовании pandas:

ValueError : could not convert string to float: '$400.42'

Эта ошибка обычно возникает, когда вы пытаетесь преобразовать строку в число с плавающей запятой в pandas, но строка содержит одно или несколько из следующих:

  • Пространства
  • Запятые
  • Специальные символы

Когда это происходит, вы должны сначала удалить эти символы из строки, прежде чем преобразовывать ее в число с плавающей запятой.

В следующем примере показано, как устранить эту ошибку на практике.

Как воспроизвести ошибку

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'store': ['A', 'B', 'C', 'D'],
 'revenue': ['$400.42', '$100.18', '$243.75', '$194.22']})

#view DataFrame
print(df)

# store revenue
#0 A $400.42
#1 B $100.18
#2 C $243.75
#3 D $194.22

#view data type of each column
print(df.dtypes )

#store object
#revenue object
#dtype: object**

Теперь предположим, что мы пытаемся преобразовать столбец revenue из строки в число с плавающей запятой:

#attempt to convert 'revenue' from string to float
df['revenue'] = df['revenue'].astype (float)

ValueError : could not convert string to float: '$400.42'

Мы получаем ошибку, так как столбец revenue содержит в строках знак доллара.

Как исправить ошибку

Способ устранения этой ошибки заключается в использовании функции replace() для замены знаков доллара в столбце revenue ничем перед выполнением преобразования:

#convert revenue column to float
df['revenue'] = df['revenue'].apply(lambda x: float(x.split()[0].replace('$','')))

#view updated DataFrame
print(df)

# store revenue
#0 A 400.42
#1 B 100.18
#2 C 243.75
#3 D 194.22

#view data type of each column
print(df.dtypes )

#store object
#revenue float64
#dtype: object

Обратите внимание, что мы можем преобразовать столбец дохода из строки в число с плавающей запятой, и мы не получаем никаких ошибок, поскольку перед выполнением преобразования мы удалили знаки доллара.

Дополнительные ресурсы

В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:

Как исправить в Python: объект 'numpy.ndarray' не вызывается
Как исправить: TypeError: объект 'numpy.float64' не вызывается
Как исправить: ошибка типа: ожидаемая строка или байтовый объект

Еще от кодкамп
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.