Python 无法使用有效的日期格式写入Excel工作表
背景: 1,使用Python执行SQL,并使用Pandas将输出保存为数据帧格式 2,将输出作为一个新工作表附加到现有excel文件中 下面是我的代码:Python 无法使用有效的日期格式写入Excel工作表,python,excel,pandas,dataframe,Python,Excel,Pandas,Dataframe,背景: 1,使用Python执行SQL,并使用Pandas将输出保存为数据帧格式 2,将输出作为一个新工作表附加到现有excel文件中 下面是我的代码: from pandas import ExcelWriter sql_20 = '''''' db = cx_Oracle.connect('*****', '*******', '**********') conn = db.cursor() conn.execute(sql_20) df = pandas.read_sql_query
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数据类型:日期 来自Oracle的SQL结果: 从Python打印数据帧: 到目前为止还不错
但我在excel工作表中得到的是: 我很好奇为什么我会得到“###################”这个单元格在excel中的值是-693594
我希望我能得到与excel文件中的DataFrame打印相同的结果。请参考这两个链接,看看它是否能解决您的问题
我认为您需要在ExcelWriter()中添加日期格式。对于
df['A']
,数据类型是什么。我使用print(type(df['A'])pd.to_datetime('01-Jan-01')
returns2001-01-01
将您的日期转换为有效的熊猫日期时间df['date']=pd.to_datetime(df['date'])
在我的机器上测试过,我可以在excel中查看。我只是好奇为什么您需要从熊猫导入ExcelWriter?您应该已经在更早的时候导入了pandas(因为您在更早的时候创建了一个数据框),并且您应该能够使用df.to_excel
,而无需任何额外的导入。您好@datanoveler,在我们的oracle数据库中,“01-Jan-01”是0001-01-01。熊猫正确读取输出,因为数据框显示“0001-01-01 00:00:00”。我将在输出中有数百列,我不想手动强制转换每一列。欢迎使用StackOverlfow!请编辑您的答案,以包含链接页面提示的示例,因为它们适用于OP的代码。也许重写他们的代码,加入你建议的更改?这将使您的答案对以后可能有此问题的其他人更有用。我想我找到了原因