【发布时间】:2018-03-02 22:35:09
【问题描述】:
所以我一直在尝试使用 pandas 和 python 从 mysql 数据库创建一个数据框,但我遇到了一个需要帮助的问题。
问题是在将数据框写入 excel 时,它只写入最后一行,即它会覆盖所有以前的条目,并且只写入最后一行。请看下面的代码
import pandas as pd
import numpy
import csv
with open('C:path_to_file\\extract_job_details.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
jobid = str(row[1])
statement = """select jt.job_id ,jt.vendor_data_type,jt.id as TaskId,jt.create_time as CreatedTime,jt.job_start_time as StartedTime,jt.job_completion_time,jt.worker_path, j.id as JobId from dspe.job_task jt JOIN dspe.job j on jt.job_id = j.id where jt.job_id = %(jobid)s"""",
df_mysql = pd.read_sql(statement1, con=mysql_cn)
try:
with pd.ExcelWriter(timestr+'testResult.xlsx', engine='xlsxwriter') as writer:
df_mysql.to_excel(writer, sheet_name='Sheet1')
except pymysql.err.OperationalError as error:
code, message = error.args
mysql_cn.close()
请谁能帮我确定我哪里出错了? PS我是熊猫和python的新手。 谢谢卡洛斯
【问题讨论】:
-
您定义了
statement,但不知何故您将statement1传递给pd.read_sql函数。这可能是你的问题吗?
标签: python-3.x pandas csv mysql-python