Софтуерно Инженерство
Loading...
yana_neykova avatar yana_neykova 3 Точки

Read files / Exam project task

Здравейте,

Заела съм се да правя проекта за изпита за курса Data Science. Като цяло имам идея какво да правя, и съм си нахвърлила няколко реда.

Но като започнах да ги run-вам , забих на първия :Х При четенето на файла с данните, постоянно ми излизат грешки. 

Ето и редовете код:

%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import scipy as sp
food_data = pd.read_csv('data\en.openfoodfacts.org.products.txt',sep='\t')

Ето и грешката, която получавам:

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-3-f0c1ca3484c0> in <module>()
----> 1 food_data = pd.read_csv('data\en.openfoodfacts.org.products.txt',sep='\t')
~\AppData\Local\Continuum\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, doublequote, delim_whitespace, low_memory, memory_map, float_precision)
    676                     skip_blank_lines=skip_blank_lines)
    677
--> 678         return _read(filepath_or_buffer, kwds)
    679
    680     parser_f.__name__ = name
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
    438
    439     # Create the parser.
--> 440     parser = TextFileReader(filepath_or_buffer, **kwds)
    441
    442     if chunksize or iterator:
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f, engine, **kwds)
    785             self.options['has_index_names'] = kwds['has_index_names']
    786
--> 787         self._make_engine(self.engine)
    788
    789     def close(self):
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine)
   1012     def _make_engine(self, engine='c'):
   1013         if engine == 'c':
-> 1014             self._engine = CParserWrapper(self.f, **self.options)
   1015         else:
   1016             if engine == 'python':
~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, src, **kwds)
   1706         kwds['usecols'] = self.usecols
   1707
-> 1708         self._reader = parsers.TextReader(src, **kwds)
   1709
   1710         passed_names = self.names is None
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()
pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()
FileNotFoundError: File b'data\\en.openfoodfacts.org.products.txt' does not exist
 

Тъй като файла е tsv, пробвах и да го прочета като такъв ( грепката е една и съща с read_csv & read_table ) "

food_data = pd.read_table('en.openfoodfacts.org.products.tsv',sep='\t').  Тогава получавам следната грешка :

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

 

Къде бъркам? Досега не съм имала проблеми с четенето на файлове....Благодаря предварително!

Тагове:
0
Data Science
g.stoyanov avatar g.stoyanov 775 Точки

Здравей,

Виждам, че в първия пример името на файла ти е :

en.openfoodfacts.org.products.txt

а във втория, който вече намира такъв файл, е :

en.openfoodfacts.org.products.tsv

според мен първия проблем, този който казва че не намира файла, е породен от объркан тип вместо tsv е написан като txt.

Относно грешката с декода, провери какъв енкодинг е файла, и го подай на четящата функция. Например: 

food_data = pd.read_csv('data\en.openfoodfacts.org.products.tsv', sep='\t', encoding = "cp1252")

Пожелавам ти успех :)

0
yana_neykova avatar yana_neykova 3 Точки

Здравей, за вида на файла - да, играх си малко с идеята ако това помомгне...но уви. Енкодинг-а не се бях сетила да проверя. 

Проблемът се оказа в самия файл - изтеглих го наново и тръгна . 

Благодаря и хубав ден! :)

 

0