pandas 为什么写df到excel时时间格式会改变?

kcugc4gi  于 2023-10-14  发布在  其他
关注(0)|答案(2)|浏览(147)

当我尝试将DF写入一个Excel工作表时,带有日期的列打印日期和时间,如2007-01-02 00:00:00。我希望日期保持格式2007-01-02(没有时间)为什么会发生这种情况?
我尝试在网上的Python interpeter和我的终端,并确定..

import pandas as pd

player_list = [
    ['200712',50000], ['200714',51000], ['200716',51500],
    ['200719',53000], ['200721',54000],
    ['200724',55000], ['200729',57000]]
df = pd.DataFrame(player_list, columns=['Dates','Patients'])
print(df)
df['Dates'] = pd.to_datetime(df['Dates'], format='%Y%m%d')
print(df)

title01 = 'test' + '_' + '.xlsx'
writer = pd.ExcelWriter(title01, engine='xlsxwriter')
df.to_excel(writer, index=False, sheet_name='sheet1')
writer.save()
o8x7eapl

o8x7eapl1#

您可以使用.dt.date并写出到excel文件

df['Dates'] = df['Dates'].dt.date
df.to_excel('title01.xlsx', index=False)
qojgxg4l

qojgxg4l2#

当我尝试将DF写入一个Excel工作表时,带有日期的列将打印日期和时间,如2007-01-02 00:00:00
发生这种情况的原因是您正在将字符串转换为日期时间对象(日期+时间),Pandas使用默认格式“YYYY-MM-DD HH:MM:SS“。因此,您可以将datetime列转换为日期列(如@nisakova所示),或者使用pandas.ExcelWriter.datetime_format选项格式化datetime输出:

import pandas as pd

player_list = [
    ["200712", 50000],
    ["200714", 51000],
    ["200716", 51500],
    ["200719", 53000],
    ["200721", 54000],
    ["200724", 55000],
    ["200729", 57000],
]

df = pd.DataFrame(player_list, columns=["Dates", "Patients"])
df["Dates"] = pd.to_datetime(df["Dates"], format="%Y%m%d")

title01 = "test" + "_" + ".xlsx"

writer = pd.ExcelWriter(title01,
                        engine="xlsxwriter",
                        datetime_format="yyyy-mm-dd")

df.to_excel(writer, index=False, sheet_name="sheet1")

writer.close()

输出量:

相关问题