【发布时间】:2016-11-27 16:28:54
【问题描述】:
我有几个pandas Dataframe 想写入SQL database。但是,因为现有的 SQL database 可能没有 pandas Dataframe 中的特定 column name,所以我收到一条错误消息,指出 the column in the table was not found, thus unable to append data。
# Example:
df1
out= column1, column2, column3, column4
value1, value2, value3, value4
df2
out= columnA, columnB, columnC
valueA, valueB, valueC
# Initially I concat the df together and save it into SQL
combined_data = pandas.concat([df1, df2], axis=1,
join='inner')
pandas.DataFrame.to_sql(combined_data, name='table1', con=engine,
if_exists='append', index=False)
但是,由于已经创建了包含所有列的表,如果 df2 要包含其他列,我会收到一条错误消息。
df2
out= columnA, columnB, columnC, columnD, columnE, columnF
valueA, valueB, valueC, valueD, valueE, valueF
我如何构造一个代码,它将在现有 SQL table 中创建新列,这些列的名称与 pandas Dataframe 中缺少的列名称一样?
我想我可以用下面的sql code添加新列
connection.execute("ALTER TABLE table1 ADD COLUMN new_column INTEGER DEFAULT 0")
但是如何确保添加的 new_column 跟在 df2 中的列名之后?
【问题讨论】:
标签: python sqlite sqlalchemy