Универсальный скрипт для конвертирования CSV в XLSX
Пытаюсь написать универсальный скрипт для конвертации CSV в XLSX.
Мои данные в подобном формате:
id,Имя,Адрес, Комментарий
12,Владимир,Москва, Слесарь
15,Олег,"Москва, улица Долгопрудная, д 9, кв 5","Программист, режиссёр"
14,Марина,"Лобня, Интернациональная","Писатель, клипмейкер, дизайнер"
Скрипт написал такой:
import pandas as pd
df = pd.read_csv("1.csv", sep=',\s*', engine='python', encoding = 'cp1251')
for col in df.columns.values:
df[col] = df[col].str.strip('"')
df.to_excel("1.xlsx", index=None)
Однако на выходе имею:
А должно быть как при использовании инструмента Excel "Данные" - "Текст по столбцам", т.е. вот так:
Просьба помочь с решением, не обязательно на библиотеке Pandas. Нужен универсальный скрипт для конвертации CSV в XLS(X), где значение может быть выделено цитатами (т.к. внутри запятые, а они являются разделителями)
Ответы (1 шт):
По-моему вы немного перемудрили. Попробуйте так:
(pd.read_csv("1.csv", sep=",", encoding="cp1251")
.to_excel("result.xlsx", index=None))
содержимое файла 1.csv:
id,Имя,Адрес, Комментарий
12,Владимир,Москва, Слесарь
15,Олег,"Москва, улица Долгопрудная, д 9, кв 5","Программист, режиссёр"
14,Марина,"Лобня, Интернациональная","Писатель, клипмейкер, дизайнер"
UPD: для того чтобы проверить является ли ваш CSV файл корректным CSV откройте его в текстовом редакторе.
Вот битый файл приведенный по ссылке в комментарии:
id,Имя, Адрес, Комментарий
12,Владимир,Москва, Слесарь
"15,Олег,""Москва, улица Долгопрудная, д 9, кв 5"",""Программист, режиссёр"""
"14,Марина,""Лобня, Интернациональная"",""Писатель, клипмейкер, дизайнер"""
NOTE: обратите внимание на квотирование.



