How to get from Pandas DataFrame to SQL in just 3 steps
Published on Aug. 22, 2023, 12:13 p.m.
Steps to get from Pandas Data Frame to SQL.
Step 1: Create a DataFrame
Here is the code to create the DataFrame .
import pandas as pd
data = {'product_name': ['Computer','Tablet','Monitor','Printer'],
'price': [900,300,450,150]
}
df = pd.DataFrame(data, columns= ['product_name','price'])
print (df)
Step 2: Create a Database
For demonstration purposes, let’s create a simple database.
import sqlite3
conn = sqlite3.connect('test_database')
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS products (product_name text, price number)')
conn.commit()
Step 3: Get from Pandas DataFrame to SQL
You can use the following syntax to get SQL from Pandas Data Frame to SQL :
df.to_sql('products', conn, if_exists='replace', index = False)
Where ‘products’ is the table name created in step 2.
Going from the DataFrame to SQL and then back to the DataFrame
Now let’s see how to go from the DataFrame to SQL and then back to the Data Frame.
conn = sqlite3.connect('test_database_2')
c = conn.cursor()
Then, create the same products table .
c.execute('CREATE TABLE IF NOT EXISTS products (product_name text, price number)')
conn.commit()
Now, build DataFrame:
data = {'product_name': ['Computer','Tablet','Monitor','Printer'],
'price': [900,300,450,150]
}
df = pd.DataFrame(data, columns= ['product_name','price'])
Apply the code to go from the DataFrame .
df.to_sql('products', conn, if_exists='replace', index = False)
You can then find the maximum price among all the products .
c.execute('''
SELECT * FROM products
WHERE price = (SELECT max(price) FROM products)
''')
Finally, get back from SQL.
df = pd.DataFrame(c.fetchall(), columns=['product_name','price'])
print (df)