#python-3.x #pandas #csv
#python-3.x #pandas #csv
Вопрос:
Когда я пытаюсь преобразовать свой файл Excel в csv, используя функцию to_csv, весь мой номер элемента, который имеет 1, ведущий к 0, теряет его, за исключением самой первой строки.
У меня есть простой forloop, который перебирает все ячейки и преобразует значения ячеек в строку, поэтому я понятия не имею, почему только первая строка правильно преобразуется в формат csv с начальным 0.
for row in ws.iter_rows():
for cell in row:
cell.value = str(cell.value)
pd.read_excel('example.xlsx').to_csv('result.csv', index=False, line_terminator = ',n')
например
https://i.stack.imgur.com/Njb3n.png (не позволяет мне напрямую добавлять изображение, но оно показывает следующее в Excel)
0100,03/21/2019,4:00,6:00
0101,03/21/2019,4:00,6:00
0102,03/21/2019,4:00,8:00
превращается в:
0100,03/21/2019,4:00,6:00,
101,03/21/2019,4:00,6:00,
102,03/21/2019,4:00,8:00,
Что я могу сделать, чтобы перед всеми первыми элементами в csv стояло 0?
Любая информация была бы оценена.
Ответ №1:
Итак, если у вас нет заголовка в файле Excel: имя столбцов по умолчанию равно 0,1, … и так далее
если вы хотите сохранить ноль, например, в столбце 0, просто сделайте:
pd.read_excel('example.xlsx', header=None, dtype={0:str})
.to_csv('result.csv', index=False, line_terminator = ',n'
если у вас нет заголовка и вы не указываете точное значение header = None, первой строкой является заголовок. dtype={0:str} указывает, что столбец 0 будет str.
будьте осторожны, когда вы сохраняете файл Excel в csv, заголовок сохраняется (здесь с вашими параметрами), первая строка будет равна 0,1, .. (название столбцов)
если вы не хотите, чтобы заголовок файла csv использовался:
pd.read_excel('e:/test.xlsx', header=None, dtype={0:str})
.to_csv('e:/result.csv', index=False, header=False, line_terminator = ',n')
Комментарии:
1. Я заметил, что у to_csv не было dtype в качестве одного из его параметров, и не думал о добавлении его в read_excel. Большое вам спасибо!