Pandas无法将有效日期格式写入Excel工作表

3
背景:
1. 使用Python执行SQL并使用Pandas将输出保存为DataFrame格式。 2. 将输出追加到现有的Excel文件中作为一个新工作表。
以下是我的代码:
from pandas import ExcelWriter

sql_20 = ''''''

db = cx_Oracle.connect('*****', '*******', '**********')
conn = db.cursor()

conn.execute(sql_20)
df = pandas.read_sql_query(sql_20,db)
print(df)

with ExcelWriter('GUCS6J-Job Data.xlsx', mode='a') as writer:
    df.to_excel(writer, sheet_name=str(20))
writer.save()

数据库: Oracle

A列数据类型: date

从Oracle中的SQL结果:

enter image description here

从Python中的DataFrame打印输出:

enter image description here

到目前为止一切顺利


但是我在Excel工作表中得到的结果是:

enter image description here

enter image description here

我很好奇为什么会出现'##################',并且这个单元格的值是-693594

我希望在Excel文件中获得与DataFrame打印输出相同的结果。


df['A'] 的数据类型是什么? - Umar.H
1
嗨@Datanovice,它是<class 'pandas.core.series.Series'>。我使用了print(type(df['A']))。 - Gen Wan
pd.to_datetime('01-Jan-01') 返回 2001-01-01,将您的日期转换为有效的 Pandas 日期时间格式 df['date'] = pd.to_datetime(df['date']) 在我的机器上进行了测试,并且可以在 Excel 中查看。 - Umar.H
既然您只想将新工作表添加到现有文件中,我会直接执行df.to_excel('GUCS6J-Job Data.xlsx', sheet_name=str(20)) - NotAName
@Datanovice,我无法手动转换每一列,因为我们将有数百列和数百个新选项卡在Excel文件中。所以问题是:第二条记录[2014-09-20 00:00:00]在Excel文件中运行良好。为什么[0000-01-01 00:00:00]无法正确加载? - Gen Wan
显示剩余5条评论
1个回答

0

欢迎来到StackOverlfow!请编辑您的答案,包括与OP代码相关的链接页面提示的示例。也许可以重写他们的代码,加入您建议的更改?这将使您的答案对后来可能遇到此问题的其他人更有用。 - Das_Geek
我认为我找到了原因。 - Kevin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接