Я некоторое время боролся с этой проблемой.Я наконец нашел причину, по которой это происходит, но пока не могу найти решение.
Я импортирую файл data.csv, скопированный из разных ресурсов в Интернете.Большинство из них являются строками и должны быть удалены, например, "%".Это работает как шарм, используя пользовательский конвертер.
Но как только столбец содержит строку с "-" (без значения), он выдает ошибку "Файл" D: test.py ", строка 14, в convert_percentage return float (new_val)ValueError: не удалось преобразовать строку в число с плавающей точкой: '-' "
Я использую следующие строки кода:
import pandas as pd
import numpy as np
def convert_percentage(val):
new_val = val.replace(',','').replace('%', '')
return float(new_val)
df = pd.read_csv('data.csv', na_values=['-'],
converters={
'Perf Month': convert_percentage,
'Perf Week': convert_percentage,
'Perf Quarter': convert_percentage,
'Perf Half Y': convert_percentage,
'Payout': convert_percentage,
})