Содержимое файла CSV не выравнивается по именам столбцов во фрейме данных при чтении с pandas - PullRequest
0 голосов
/ 31 января 2020

Я загрузил его как Excel

df = pd.read_excel('GSVP_XL.xlsx', columns=['client_id', 'agreement', 'contact_type', 'contact_number', 'group_main'])

в файл - поле client_id не имеет кавычек, я поставил кавычки - без разницы.

и вот как выглядит df :

client_id,"agreement","contact_type","contact_number","group_main"
0                              000101501129,"1","103",+77760013505,true
1                              851223350038,"1","103",+77779261433,false
2                              970425300903,"1","103",+77071061047,true
3                              970425301179,"1","103",+77714032401,true
4                              970425350701,"1","103",+77787763621,true

Я пытался сохранить его как excel и pd.read_excel (). Я указал имена столбцов.

df = pd.read_excel('GSVP_XL.xlsx', columns=['client_id', 'agreement', 'contact_type', 'contact_number', 'group_main'])

даже при использовании кодировки utf-8 ошибка сохраняется

df = pd.read_csv('GSVP.csv', encoding='UTF-8')

UnicodeDecodeError: код 'utf-8' c не может декодировать байт 0xb0 в позиции 26: недопустимый начальный байт

1 Ответ

1 голос
/ 31 января 2020

Посмотрите на распечатку вашего DataFrame. Обратите внимание, что то, что вы хотите в качестве имен столбцов (client_id,"agreement","contact_type","contact_number","group_main"), было напечатано в виде одной строки.

Таким образом, похоже, что все содержимое файла Excel было в первом столбце только .

Чтобы проверить это, откройте входной файл в Excel и посмотрите на них.

Еще один способ подтвердить мои подозрения - print(df.columns). Если вы видите список с одной строкой, я прав.

Тогда, вероятно, вам следует переформатировать ваш входной файл, чтобы client_id , соглашение и т. Д. Находятся в отдельных столбцах.

Другим решением является:

  • сохранить файл Excel в виде файла CSV (поскольку электронная таблица содержит только один столбец, заполненный данными, в выводе не будет запятых),
  • , затем прочитайте этот файл, вызвав read_csv (запятые, содержащиеся в вашем контенте, будут служить разделителями столбцов CSV).

И чтобы избежать ошибок кодирования, начните с проверки фактической кодировки вашего входного файла или изменения его кодировки на UTF-8 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...