Автоматическое переформатирование при использовании модуля Python для записи csv

Как запретить Python автоматически записывать объекты в csv в формате, отличном от исходного? Например, у меня есть объект списка, например:

row = ['APR16', '100.00000']

Я хочу записать эту строку как есть, однако, когда я использую функцию записи CSV Writer, она записывает в CSV-файл как 16 апреля и только 10. Я хочу сохранить исходное форматирование.

РЕДАКТИРОВАТЬ:

Вот код:

import pandas as pd

dates = ['APR16', 'MAY16', 'JUN16']
numbers = [100.00000, 200.00000, 300.00000]

for i in range(3):
    row = []
    row.append(dates[i])
    row.append(numbers[i])
    prow = pd.DataFrame(row)
    prow.to_csv('test.csv', index=False, header=False)

И результат:

Результат


person KidSudi    schedule 31.03.2014    source источник
comment
Откуда вы знаете, что это делает Python, а не то, во что вы его читаете, интерпретирует это именно так?   -  person DSM    schedule 01.04.2014
comment
Итак, вы говорите, что Excel меняет объект на формат даты и так далее? Как мне изменить этот параметр, который автоматически переформатирует данные при записи?   -  person KidSudi    schedule 01.04.2014
comment
Если вы хотите, чтобы они были встроенными, см.: это pd.DataFrame([(dates[i], numbers[i])])   -  person Jan Zeiseweis    schedule 01.04.2014
comment
Это уже не вопрос Python, а вопрос Excel. Используйте данные/из текста (см. здесь) и установите тип импортируемого столбца на быть текстом, а не общим.   -  person DSM    schedule 01.04.2014


Ответы (1)


Использование pandas:

import pandas as pd

dates = ['APR16', 'MAY16', 'JUN16']
numbers = [100.00000, 200.00000, 300.00000]

data = zip(dates,numbers) 

fd = pd.DataFrame(data)

fd.to_csv('test.csv', index=False, header=False)  # csv-file
fd.to_excel("test.xls", header=False,index=False) # or xls-file

Результат в моем терминале:

➜  ~  cat test.csv 
APR16
100.00000

Результат в LibreOffice:

введите здесь описание изображения

person Tengis    schedule 31.03.2014
comment
У меня есть несколько строк, каждая из которых объявлена ​​в цикле for. С этим кодом кажется, что он продолжает перезаписывать файл. - person KidSudi; 01.04.2014
comment
опубликуйте фрагмент кода, чтобы сделать вашу точку более ясной. Я не понимаю, почему приведенное выше решение не должно работать для нескольких строк. - person Tengis; 01.04.2014
comment
Ну, в любом случае, он по-прежнему преобразует APR16 в дату, когда я просматриваю ее в Excel, это проблема с тем, как она интерпретируется, как указано выше. - person KidSudi; 01.04.2014
comment
это все еще преобразует вы говорите. Что это? Эксель или Питон? В любом случае, смотрите скриншот в моем ответе. Я бы сказал, что это выглядит нормально. Опубликуйте свой код с циклом, чтобы мы могли его рассмотреть. - person Tengis; 01.04.2014
comment
Отредактированный вопрос выше - person KidSudi; 01.04.2014
comment
@KidSudi: см. мое отредактированное решение. В вашем цикле с row = [] вы каждый раз сбрасываете свой список! Это не то, что вы хотите сделать, верно :-) - person Tengis; 01.04.2014
comment
Ну это не проблема для меня, я могу это исправить. У меня все еще возникает та же проблема, о которой я говорил в своем вопросе. Это определенно проблема с тем, как это интерпретируется - person KidSudi; 01.04.2014
comment
[..] он интерпретируется Excel. Вам нужно взглянуть на свойства ячейки в Excel. Может быть, это может помочь. - person Tengis; 01.04.2014