После обработки большого набора данных с помощью Pandas / Dask я сохранил результирующий фрейм данных в файл CSV.
Когда я пытаюсь прочитать выходной CSV с помощью Dask, все типы данных по умолчанию являются объектами.,Всякий раз, когда я пытаюсь преобразовать их, используя обычные методы (например, определяя типы данных во время чтения или переназначая их после чтения), я продолжаю получать ошибки относительно преобразования, как показано ниже:
# ATTEMPT 1
import dask.dataframe as dd
header = ['colA', 'colB', ...]
dtypes = {'colA' : 'float', ...}
df = dd.read_csv('file.csv', names=header, dtype=types)
> TypeError: Cannot cast array from dtype('O') to dtype('float64') according to the rule 'safe'
> ...
> ValueError: could not convert string to float: 'colA'
-----------------------------------------------------------------------------------
# ATTEMPT 2
import dask.dataframe as dd
header = ['colA', 'colB', ...]
df = dd.read_csv('file.csv', names=header)
df['colA'] = df['colA'].astype(str).astype(float)
> ...
> File "/home/routar/anaconda3/lib/python3.6/site-packages/pandas/core/dtypes/cast.py", line 730, in astype_nansafe
> ValueError: could not convert string to float: 'colA'
Все атрибуты в исходном фрейме данных(перед конвертацией в CSV) - целые числа / числа с плавающей запятой, поэтому конвертация возможна на 100%.Я также уверен, что значения действительны.
Я предполагаю, что это как-то связано с безопасной политикой Python в отношении преобразования данных.
Есть ли обходной путь для этого или любого другого способа принудительного применения?конверсия?