Как написать dataframe, чтобы преуспеть и изменить формат - PullRequest
0 голосов
/ 28 мая 2018

У меня есть такой фрейм данных, print (df ['Date']):

0    2018-05-14
1    2018-05-14
2    2018-05-14
3    2018-05-15

Но когда я написал его в Excel, я понятия не имел, почему он показал:

2018-05-14 00:00:00
2018-05-14 00:00:00
2018-05-14 00:00:00
2018-05-15 00:00:00

Мне не нужно время, и я хочу формат 'гггг / мм / дд', я добавил формат, но он не работал:

writer = pd.ExcelWriter('output.xlsx',engine='xlsxwriter') 
df.to_excel(writer,sheet_name='Sheet1',index=False)
workbook  = writer.book
worksheet = writer.sheets['Sheet1']
date_format = workbook.add_format({'num_format': 'yyyy/mm/dd'}) 
worksheet.set_column('A:A', 15,date_format) 

Итак, я добавил datetime_format в ExcelWriter:

writer = pd.ExcelWriter('output.xlsx',engine='xlsxwriter',datetime_format='yyyy/mm/dd') 

это сработало, но почему?1. Почему я не могу использовать add_format для изменения?2. Если я хочу вертикальное выравнивание, я использовал set_align ('vcenter'), он все еще не может работать, как это сделать?

1 Ответ

0 голосов
/ 28 мая 2018

Это не проблема Excel.Причина, по которой вы наблюдаете это поведение, заключается в том, что pandas записывает datetime серии как datetime объекты, которые прикрепляют определенное представление в Excel.

Если вам нужен определенный формат строки, то вам нужно преобразоватьваши datetime серии в строки перед тем, как писать в Excel:

df['Date'] = df['Date'].dt.strftime('%Y/%m/%d')

Я рекомендую вам задать свой второй вопрос отдельно с Минимальным, полным и проверяемым примером .

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