Konversi Excel ke SQLite dengan Python

Melihat kawan saya mendemonstrasikan konversi dari excel ke SQLite dengan bahasa R, membuat saya cukup iri. mestinya Python juga bisa. Dan ternyata bisa juga hanya dengan beberapa baris perintah.

Mekanismenya begini,

Excel -> Pandas -> SQLite

Hebatnya, kita hanya menentukan nama databasenya, nama tabelnya, lalu dia sendiri yang akan menentukan kolom-kolomnya dan memasukkan data ke tabel. Serba otomatis.

Begini skripnya

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#import library
import pandas as pd
import sqlite3
 
#open file from excel to dataframe
file = "STUDI KASUS - DATA PENJUALAN_REV.xlsx"
df = pd.read_excel(file, sheet_name=0)
 
#create database and connect it
database = "penjualandb.sqlite3"
conn = sqlite3.connect(database)
 
#save data to sqlite
df.to_sql(name='penjualan', con=conn)
conn.close()

Python Pandas: Perbandingan Pandas dengan SQL

Salah satu fungsi pandas sebenarnya mirip SQL yaitu bagaimana meminta data pada sumber data dengan kriteria tertentu. Yang paling umum adalah,

  1. SELECT
  2. WHERE untuk filtering
  3. Fungsi Agregasi SUM(), MIN(), MAX(), AVG()
  4. GROUP BY
  5. ORDER BY
  6. JOIN

Ternyata ada artikel di situs Pandas yang memberikan padanan perintah antara SQL dan Pandas. Kita bisa membacanya disini : Comparison SQL and Pandas . Bahkan bukan hanya itu, Pandas memberikan perbandingan dengan cara pengambilan data yang digunakan di R, Spreadsheet, SAS dan Stata.

Nampaknya petualangan akan semangkin asyik 🙂

Ilmu Kalau Tidak Ditulis, Rawan Hilang

Dengan banyaknya informasi, apalagi informasi yang sifatnya teknis, rasanya susah kalau hanya mengandalkan ingatan kita.

Dan sebalnya, begitu kita membutuhkannya, kita sudah lupa. Sehingga rasanya, apa yang kita pelajari menjadi agak sia-sia.

Nampaknya, saya harus menulis kembali sebagaimana dulu awal-awal saya menulis blog. Dan ternyata yang menjadi korban adalah blog ini, karena akhirnya banyak catatan teknis yang harus saya ketik disini.

Mengelola satu blog, rasanya lebih mudah dibanding mengelola banyak blog. Walaupun hanya saya dan orang-orang tertentu saja yang bisa memanfaatkan tulisan teknis itu, hehehe

Install JupyterLab

Kalau tidak salah, saya sudah pernah install Jupyterlab, tapi dimana saya taruh? Parah ya, hehehe, akhirnya install lagi dah, sekalian saya taruh disini buat catatan.

Langkah pertama buat Virtual Environment dan dan install jupyterlab

PS D:\Python> cd .\Jupyterlab\
PS D:\Python\Jupyterlab> python -m venv jupyterlab
PS D:\Python\Jupyterlab> .\jupyterlab\Scripts\activate
(jupyterlab) PS D:\Python\Jupyterlab> pip install jupyterlab

Langkah kedua jalankan Jupyterlab

(jupyterlab) PS D:\Python\Jupyterlab> jupyter lab

Ternyata kita dihadang login


Okey, kita reset dulu …

(jupyterlab) PS D:\Python\Jupyterlab> jupyter notebook password

Dan taraa….

Terakhir jangan lupa jika kamu ingin mainan pandasql kamu harus melakukan instalasi library yang dibutuhkan.

PS C:\Users\ached> cd D:\Python\Jupyterlab\
PS D:\Python\Jupyterlab> .\jupyterlab\Scripts\activate
(jupyterlab) PS D:\Python\Jupyterlab> pip install pandasql
(jupyterlab) PS D:\Python\Jupyterlab> pip install openpyxl

Terimakasih …

Pandas SQL di Python

Terus terang saya tertarik dengan adopsi SQL pada Python. Selain karena saya sudah akrab dengan SQL, sintak pandas nemurut saya tidak mudah diingat sebagaimana SQL, sehingga ketika kita tidak sering menggunakannya, kita akan mudah lupa.

Berikut catatan saya tentang penggunaan Pandas-SQL

Setup Virtual Environment. 

Ini tidak harus sih, hanya kalau kita ingin sebuah environment khusus bagi project kita.

PS D:\Python> cd .\DataScience\
PS D:\Python\DataScience> python -m venv ds
PS D:\Python\DataScience> .\ds\Scripts\activate
(ds) PS D:\Python\DataScience> pip install pandas

Install Pandas

(ds) PS D:\Python\DataScience> pip install pandas

Install Pandasql

(ds) PS D:\Python\DataScience> pip install -U pandasql

Contoh Penggunaan

Query pada CSV

1
2
3
4
5
6
7
8
9
10
from pandasql import sqldf
import pandas as pd
 
file = "STUDI KASUS - DATA PENJUALAN_REV.csv"
df = pd.read_csv(file)
 
sql = "SELECT trim(kategori_pelanggan) as kategory_pelanggan, count(no) AS jumlah FROM df GROUP BY trim(kategori_pelanggan)"
 
data = sqldf(sql)
print(data)

Query pada Excel

Untuk istalasi pada Excel kita perlu install openyxl

(ds) PS D:\Python\DataScience> pip install openpyxl

Lalu kita kita gunakan fungsi read_excel() berikut:

1
2
3
4
5
6
7
8
9
10
from pandasql import sqldf
import pandas as pd
 
file = "STUDI KASUS - DATA PENJUALAN_REV.xlsx"
df = pd.read_excel(file, sheet_name=0)
 
sql = "SELECT trim(kategori_pelanggan) as kategory_pelanggan, count(no) AS jumlah FROM df GROUP BY trim(kategori_pelanggan)"
data = sqldf(sql)
 
print(data)

Query pada SQLite

1
2
3
4
5
6
7
8
import sqlite3
import pandas as pd
 
# Create and read your connection.
cnx = sqlite3.connect('latihan2.sqlite3')
df = pd.read_sql_query("SELECT * FROM penjualan", cnx)
 
print(df)

Mungkin kamu perlu membaca artikel “Ngoding Pandas dengan Skill SQL” untuk menambah wawasan tentang penggunaan SQL untuk menganalisis data.

Enjoy …