Я импортирую данные из нескольких файлов csv, используя pandas.read_csv()
. Количество строк / столбцов в каждом файле неизвестно. Данные должны быть float
(с заменой n.a.
на np.NaN
), но индекс содержит строки. См. Ниже пример данных в файле .csv:
X Y Z
A 3.1 2.1 4.0
B 2.1 8.0 0.0
C 5.4 7.1 n.a.
D 7.6 5.0 5.5
Я использую приведенный ниже код:
dataset = pd.read_csv(file_name + '.csv', header=0, index_col=0, na_values=["n.a."], \
encoding="ISO-8859-1", thousands=",", dtype=float)
Однако он возвращает следующее ValueError:
ValueError: could not convert string to float: 'A'.
Причина в том, что индекс содержит строки. Есть ли способ установить dtype = float без преобразования самого индекса?
В качестве альтернативы я попытался прочитать файл csv как dtype = string, а затем преобразовать каждый столбец, используя pandas .to_numeri c (). Однако, поскольку некоторые из файлов .csv содержат тысячи столбцов и строк, это занимает значительное время.