Как прочитать csv с неработающим заголовком в pandas?

У меня проблема с открытием файла CSV с помощью Pandas в Jupyter, а затем я попытался открыть его в Visual Studio, и он также не работает. Что мне не хватает?

Код в Юпитере:

path = 'data/DATA_vozila_RAW.csv'
df = pd.read_csv(path)

Я также попытался добавить в код encoding="Latin-1".

Код в Visual Studio:

data = pd.read_csv('DATA_vozila_RAW.csv', encoding = "Latin-1", delimiter = ",")
print(data)

Данные:

Ошибка:

ParserError Traceback (последний последний вызов) Ячейка In[54], строка 1 ----> 1 df = pd.read_csv(путь)

File ~\Desktop\analitika_podatkov\work_dir\python-analitika-public\.venv\lib\site-packages\pandas\util\_decorators.py:211, in deprecate_kwarg.<locals>._deprecate_kwarg.<locals>.wrapper(*args, **kwargs)
    209     else:
    210         kwargs[new_arg_name] = new_arg_value
--> 211 return func(*args, **kwargs)

File ~\Desktop\analitika_podatkov\work_dir\python-analitika-public\.venv\lib\site-packages\pandas\util\_decorators.py:331, in deprecate_nonkeyword_arguments.<locals>.decorate.<locals>.wrapper(*args, **kwargs)
    325 if len(args) > num_allow_args:
    326     warnings.warn(
    327         msg.format(arguments=_format_argument_list(allow_args)),
    328         FutureWarning,
    329         stacklevel=find_stack_level(),
    330     )
--> 331 return func(*args, **kwargs)

File ~\Desktop\analitika_podatkov\work_dir\python-analitika-public\.venv\lib\site-packages\pandas\io\parsers\readers.py:950, in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)
    935 kwds_defaults = _refine_defaults_read(
    936     dialect,
    937     delimiter,
   (...)
    946     defaults = {"delimiter": ","},
    947 )
    948 kwds.update(kwds_defaults)
--> 950 return _read(filepath_or_buffer, kwds)

File ~\Desktop\analitika_podatkov\work_dir\python-analitika-public\.venv\lib\site-packages\pandas\io\parsers\readers.py:611, in _read(filepath_or_buffer, kwds)
    608     return parser
    610 with parser:
--> 611     return parser.read(nrows)

File ~\Desktop\analitika_podatkov\work_dir\python-analitika-public\.venv\lib\site-packages\pandas\io\parsers\readers.py:1778, in TextFileReader.read(self, nrows)
   1771 nrows = validate_integer("nrows", nrows)
   1772 try:
   1773     # error: "ParserBase" has no attribute "read"
   1774     (
   1775         index,
   1776         columns,
   1777         col_dict,
-> 1778     ) = self._engine.read(  # type: ignore[attr-defined]
   1779         nrows
   1780     )
   1781 except Exception:
   1782     self.close()

File ~\Desktop\analitika_podatkov\work_dir\python-analitika-public\.venv\lib\site-packages\pandas\io\parsers\c_parser_wrapper.py:230, in CParserWrapper.read(self, nrows)
    228 try:
    229     if self.low_memory:
--> 230         chunks = self._reader.read_low_memory(nrows)
    231         # destructive to chunks
    232         data = _concatenate_chunks(chunks)

File ~\Desktop\analitika_podatkov\work_dir\python-analitika-public\.venv\lib\site-packages\pandas\_libs\parsers.pyx:808, in pandas._libs.parsers.TextReader.read_low_memory()

File ~\Desktop\analitika_podatkov\work_dir\python-analitika-public\.venv\lib\site-packages\pandas\_libs\parsers.pyx:866, in pandas._libs.parsers.TextReader._read_rows()

File ~\Desktop\analitika_podatkov\work_dir\python-analitika-public\.venv\lib\site-packages\pandas\_libs\parsers.pyx:852, in pandas._libs.parsers.TextReader._tokenize_rows()

File ~\Desktop\analitika_podatkov\work_dir\python-analitika-public\.venv\lib\site-packages\pandas\_libs\parsers.pyx:1973, in pandas._libs.parsers.raise_parser_error()

ParserError: Error tokenizing data. C error: Expected 1 fields in line 3, saw 2

Как выглядят данные в файле? Вы используете правильный разделитель sep? read_csv — мощная, но сложная функция с множеством настроек. Если у вас не получается, скопируйте заголовок вашего файла, чтобы мы могли попытаться воспроизвести ваше сообщение об ошибке.

mosc9575 01.04.2023 11:36

Добавил фото Дейты.

maja kralj 01.04.2023 11:42
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
88
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Заголовок вашего CSV-файла кажется сломанным/разделенным на две отдельные строки.

Если это так, вы можете начать с создания списка имен заголовков и передать его names в read_csv:

with open("DATA_vozila_RAW.csv", "r") as csv_file:
    headers = " ".join([line.strip() for line in csv_file.readlines()[:2]]).split(";")
    
data = pd.read_csv("DATA_vozila_RAW.csv", encoding = "Latin-1", delimiter = ";",
                   skiprows=2, header=None, names=headers).iloc[:, 2:]

Выход (в Юпитере):

Другие вопросы по теме

Похожие вопросы

Пробелы в сюжете скрипки слишком велики и должны быть исправлены
Как сопоставить элемент из одного списка со всеми элементами в подсписке, чтобы сформировать список кортежей (координат)
Я получаю сообщение об ошибке torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse) при вызове функции train.train() модели GPT2
Превышено максимальное количество повторных попыток с URL-адресом: / (вызвано SSLError (FileNotFoundError (2, «Нет такого файла или каталога»)))) только во время отладки
Занимает много времени при создании изображения на питоне с сообщением: Колесо сборки для панд (pyproject.toml): все еще работает
AttributeError: объект «список» не имеет атрибута «сходство» при использовании средства извлечения плотных проходов (сосновой шишки) в Haystack – Python
Как сделать строку без учета регистра.startswith
TypeError: Unhashable type: 'numpy.ndarray' в keras
Как ускорить этот код для сечения Пуанкаре с помощью Numba?
Цикл for не печатает каждую строку в pandas df