← retour aux snippets

pandas: to_sql avec SQLite par chunks

Écrire un DataFrame dans SQLite par paquets.

python io #pandas#sqlite

objectif

Écrire un DataFrame dans SQLite par paquets.

code minimal

import pandas as pd, sqlite3

con = sqlite3.connect(":memory:")
df = pd.DataFrame({"id":range(5), "x":[i*i for i in range(5)]})
df.to_sql("t", con, index=False, chunksize=2, if_exists="replace")
print(pd.read_sql("select count(*) as n from t", con)["n"].iloc[0])

utilisation

import pandas as pd, sqlite3

con = sqlite3.connect(":memory:")
pd.DataFrame({"a":[1,2]}).to_sql("a", con, index=False)
print(pd.read_sql_query("select * from a", con).to_dict(orient="list"))

variante(s) utile(s)

import pandas as pd, sqlite3

con = sqlite3.connect(":memory:")
pd.DataFrame({"a":[1]}).to_sql("a", con, if_exists="append", index=False)
print("ok")

notes

  • if_exists : ‘replace’, ‘append’, ‘fail’.