python - 如何将数据框写入Excel并更改格式

标签 python python-3.x pandas

我有一个像这样的数据框, 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 问题。您看到此行为的原因是 pandasdatetime 系列写入 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/

相关文章:

python - "coding: pyxl"在 Python 中如何工作?

python - 连接python列表中的单个元素

python-3.x - 保存 matplotlib 动画时出错,缺少 'dpi' 参数

python - 展开多行

python-3.x - 将 python 列表附加到 DataFrame 列

python - 使用 Pandas 或命令行上传到 BigQuery 时出现奇怪的重复字段错误。所有字段唯一

java - Python 数组与 Java 中的相同吗?

python - NLTK 中的 FreqDist 不对输出进行排序

javascript - Python/R 中的网页抓取 javascript

python - 如何使用selenium捕获网络流量