Невозможно привести массив из dtype ('O') к пандам read_csv - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь загрузить CSV, используя команду dict и заставляя панд читать строки / объекты в виде category, чтобы повысить эффективность использования памяти (чтение большого файла CSV).

df = pd.read_csv(file,delimiter=',', quotechar='~', escapechar='\0',usecols=cols,dtype=dtypes))

dtypes - это диктовка, в которой я изменил все поля, которые панды обычно читают как object dtype, на category.

При попытке прочитать я сталкиваюсь с ошибкой:

TypeError Traceback (последний вызов был последним) pandas / _libs / parsers.pyx в pandas._libs.parsers.TextReader._convert_tokens ()

TypeError: Невозможно привести массив из dtype ('O') к dtype ('int64') в соответствии с правилом 'safe'

Есть ли способ заставить панд преобразовать эти поля в тип category или сузить область, в которой возникает проблема?

Остаток трассировки стека:

Во время обработки вышеуказанного исключения произошло другое исключение:

ValueError Traceback (последний вызов был последним) в () 3 df = pd.read_csv (файл, разделитель = ',', quotechar = '~', escapechar = '\ 0', usecols = cols, dtype = dtypes) Еще 4: ----> 5 df = pd.read_csv (файл, разделитель = ',', quotechar = '~', escapechar = '\ 0', usecols = cols, nrows = nrows, dtype = dtypes) 6 7 print ('read complete', df.shape, datetime.now () - startTime)

~ / anaconda3 / lib / python3.6 / site-packages / pandas / io / parsers.py в parser_f (filepath_or_buffer, sep, разделитель, заголовок, имена, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine , преобразователи, true_values, false_values, skipinitialspace, SkipRows, Nrows, na_values, keep_default_na, na_filter, многословный, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, итератор, chunksize, сжатие, тысячи, десятичная, КонцаСтроки, QuoteChar, цитирую, escapechar , комментарий, кодировка, диалект, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, skip_footer, двойная кавычка, delim_whitespace, as_recarray, compact_ints, use_unsigned, low_memory, buffer_lines, memory_map, float_precision) 707 skip_blank_lines = skip_blank_lines) 708 -> 709 вернуть _read (filepath_or_buffer, kwds) 710 711 parser_f. имя = имя

~ / anaconda3 / lib / python3.6 / site-packages / pandas / io / parsers.py в _read (filepath_or_buffer, kwds) 453 454 попробовать: -> 455 data = parser.read (nrows) 456 наконец: 457 parser.close ()

~ / anaconda3 / lib / python3.6 / site-packages / pandas / io / parsers.py в режиме чтения (self, nrows) 1067 повысить ValueError («skipfooter не поддерживается для итерации») 1068 -> 1069 ret = self._engine.read (nrows) 1070 1071 если self.options.get ('as_recarray'):

~ / anaconda3 / lib / python3.6 / site-packages / pandas / io / parsers.py в режиме чтения (self, nrows) 1837 def read (self, nrows = None): 1838 попробуй: -> 1839 data = self._reader.read (nrows) 1840 кроме СтопИтация: 1841, если self._first_chunk:

pandas / _libs / parsers.pyx в pandas._libs.parsers.TextReader.read ()

pandas / _libs / parsers.pyx в pandas._libs.parsers.TextReader._read_low_memory ()

pandas / _libs / parsers.pyx в> pandas._libs.parsers.TextReader._read_rows ()

pandas / _libs / parsers.pyx в> pandas._libs.parsers.TextReader._convert_column_data ()

pandas / _libs / parsers.pyx в> pandas._libs.parsers.TextReader._convert_tokens ()

ValueError: недопустимый литерал для int () с основанием 10: «ManualSaved»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...