Pandas- ValueError: протоколы использования не соответствуют столбцам, столбцы ожидаются, но не найдены - PullRequest
1 голос
/ 04 апреля 2019

Я пытаюсь скопировать некоторые столбцы из импортированного файла csv в selected.csv, но это выдает мне следующую ошибку: 'ValueError: Usecols не соответствуют столбцам, столбцы ожидаются, но не найдены: [' Status ']';Неважно, какое имя столбца я использую, оно все равно не будет работать.Я попытался напечатать заголовки, и они отображаются нормально, я даже попытался скопировать имена столбцов оттуда, так что, если есть пропуски, которые я пропустил, или что-то еще, но это все равно выдает мне ту же ошибку.Я уже искал ответ, но ни один из найденных мной не подходит.

import pandas as pd
import numpy as numpy
import csv as csv

path_to_import ='C:/Users/Amila/hello/Auftraege_ALSO_R00.csv'

import_file = pd.read_csv(path_to_import, sep=';',engine='python',encoding='utf-8-sig')

headers = pd.read_csv(path_to_import, index_col=0, nrows=0).columns.tolist()

columns = ['Status']

path_to_selected = 'C:/Users/Amila/hello/selected.csv'

pd.read_csv(path_to_import,usecols=columns).to_csv('selected.csv', index=False)

Это названия напечатанных столбцов:

['Auftragsdatum;"Auftrags-Nr.";"Ihre Referenz";"Auftragswert";"Auftragsstatus";"Lieferadresse";"Pos.";"Menge";"Art.Nr.";"Herst.Nr.";"Produktname";"Ihre Referenz (Position)";"Netto / Stk.";"Rechn.-Nr.";"Liefers.-Nr.";"Serien-Nr.";"Status";"Hersteller"']

1 Ответ

2 голосов
/ 04 апреля 2019

В вашем коде есть несоответствия:

pd.read_csv(path_to_import,usecols=columns).to_csv('selected.csv', index=False)

вы не передали тот же sep аргумент, он должен быть

pd.read_csv(path_to_import,usecols=columns, sep=';').to_csv('selected.csv', index=False)

дополнительно в строке заголовков:

headers = pd.read_csv(path_to_import, index_col=0, nrows=0).columns.tolist()

вы передали index_col=0, при этом первый столбец обрабатывается как столбец индекса, который не соответствует другим вашим строкам, поэтому удалите его:

headers = pd.read_csv(path_to_import, nrows=0).columns.tolist()
...