gpt4 book ai didi

pandas.to_sql 将新列添加到现有表中,自动添加新列?

转载 作者:行者123 更新时间:2023-12-04 12:29:23 26 4
gpt4 key购买 nike

我想将数据帧写入现有的 sqlite(或 mysql)表,有时数据帧将包含数据库中尚不存在的新列。我需要做什么才能避免抛出错误?有没有办法告诉 pandas 或 sqlalchemy 使用潜在的新列自动扩展数据库表?

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) table match_exact_both has no column named ....

最佳答案

这是我使用 mySQL 和 sqlalchemy 的解决方案。基本思想是,如果可能的话,我想附加到 SQL 数据库而不是重写整个内容,但是如果有一个新列,那么我可以在 Pandas 中合并数据,然后覆盖现有数据库。

import pymysql
from sqlalchemy import create_engine
import pandas as pd
cnx = create_engine('mysql+pymysql://username:password@hostname/database_name')
try:
#this will fail if there is a new column
df.to_sql(name='sql_table', con=cnx, if_exists = 'append', index=False)
except:
data = pd.read_sql('SELECT * FROM sql_table', cnx)
df2 = pd.concat([data,df])
df2.to_sql(name='sql_table', con=cnx, if_exists = 'replace', index=False)

关于pandas.to_sql 将新列添加到现有表中,自动添加新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38354172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com