Importar Arquivo CSV com Pandas

2,118 views
Skip to first unread message

jonata paulino

unread,
Jun 11, 2018, 3:59:53 PM6/11/18
to Python Brasil
Galera, estou tentando importar um arquivo csv no jupyter notebook através no pandas (import pandas as pd), porém não consigo de jeito nem um. O erro é o seguinte:

---------------------------------------------------------------------------
UnicodeDecodeError                        Traceback (most recent call last)
<ipython-input-30-f506150d1045> in <module>()
      6 
      7 #data = pd.read_csv('C:\\Users\\Jonata.000\\Documents\\variaveisAMCMaraba.csv')
----> 8 data = pd.read_csv('C:/Users/Jonata.000/Documents/variaveisAMCMaraba.csv')

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, 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

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
    447 
    448     # Create the parser.
--> 449     parser = TextFileReader(filepath_or_buffer, **kwds)
    450 
    451     if chunksize or iterator:

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f, engine, **kwds)
    816             self.options['has_index_names'] = kwds['has_index_names']
    817 
--> 818         self._make_engine(self.engine)
    819 
    820     def close(self):

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine)
   1047     def _make_engine(self, engine='c'):
   1048         if engine == 'c':
-> 1049             self._engine = CParserWrapper(self.f, **self.options)
   1050         else:
   1051             if engine == 'python':

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, src, **kwds)
   1693         kwds['allow_leading_cols'] = self.index_col is not False
   1694 
-> 1695         self._reader = parsers.TextReader(src, **kwds)
   1696 
   1697         # XXX

pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()

pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader._get_header()

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 0: invalid start byte

Abelardo Mota

unread,
Jun 11, 2018, 4:09:22 PM6/11/18
to Python Brasil
Não está sendo possível ler o arquivo com o encoding default, utf-8. Você deve especificar o encoding a ser utilizado na leitura do arquivo com o parâmetro encoding. Por exemplo:
 
df = pd.read_csv('C:/Users/Jonata.000/Documents/variaveisAMCMaraba.csv', encoding='iso-8859-1')

jonata paulino

unread,
Jun 11, 2018, 6:32:38 PM6/11/18
to Python Brasil
eu coloquei esse encoding='iso-8859-1' mas deu esse erro ai. existe um defull?


ParserError Traceback (most recent call last)
<ipython-input-33-eea4779542eb> in <module>()
      6 
      7 #data = pd.read_csv('C:\\Users\\Jonata.000\\Documents\\variaveisAMCMaraba.csv')
----> 8 data = pd.read_csv('C:/Users/Jonata.000/Documents/variaveisAMCMaraba.csv', encoding='iso-8859-1')

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, 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

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
    453 
    454     try:
--> 455         data = parser.read(nrows)
    456     finally:
    457         parser.close()

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in read(self, nrows)
   1067                 raise ValueError('skipfooter not supported for iteration')
   1068 
-> 1069         ret = self._engine.read(nrows)
   1070 
   1071         if self.options.get('as_recarray'):

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in read(self, nrows)
   1837     def read(self, nrows=None):
   1838         try:
-> 1839             data = self._reader.read(nrows)
   1840         except StopIteration:
   1841             if self._first_chunk:

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

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

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

pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader._tokenize_rows()

pandas/_libs/parsers.pyx in pandas._libs.parsers.raise_parser_error()

ParserError: Error tokenizing data. C error: Expected 31 fields in line 3, saw 34

Erle Carrara

unread,
Jun 11, 2018, 9:52:36 PM6/11/18
to Python Brasil
Jonata,

Manda um trecho do seu arquivo CSV, as três primeiras linhas só.

Mas acho que `pd.read_csv('./caminho_do_arquivo.csv', sep='SEPARADOR', encoding='utf-8')` pode funcionar.

* troca ali em cima o SEPARADOR pelo ";" (ponto e vírgula), "," (vírgula) ou qualquer outro caractere que seja o separador do documento.

