Импорт .csv с типом данных как с плавающей точкой и индексным типом как строкой - PullRequest
0 голосов
/ 12 июля 2020

Я импортирую данные из нескольких файлов 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 содержат тысячи столбцов и строк, это занимает значительное время.

1 Ответ

0 голосов
/ 12 июля 2020

Вы можете импортировать свои данные и добавить столбец индекса с .reset.index() с плавающей точкой. Надеюсь, это подойдет вам

...