【问题标题】:pandas creating a dataframe from mysql databasepandas 从 mysql 数据库创建数据框
【发布时间】: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


【解决方案1】:

我不确定您要同时从磁盘和数据库读取什么...

首先,如果您已经在使用 Pandas,则不需要 csv

df = pd.read_csv("path/to/input/csv")

接下来,您可以简单地提供文件路径作为 to_excel 的参数,而不是 ExcelWriter 实例:

df.to_excel("path/to/desired/excel/file")

如果它实际上不需要是一个 excel 文件,你可以使用:

df.to_csv("path/to/desired/csv/file")

【讨论】:

    猜你喜欢
    • 2018-11-13
    • 1970-01-01
    • 2020-07-27
    • 2018-08-13
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 2017-07-03
    • 2016-05-17
    相关资源
    最近更新 更多