pandas:将日期写入excel,以便它们可以用作日期

h5qlskok  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(391)

我无法让输出的xlsx以可用的方式写入日期,我遵循了类似于以下的常见线程:
https://xlsxwriter.readthedocs.io/example_pandas_datetime.html
以日期格式将数据输出到excel时出现问题
这里是一个mwe:

import pandas as pd
import xlsxwriter

not_in1 = ['missing']

# generate data

df = pd.DataFrame({'date1': ['5/1/2022 00:33:22', '3/1/2022 00:33:22', 'missing'], 'date2': ['3/1/2022 00:33:22', 'missing', '6/2/2022 00:33:22']})

# format

df['date1'] = df['date1'].apply(lambda x: pd.to_datetime(x).strftime('%m/%d/%Y') if x not in not_in1 else x)
df['date2'] = df['date2'].apply(lambda x: pd.to_datetime(x).strftime('%m/%d/%Y') if x not in not_in1 else x)

# write

path = 'C:\\Users\\Andrew\\Desktop\\xd2.xlsx'
with pd.ExcelWriter(path, engine='xlsxwriter', date_format="mm dd yyyy", datetime_format="mm dd yyyy") as writer:
    df.to_excel(writer, sheet_name='Sheet1', index=False)
    workbook  = writer.book
    worksheet = writer.sheets['Sheet1']
    formatdict = {'num_format':'mm/dd/yyyy'}
    fmt = workbook.add_format(formatdict)
    worksheet.set_column('A:B', 20, fmt)

作为xlsx,excel不知道该做什么:
https://i.stack.imgur.com/pbrai.png
有趣的是,如果我将xlsx工作表保存为csv,则日期工作正常。
https://i.stack.imgur.com/trofc.png

wsxa1bj1

wsxa1bj11#

lambda函数将 x 参数转换为字符串,则应将其保留为datetime。目前,您在excel中得到一个字符串(使用excel的 type 查看.csv和.xlsx文件之间的差异)。
只需移除 .strftime('%m/%d/%Y') 你会没事的。

相关问题