【问题标题】:Data displaying incorrectly after exporting to CSV sqlite3 Python导出到 CSV sqlite3 Python 后数据显示不正确
【发布时间】:2020-01-14 17:53:27
【问题描述】:

我正在尝试将数据从表导出到 csv 文件。但是,熊猫数据框中包含 sum() 的两列显示不正确。 我使用的代码是:

df6 = pd.read_sql_query("SELECT * FROM tblIncome", conn)
    df7 = pd.read_sql_query("SELECT * FROM tblCategory", conn)
    if sure == "Y":
        total_mnthinc = df6["IncomeAmount"].sum()
        print(total_mnthinc)
        total_mnthbudget = df7["CategoryMonthlyBudget"].sum()
        print(total_mnthbudget)
        c.execute("INSERT INTO tblTotal (TotalMonthlyIncome, TotalMonthlyBudget, UserID) VALUES (?, ?, ?)",
                  (total_mnthinc, total_mnthbudget, "1"))
        conn.commit()
        menu()

数据显示为:TotalMonthlyIncome :

用于导出的代码是:

elif tbl_input == "E":
        print("Exporting CSV data to root directory of the Expense Management System... \n")
        data = c.execute('SELECT * FROM tblTotal')
        with open('tblTotalData.csv', 'w') as f:
            writer = csv.writer(f)
            writer.writerow(['TotalID', 'TotalMonthlyIncome', 'TotalMonthlyBudget', 'UserID'])
            writer.writerows(data)
        menu()

非常感谢任何帮助!

编辑:在下面的评论中添加行后,它现在显示为:

编辑 2:我已通过添加修复它:

            total_mnthinc = int(df6["IncomeAmount"].sum())
            print(total_mnthinc)
            total_mnthbudget = int(df7["CategoryMonthlyBudget"].sum())

【问题讨论】:

    标签: python excel database sqlite csv


    【解决方案1】:

    需要从字节转换为整数。

    int.from_bytes(df6["IncomeAmount"].sum(), byteorder='big', signed=True)
    

    【讨论】:

    • 我刚刚将您的代码添加到我的项目中,但仍然无法正确显示。新错误在答案中的编辑中
    • 嘿,正确显示它们只是大数字,所以要么你有一个巨大的每月预算,要么它没有正确转换查看该函数的文档。仅供参考,单击单元格并更改格式以不获取指数数字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 2012-05-20
    • 1970-01-01
    相关资源
    最近更新 更多