Abraços!

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/e762efa8-ba32-4121-a63c-9579234f917b%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.


--
Erle Carrara

jonata paulino

unread,
Jun 11, 2018, 10:08:11 PM6/11/18
to Python Brasil
Não funcionou.... estou mandando o arquivo com as três primeiras linhas conforme solicitado.

Jackson Osvaldo

unread,
Jun 12, 2018, 7:29:45 AM6/12/18
to Python Brasil
Bom dia. Acho que o erro está no teu arquivo CSV. Tenta tirar os acentos gráficos das palavras. No mais, posta um trecho do arquivo aqui (as três linhas na ajudariam.
😊

Erle Carrara

unread,
Jun 12, 2018, 8:46:08 AM6/12/18
to Python Brasil
Jonata, 

Posta as três linhas aqui (e não um screenshot delas), elas ajudam sim, com nelas a gente consegue ver qual é o separador, se tem acento nelas ou não....

Abraços.

Em ter, 12 de jun de 2018 às 08:30, Jackson Osvaldo <jackso...@gmail.com> escreveu:
Bom dia. Acho que o erro está no teu arquivo CSV. Tenta tirar os acentos gráficos das palavras. No mais, posta um trecho do arquivo aqui (as três linhas na ajudariam.
😊

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
    http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
    python-brasi...@googlegroups.com
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Python Brasil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para postar neste grupo, envie um e-mail para python...@googlegroups.com.
Para ver esta discussão na web, acesse https://groups.google.com/d/msgid/python-brasil/5b6dc339-7ff6-42cd-88cc-3096931e8a3a%40googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/d/optout.


--
Erle Carrara

jonata paulino

unread,
Jun 13, 2018, 9:55:04 AM6/13/18
to Python Brasil
desflorestamento incremento floresta nuvem nao_observado nao_floresta hidrografia num_cab_gado_bov area_plantadaColheitaKm2 area_colhidaKm2 valor_producao pib_munic Contrato_Cust_Agr Vlr_Cust_Agr Contrato_Cust_Pec Vlr_Cust_Pec Contrato_Inv_Agr Vlr_Inv_Agr Contrato_Inv_Pec Vlr_Inv_Pec
16783,40 0,00 20518,50 0,00 3,30 359,90 87,90 987593,00 525,42 517,21 30950,00 2255014000,00 2532,00 3556994,21 78,00 2790596,00 1147,00 5242257,84 6009,00 26838707,38
17586,50 803,10 19715,40 0,00 3,30 359,90 87,90 1192803,00 514,69 504,36 37861,00 2425552000,00 8,00 611770,27 87,00 4625305,61 112,00 984601,85 620,00 12810314,85
18096,30 509,80 19205,60 0,00 3,30 359,90 87,90 1462197,00 477,21 472,24 41524,00 2522570000,00 8,00 611770,27 86,00 4608169,61 113,00 1001737,85 620,00 12810314,85

Em segunda-feira, 11 de junho de 2018 16:59:53 UTC-3, jonata paulino escreveu:

jonata paulino

unread,
Jun 13, 2018, 9:56:11 AM6/13/18
to Python Brasil
eu tirei os acentos e ficou assim... postei as primeiras linhas


Em segunda-feira, 11 de junho de 2018 16:59:53 UTC-3, jonata paulino escreveu:

jonata paulino

unread,
Jun 13, 2018, 4:49:19 PM6/13/18
to Python Brasil
Ai pessoal, obrigado pela força. Eu usei o seguinte comando e deu certo:
dadospca = pd.read_csv('variaveisAMCMaraba.csv', sep= ';', encoding='ISO-8859-1')

Muito obrigado.


Em segunda-feira, 11 de junho de 2018 16:59:53 UTC-3, jonata paulino escreveu:
Reply all
Reply to author
Forward
0 new messages