Метод to_sql
Метод to_sql применяется к DataFrame
и сохраняет данные в таблицу базы данных SQL.
Обязательными параметрами являются имя таблицы
и объект подключения к базе данных.
Метод возвращает количество записанных строк.
Синтаксис
df.to_sql(name, con, schema=None, if_exists='fail',
index=True, index_label=None, chunksize=None,
dtype=None, method=None)
Пример
Давайте сохраним таблицу в базу данных SQLite:
import pandas as pd
import sqlite3
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
conn = sqlite3.connect('data.db')
df.to_sql('users', conn, if_exists='replace')
conn.close()
Пример
Давайте прочитаем сохранённую таблицу обратно:
import pandas as pd
import sqlite3
conn = sqlite3.connect('data.db')
res = pd.read_sql('SELECT * FROM users', conn)
conn.close()
print(res)
Результат выполнения кода:
index a b
0 0 1 10
1 1 2 20
2 2 3 30
3 3 4 40
4 4 5 50
Пример
Давайте сохраним таблицу без индекса:
import pandas as pd
import sqlite3
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
conn = sqlite3.connect('data.db')
df.to_sql('users', conn, if_exists='replace', index=False)
conn.close()
conn = sqlite3.connect('data.db')
res = pd.read_sql('SELECT * FROM users', conn)
conn.close()
print(res)
Результат выполнения кода:
a b
0 1 10
1 2 20
2 3 30
3 4 40
4 5 50
Пример
Давайте добавим данные к существующей таблице:
import pandas as pd
import sqlite3
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30]
})
df2 = pd.DataFrame({
'a': [4, 5],
'b': [40, 50]
})
conn = sqlite3.connect('data.db')
df1.to_sql('users', conn, if_exists='replace', index=False)
df2.to_sql('users', conn, if_exists='append', index=False)
conn.close()
conn = sqlite3.connect('data.db')
res = pd.read_sql('SELECT * FROM users', conn)
conn.close()
print(res)
Результат выполнения кода:
a b
0 1 10
1 2 20
2 3 30
3 4 40
4 5 50