【问题标题】:Is there any way to efficiently append a pandas series to sql database table (as an additional column)?有什么方法可以有效地将熊猫系列附加到 sql 数据库表(作为附加列)?
【发布时间】:2019-12-11 16:38:42
【问题描述】:
所以我正在尝试将 pandas DataFrame 插入数据库。数据库已经有一个表,其中包含 DataFrame 的大部分内容,除了一列。
我尝试使用df.to_sql() 插入整个DataFrame,但它需要很多时间。是否有任何函数或库可以将 DataFrame 中的一列附加到现有数据库表中?
【问题讨论】:
标签:
python
sql
database
pandas
【解决方案1】:
可能是当您将数据插入数据库时,表会被删除,并且包括新列在内的所有数据都会写入数据库。
不妨试试ALTER TABLE <tablename> ADD column dtype;
插入可以通过UPDATE <tablename> SET column = value where condition 完成
然后您可以遍历 pandas.Series 对象并仅插入新值。
类似这样的:
crsr = cnxn.cursor()
crsr.fast_executemany = True
crsr.executemany(
"UPDATE <tablename> SET col1 VALUE ?",
list(df.column.itertuples(index=False)
)
crsr.commit()