无法在read_csv pandas

时间:2018-05-02 09:23:53

标签: python-3.x pandas csv

我尝试使用映射dict加载csv,并强制pandas将字符串/对象列读取为category类型,以便更有效地使用内存(读取大型csv文件)。

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

dtypes是一个字典,我已将大熊猫自然读取的所有字段更改为object dtype到category

在尝试阅读时,我遇到错误:

  

TypeError Traceback(最近一次调用最后一次)   pandas._libs.parsers.TextReader._convert_tokens()中的pandas / _libs / parsers.pyx

     

TypeError:根据规则'safe'

,无法将数组从dtype('O')转换为dtype('int64')

有没有办法强制pandas将这些字段转换为category类型,或者缩小哪个字段导致问题?

堆栈跟踪的剩余部分:

  

在处理上述异常期间,发生了另一个异常:

     

ValueError Traceback(最近一次调用最后一次)    in()         3 df = pd.read_csv(file,delimiter =',',quotechar ='〜',escapechar ='\ 0',usecols = cols,dtype = dtypes)         4其他:   ----> 5 df = pd.read_csv(file,delimiter =',',quotechar ='〜',escapechar ='\ 0',usecols = cols,nrows = nrows,dtype = dtypes)         6         7 print('read complete',df.shape,datetime.now() - startTime)

     parser_f中的

〜/ anaconda3 / lib / python3.6 / site-packages / pandas / io / parsers.py(filepath_or_buffer,sep,delimiter,header,names,index_col,usecols,squeeze,prefix,mangle_dupe_cols,dtype,engine ,converter,true_values,false_values,skipinitialspace,skiprows,nrows,na_values,keep_default_na,na_filter,verbose,skip_blank_lines,parse_dates,infer_datetime_format,keep_date_col,date_parser,dayfirst,iterator,chunksize,compression,thousands,decimal,lineterminator,quotechar,quoting,escapechar ,comment,encoding,dialect,tupleize_cols,error_bad_lines,warn_bad_lines,skipfooter,skip_footer,doublequote,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 return _read(filepath_or_buffer,kwds)       710       711 parser_f。 name = name

     _read中的

〜/ anaconda3 / lib / python3.6 / site-packages / pandas / io / parsers.py(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 if self.options.get('as_recarray'):

     阅读中的

〜/ anaconda3 / lib / python3.6 / site-packages / pandas / io / parsers.py(self,nrows)      1837 def读(self,nrows = None):      1838尝试:    - > 1839 data = self._reader.read(nrows)      1840除StopIteration外:      1841年如果是self._first_chunk:

     

pandas._libs.parsers.TextReader.read()中的pandas / _libs / parsers.pyx

     

pandas._libs.parsers.TextReader._read_low_memory()

中的pandas / _libs / parsers.pyx      

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

     

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

     

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

     

ValueError:带有基数为10的int()的无效文字:'ManualSaved'

0 个答案:

没有答案