我有一个像这样的数据框, 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
我不需要时间,我想要'yyyy/mm/dd'格式,我添加了格式,但它不起作用:
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)
因此,我在 ExcelWriter 中添加了 datetime_format:
writer = pd.ExcelWriter('output.xlsx',engine='xlsxwriter',datetime_format='yyyy/mm/dd')
它确实有效,但为什么呢? 1.为什么我不能使用add_format来改变? 2、如果我想要垂直对齐,我用了set_align('vcenter'),还是不行,怎么办?
最佳答案
这不是 Excel 问题。您看到此行为的原因是 pandas
将 datetime
系列写入 datetime
对象,该对象附加了 Excel 中的特定表示形式。
如果您想要特定的字符串格式,则需要在写入 Excel 之前将 datetime
系列转换为字符串:
df['Date'] = df['Date'].dt.strftime('%Y/%m/%d')
我建议您使用 Minimal, Complete and Verifiable Example 单独询问第二个问题.
关于python - 如何将数据框写入Excel并更改格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50563867/