python - 如何将 Teradata 中的精确格式表导出到 Excel?

标签 python excel pandas teradata xlsxwriter

对于工作中的项目,我需要从 teradata 导出以执行 sql 请求。

到目前为止,我成功地将几个请求完全导出到我的 Excel 文件,但输出格式并不完全是我想要的。事实上,输出不尊重原始表,只是逐行连接,如下所示: A 1('000000000DUM', 'RRFOR', '', '', 'NOTE_CONTREP', '20.00') 我想要

A1:000000000DUM B1:RRFOR C1:'' D1:'' E1:NOTE_CONTREP F1:20.00

这是我的代码:

def KPI_MAKER(instid):
conn=pyodbc.connect('DRIVER={Teradata};DBCNAME=FTGPRDTD;UID='+str('L291506')+';PWD='+str('Pilote06!')+';QUIETMODE=YES;')
Agg=str("sel code_gen1,code_gen2,cd_prd_cpta,lieu_stkph_cd,don_source_cd,incorrect_value from DB_FTG_SRS_DATALAB.mdc_ctrl_anomalie where rg_no = 'RGC-TIE-012'")
cursor = conn.cursor()
cursor.execute(Agg)
Agg_output = cursor.fetchall()
conn.close

df = pd.DataFrame(Agg_output)
writer = pd.ExcelWriter('KPI_FORTIS_13082019.xlsx', engine='xlsxwriter')
df.to_excel(writer, index=False, sheet_name='POC_output')    # sheet 0
writer.save()
print('done')

最佳答案

问题是 fetchall 方法返回 row 对象列表,而不是元组列表。添加 Agg_output 从行到元组的转换将允许 DataFrame 方法执行您想要的操作。但为什么要为光标烦恼呢?只需让 pandas 直接从查询创建数据框即可:

df = pd.read_sql(Agg,conn)

关于python - 如何将 Teradata 中的精确格式表导出到 Excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57481042/

相关文章:

python - 什么是快速 FIFO 队列的好方法?

c# - OLEDB,在没有前导撇号的情况下编写 Excel 单元格

Excel VBA根据表中的单元格值显示/隐藏工作表

excel - 没有重复和不固定数据的随机excel函数

excel - 将日期从 Excel 文件转换为 pandas

python - 如何在groupby之后聚合Pandas中的向量列?

python - 使用 Python 2.7 解析文本

python - 导入类与导入定义 python

python - 通过股票行情中的破折号或点从雅虎财经下载数据

python - 在 Pandas 中用标量乘以列