将Pandas Dataframe 存储到SQlite3数据库中

cetgtptt  于 2022-11-14  发布在  SQLite
关注(0)|答案(1)|浏览(272)
import pandas as pd
import sqlite3 as sql
sea_level_df = pd.read_csv(r"C:\Users\slaye\OneDrive\Desktop\SeaLevel.csv", skiprows=3)
database = "database.db"
conn = sqlite3.connect(database)
sea_level_df.to_sql(name='Sea_Level', con=conn)
con = sql.connect('Sea_Level')
cur = con.cursor()
cur.execute('''SELECT* FROM "Sea_Level";''')
cur.fetchall()
con.close()

我基本上是在尝试将 Dataframe 存储到SQLITE3的数据库中。我用的是Jupyter笔记本。当我运行上面的脚本时,我得到这样的结果:

ValueError: Table 'Sea_Level' already exists.
7rtdyuoh

7rtdyuoh1#

正如@Alexk在评论中提到的:根据需要使用if_exists='append'if_exists='replace'

sea_level_df.to_sql(name='Sea_Level', con=conn, if_exists='append')

顺便说一句,您收到的错误是documented as expected behaviour
IF_EXISTS{‘FAIL’,‘REPLACE’,‘APPEND’},默认为‘FAIL’
如果该表已经存在,该如何操作。

  • 失败:引发ValueError。
  • 替换:在插入新值之前删除该表。
  • 追加:在现有表格中插入新值。

相关问题