Tag Archives: pandas

Langkah Awal Menggunakan Python Pandas DataFrame untuk Pengguna SQL

Kenapa dan untuk siapa ?

Pandas itu penting banget buat siapa pun yang mau mengelola data dengan cepat dan efisien di Python. Buat banyak orang yang biasa kerja dengan data, seperti data engineer atau data analyst, Pandas jadi solusi serbaguna yang bisa menangani banyak hal—mulai dari seleksi data, menggabungkan, sampai visualisasi, semua bisa dilakukan dengan sekali kode. Keunggulan lain, Pandas bisa baca data dari banyak format seperti file CSV, Excel, bahkan bisa langsung dari database. Jadi, kalau biasanya kita melakukan pekerjaan ini di SQL, sekarang bisa disederhanakan di Pandas.

Blog ini ditujukan untuk yang udah paham dasar-dasar SQL dan tertarik memulai analisis data pakai Pandas. Dengan dasar SQL, pasti lebih gampang paham cara kerja Pandas, karena konsepnya cukup mirip, sama-sama bekerja dengan data berbentuk tabel. Pandas malah lebih fleksibel dan sering kali lebih cepat buat hal-hal kompleks yang mungkin di SQL harus pakai query yang ribet. Intinya, kalau sudah biasa pakai SQL, belajar Pandas bakal lebih mulus dan bisa bikin banyak hal jadi lebih praktis.

Di blog ini, kita bakal bahas langkah-langkah sederhana buat mulai pakai Pandas, dengan perbandingan langsung sama SQL. Dari mulai baca data, pilih kolom, sampai menggabungkan tabel, semuanya dijelasin buat bikin pengalaman belajar Pandas ini jadi lancar. Jadi, buat siapa pun yang punya basic SQL dan mau explore cara baru buat kelola data, blog ini pas banget buat memulai.

Kerangka bekerja

Dalam Pandas, setiap DataFrame yang dibuat bisa dibayangkan seperti sebuah tabel di SQL, lengkap dengan baris dan kolom. Struktur DataFrame ini memudahkan kita dalam memvisualisasikan data, terutama bagi yang sudah terbiasa bekerja dengan tabel di SQL. Data dalam setiap kolom bisa terdiri dari berbagai tipe, seperti angka, teks, atau tanggal, yang membuat DataFrame menjadi format yang fleksibel untuk berbagai jenis analisis.

DataFrame tidak hanya tentang struktur, tetapi juga tentang kemampuannya dalam pemrosesan data dalam skala besar. Sama seperti pemrosesan batch dalam SQL, Pandas memungkinkan kita melakukan operasi pada banyak baris data sekaligus. Kita bisa melakukan pemilihan kolom tertentu, memfilter baris berdasarkan kondisi, hingga melakukan agregasi—semuanya dalam sekali pemanggilan kode. Hal ini membuat Pandas menjadi sangat efisien untuk mengelola data dalam jumlah besar tanpa harus melakukan manipulasi data per baris.

Dengan DataFrame, kita bisa menerapkan berbagai macam transformasi dan pembersihan data. Misalnya, mengisi nilai kosong, mengganti tipe data, atau menghitung kolom baru berdasarkan data yang ada. Semua proses ini bisa dilakukan dalam satu kerangka kerja, yang sangat membantu ketika bekerja dengan data secara batch. Pandas menyediakan pendekatan yang terstruktur, tapi tetap fleksibel, untuk setiap tahap pengelolaan data—dari membaca, membersihkan, hingga menyimpan data kembali dalam format yang diinginkan.

Membuat dataframe

1. Membuat DataFrame dari SQL Database

Jika kita sudah memiliki data di database SQL, Pandas memungkinkan kita untuk mengimpor data langsung dari database tersebut. Pertama, kita perlu koneksi ke database, lalu menjalankan query SQL menggunakan Pandas untuk mengimpor data ke dalam DataFrame.

import pandas as pd
import sqlite3

conn = sqlite3.connect('nama_database.db')  # ganti dengan nama database Anda
query = "SELECT * FROM nama_tabel"  # tuliskan query SQL sesuai kebutuhan
df = pd.read_sql_query(query, conn)
conn.close()

Dengan cara ini, data dari tabel SQL langsung disimpan dalam DataFrame df yang bisa langsung kita olah.

2.Membuat DataFrame dari File CSV

File CSV (Comma-Separated Values) adalah format umum untuk data tabular. Pandas menyediakan fungsi read_csv untuk memuat data dari file CSV ke dalam DataFrame.

df = pd.read_csv('data.csv')  # ganti dengan path file CSV

Dengan satu baris kode ini, Pandas membaca data CSV dan mengonversinya menjadi DataFrame, lengkap dengan kolom dan baris yang siap diolah.

3.Membuat DataFrame dari File Excel

Untuk data dalam format Excel, Pandas juga menyediakan cara mudah mengimpornya. Pastikan Anda sudah menginstal pustaka openpyxl atau xlrd (tergantung versi Excel Anda).

df = pd.read_excel('data.xlsx', sheet_name='Sheet1')  # ganti dengan path file Excel dan nama sheet jika perlu

Data dari sheet Excel yang dipilih akan dimuat ke dalam DataFrame df dengan struktur tabel yang sama.

4.Membuat DataFrame dari List dan Tuple

Jika kita hanya memiliki data sederhana dalam bentuk list atau tuple, kita bisa mengonversinya menjadi DataFrame secara manual. Misalnya, kita memiliki list dengan beberapa data dan ingin membuat DataFrame darinya.

data = [
    ('Ali', 25, 'Engineer'),
    ('Budi', 30, 'Data Scientist'),
    ('Citra', 28, 'Analyst')
]
df = pd.DataFrame(data, columns=['Nama', 'Usia', 'Profesi'])

Dalam contoh ini, kita membuat DataFrame dari list of tuples dengan menentukan kolomnya (Nama, Usia, dan Profesi).

5.Membuat DataFrame dari Dictionary

Pandas juga mendukung pembuatan DataFrame dari dictionary. Dictionary di mana setiap kunci adalah nama kolom, dan nilai-nilainya adalah data kolom tersebut.

data = {
    'Nama': ['Ali', 'Budi', 'Citra'],
    'Usia': [25, 30, 28],
    'Profesi': ['Engineer', 'Data Scientist', 'Analyst']
}
df = pd.DataFrame(data)

Dengan cara ini, kita mendapatkan DataFrame df dengan tiga kolom (Nama, Usia, dan Profesi) langsung dari dictionary.

Projection

Projection di SQL adalah proses memilih satu atau beberapa kolom tertentu dari tabel, tanpa harus mengambil seluruh data. Projection berguna untuk menyaring kolom agar hanya mengambil yang relevan saja.

SELECT nama, usia FROM karyawan;

Di Pandas, projection dilakukan dengan memilih kolom tertentu dari DataFrame menggunakan daftar kolom. Cara ini serupa dengan SQL karena kita hanya mengambil kolom yang kita inginkan dan mengabaikan sisanya.

import pandas as pd

# Misal kita punya DataFrame `df` dengan data karyawan
df = pd.DataFrame({
    'nama': ['Ali', 'Budi', 'Citra'],
    'usia': [25, 30, 28],
    'profesi': ['Engineer', 'Data Scientist', 'Analyst']
})

# Memilih hanya kolom 'nama' dan 'usia'
df_projection = df[['nama', 'usia']]

Filtering

Di SQL, kita bisa melakukan filtering dengan beberapa kondisi menggunakan operator AND dan OR, serta IN dan NOT IN. Kita juga bisa menggunakan tanda kurung untuk mengelompokkan kondisi agar urutan evaluasi kondisi lebih jelas.

SELECT * 
FROM karyawan 
WHERE (usia > 25 AND profesi = 'Data Scientist') 
   OR (usia < 30 AND nama IN ('Ali', 'Citra'));

Query ini akan mengembalikan baris yang memenuhi kondisi:

  1. Usia lebih dari 25 dan profesi adalah ‘Data Scientist’, atau
  2. Usia kurang dari 30 dan nama karyawan ada di dalam daftar ('Ali', 'Citra').

Di Pandas, kita bisa melakukan filtering kompleks dengan menggunakan operator & untuk AND, | untuk OR, serta isin() untuk IN dan ~ untuk NOT IN. Jangan lupa, setiap kondisi dalam filter kompleks perlu dikelilingi tanda kurung () untuk memastikan urutan evaluasi yang benar.

import pandas as pd

# DataFrame contoh
df = pd.DataFrame({
    'nama': ['Ali', 'Budi', 'Citra', 'Dina'],
    'usia': [25, 30, 28, 22],
    'profesi': ['Engineer', 'Data Scientist', 'Analyst', 'Manager']
})

# Filter: (usia > 25 dan profesi 'Data Scientist') atau (usia < 30 dan nama dalam ['Ali', 'Citra'])
df_filtered = df[((df['usia'] > 25) & (df['profesi'] == 'Data Scientist')) |
                 ((df['usia'] < 30) & (df['nama'].isin(['Ali', 'Citra'])))]

Kode di atas menghasilkan DataFrame df_filtered yang hanya berisi baris yang memenuhi kondisi yang sama dengan query SQL.

Sorting

Di SQL, sorting dilakukan menggunakan klausa ORDER BY, di mana kita bisa menentukan kolom mana yang akan digunakan untuk mengurutkan data, serta arah pengurutan (ascending atau descending).

SELECT * FROM karyawan ORDER BY usia DESC, nama ASC;

Query ini akan mengurutkan data di tabel karyawan berdasarkan kolom usia secara descending (dari yang terbesar ke terkecil), dan jika ada kesamaan pada usia, akan diurutkan lagi berdasarkan nama secara ascending (dari A ke Z).

Di Pandas, sorting dilakukan menggunakan metode sort_values(). Kita bisa menentukan kolom mana yang akan digunakan sebagai acuan pengurutan, serta arah pengurutan dengan argumen ascending.

import pandas as pd

# DataFrame contoh
df = pd.DataFrame({
    'nama': ['Ali', 'Budi', 'Citra', 'Dina'],
    'usia': [25, 30, 28, 22],
    'profesi': ['Engineer', 'Data Scientist', 'Analyst', 'Manager']
})

# Mengurutkan berdasarkan kolom 'usia' descending, dan 'nama' ascending
df_sorted = df.sort_values(by=['usia', 'nama'], ascending=[False, True])

Kode di atas akan menghasilkan DataFrame df_sorted, di mana data diurutkan berdasarkan kolom usia secara descending dan nama secara ascending, mirip dengan hasil query SQL di atas.

Grouping

Di SQL, kita menggunakan GROUP BY untuk mengelompokkan data, dan HAVING untuk memfilter hasil dari pengelompokan tersebut. HAVING memungkinkan kita menyaring berdasarkan hasil agregat (misalnya, COUNT, SUM, AVG).

SELECT profesi, AVG(usia) AS rata_usia
FROM karyawan
GROUP BY profesi
HAVING AVG(usia) > 25;

Query ini mengelompokkan data pada tabel karyawan berdasarkan kolom profesi, lalu menghitung rata-rata usia untuk setiap grup. Hanya grup di mana rata-rata usia lebih besar dari 25 yang akan ditampilkan

Di Pandas, kita bisa melakukan grouping menggunakan groupby() dan kemudian menerapkan agregasi dengan metode seperti .mean(), .sum(), dan sebagainya. Setelah pengelompokan, kita bisa menggunakan metode chaining atau filtering langsung pada DataFrame hasil agregasi.

import pandas as pd

# DataFrame contoh
df = pd.DataFrame({
    'nama': ['Ali', 'Budi', 'Citra', 'Dina'],
    'usia': [25, 30, 28, 22],
    'profesi': ['Engineer', 'Data Scientist', 'Analyst', 'Manager']
})

# Mengelompokkan berdasarkan 'profesi' dan menghitung rata-rata 'usia'
# Memfilter hasil agar hanya rata-rata usia > 25 yang ditampilkan
df_grouped = df.groupby('profesi')['usia'].mean().reset_index()
df_filtered = df_grouped[df_grouped['usia'] > 25]

Dalam contoh ini, df_grouped adalah DataFrame yang berisi rata-rata usia untuk setiap profesi, dan df_filtered adalah hasil penyaringan di mana hanya grup dengan rata-rata usia lebih besar dari 25 yang disertakan.

Di SQL, HAVING digunakan untuk menyaring hasil agregat, sedangkan di Pandas, kita bisa melakukan filtering setelah agregasi dengan cara chaining atau menyaring pada DataFrame hasil grouping.

INNER Join

Di SQL, kita menggunakan klausa JOIN ... ON untuk melakukan inner join antara dua tabel. ON menentukan kolom yang menjadi acuan untuk penggabungan.

SELECT karyawan.nama, karyawan.usia, departemen.nama_departemen
FROM karyawan
INNER JOIN departemen ON karyawan.departemen_id = departemen.id;

Query ini menggabungkan tabel karyawan dan departemen berdasarkan kolom departemen_id di karyawan dan id di departemen. Hanya baris yang memiliki nilai yang cocok di kedua tabel yang akan disertakan dalam hasil.

Di Pandas, kita menggunakan fungsi merge() untuk melakukan inner join antara dua DataFrame. Parameter on menentukan kolom yang digunakan untuk join, dan how='inner' menentukan bahwa jenis join yang dilakukan adalah inner join.

import pandas as pd

# DataFrame contoh
df_karyawan = pd.DataFrame({
    'nama': ['Ali', 'Budi', 'Citra', 'Dina'],
    'usia': [25, 30, 28, 22],
    'departemen_id': [1, 2, 1, 3]
})

df_departemen = pd.DataFrame({
    'id': [1, 2, 3],
    'nama_departemen': ['Engineering', 'Data Science', 'Management']
})

# Inner join berdasarkan kolom 'departemen_id' dan 'id'
df_joined = pd.merge(df_karyawan, df_departemen, left_on='departemen_id', right_on='id', how='inner')

Kode di atas menggabungkan DataFrame df_karyawan dan df_departemen dengan inner join menggunakan departemen_id di df_karyawan dan id di df_departemen. Hasil df_joined hanya akan berisi baris di mana departemen_id dan id memiliki nilai yang sama.

Kedua cara ini menghasilkan output yang sama, yaitu menggabungkan dua tabel atau DataFrame berdasarkan kolom yang memiliki nilai sama, hanya dengan sedikit perbedaan sintaksis.

LEFT OUTER Join

Left join mengembalikan semua baris dari tabel kiri dan hanya baris yang cocok dari tabel kanan. Jika tidak ada kecocokan, kolom dari tabel kanan akan diisi NULL.

SELECT karyawan.nama, karyawan.usia, departemen.nama_departemen
FROM karyawan
LEFT JOIN departemen ON karyawan.departemen_id = departemen.id;

Query ini menggabungkan tabel karyawan dengan tabel departemen menggunakan left join, menampilkan semua data dari karyawan dan hanya data yang cocok dari departemen. Jika tidak ada kecocokan, kolom nama_departemen akan bernilai NULL.

Di Pandas, left join dilakukan dengan merge() dan parameter how='left'. Ini menggabungkan dua DataFrame, mempertahankan semua baris dari DataFrame kiri.

import pandas as pd

# DataFrame contoh
df_karyawan = pd.DataFrame({
    'nama': ['Ali', 'Budi', 'Citra', 'Dina'],
    'usia': [25, 30, 28, 22],
    'departemen_id': [1, 2, 1, 3]
})

df_departemen = pd.DataFrame({
    'id': [1, 2, 3],
    'nama_departemen': ['Engineering', 'Data Science', 'Management']
})

# Left join berdasarkan kolom 'departemen_id' dan 'id'
df_left_join = pd.merge(df_karyawan, df_departemen, left_on='departemen_id', right_on='id', how='left')

Kode ini menggabungkan df_karyawan dengan df_departemen menggunakan left join, mempertahankan semua baris dari df_karyawan dan hanya menambahkan data yang cocok dari df_departemen.

CROSS Join

Di SQL, cross join menggabungkan setiap baris di tabel pertama dengan setiap baris di tabel kedua tanpa syarat pencocokan tertentu. Hasilnya adalah semua kombinasi baris dari kedua tabel.

SELECT karyawan.nama, karyawan.usia, departemen.nama_departemen
FROM karyawan
CROSS JOIN departemen;

Query ini akan menghasilkan semua kemungkinan pasangan baris dari tabel karyawan dan tabel departemen. Jika karyawan memiliki 4 baris dan departemen memiliki 3 baris, hasilnya akan memiliki 4 * 3 = 12 baris.

Di Pandas, cross join dapat dilakukan dengan mengatur merge() untuk menghasilkan semua kombinasi dari dua DataFrame. Salah satu cara termudah adalah dengan menambahkan kolom tambahan sebagai kunci yang sama, melakukan join di atasnya, lalu menghapus kolom tambahan ini.

import pandas as pd

# DataFrame contoh
df_karyawan = pd.DataFrame({
    'nama': ['Ali', 'Budi', 'Citra', 'Dina'],
    'usia': [25, 30, 28, 22]
})

df_departemen = pd.DataFrame({
    'nama_departemen': ['Engineering', 'Data Science', 'Management']
})

# Menambahkan kolom kunci sementara
df_karyawan['key'] = 1
df_departemen['key'] = 1

# Cross join
df_cross_join = pd.merge(df_karyawan, df_departemen, on='key').drop('key', axis=1)

Dalam kode di atas, key adalah kolom sementara yang sama pada kedua DataFrame untuk memungkinkan merge() menghasilkan produk Cartesian. Setelah join, kita menghapus kolom key untuk mendapatkan hasil cross join yang bersih.

INSERT Data

Di SQL, INSERT INTO digunakan untuk menambahkan baris baru ke dalam tabel.

INSERT INTO karyawan (nama, usia, departemen_id)
VALUES ('Eko', 27, 2);

Query ini akan menambahkan satu baris baru dengan nama Eko, usia 27, dan departemen_id 2 ke tabel karyawan. Jika Anda ingin menambahkan beberapa baris sekaligus, SQL juga mendukung multiple insert.

INSERT INTO karyawan (nama, usia, departemen_id)
VALUES 
    ('Farah', 32, 1),
    ('Gilang', 29, 3),
    ('Hana', 24, 2);

Di Pandas, menambahkan data ke DataFrame dapat dilakukan dengan metode append() atau pd.concat().

Menambahkan Satu Baris dengan append()

import pandas as pd

# DataFrame contoh
df_karyawan = pd.DataFrame({
    'nama': ['Ali', 'Budi', 'Citra'],
    'usia': [25, 30, 28],
    'departemen_id': [1, 2, 1]
})

# Menambahkan satu baris baru
df_karyawan = df_karyawan.append({'nama': 'Eko', 'usia': 27, 'departemen_id': 2}, ignore_index=True)

Kode di atas akan menambahkan satu baris baru dengan nama Eko, usia 27, dan departemen_id 2 ke DataFrame df_karyawan.

Menambahkan Beberapa Baris dengan pd.concat()

Jika ingin menambahkan beberapa baris sekaligus, kita bisa membuat DataFrame baru berisi data tambahan, lalu menggabungkannya menggunakan pd.concat().

# Data baru untuk ditambahkan
df_new = pd.DataFrame({
    'nama': ['Farah', 'Gilang', 'Hana'],
    'usia': [32, 29, 24],
    'departemen_id': [1, 3, 2]
})

# Menambahkan beberapa baris ke DataFrame utama
df_karyawan = pd.concat([df_karyawan, df_new], ignore_index=True)

UPDATE Data

Di SQL, UPDATE digunakan untuk mengubah data yang ada di tabel, dengan klausa WHERE untuk menetapkan baris yang akan diperbarui.

UPDATE karyawan
SET usia = 26
WHERE nama = 'Ali';

Query ini akan memperbarui kolom usia menjadi 26 pada baris di mana nama adalah 'Ali'.

Kita juga bisa mengubah beberapa kolom sekaligus:

UPDATE karyawan
SET usia = 31, departemen_id = 2
WHERE nama = 'Budi';

Ini akan mengubah usia menjadi 31 dan departemen_id menjadi 2 untuk karyawan bernama Budi.

Di Pandas, kita dapat memperbarui data di DataFrame dengan menggunakan seleksi baris dan kolom menggunakan kondisi loc[].

Update Satu Kolom Berdasarkan Kondisi

import pandas as pd

# DataFrame contoh
df_karyawan = pd.DataFrame({
    'nama': ['Ali', 'Budi', 'Citra', 'Dina'],
    'usia': [25, 30, 28, 22],
    'departemen_id': [1, 2, 1, 3]
})

# Mengupdate usia Ali menjadi 26
df_karyawan.loc[df_karyawan['nama'] == 'Ali', 'usia'] = 26

Kode ini memperbarui kolom usia menjadi 26 pada baris di mana nama adalah 'Ali'.

Update Beberapa Kolom Berdasarkan Kondisi

Kita juga bisa mengubah beberapa kolom sekaligus:

# Mengupdate usia dan departemen_id untuk Budi
df_karyawan.loc[df_karyawan['nama'] == 'Budi', ['usia', 'departemen_id']] = [31, 2]

Kode ini memperbarui kolom usia menjadi 31 dan departemen_id menjadi 2 untuk Budi.

Pada SQL, kita menggunakan UPDATE ... SET ... WHERE untuk memperbarui data, sementara di Pandas, kita menggunakan loc[] untuk memilih dan memperbarui baris berdasarkan kondisi tertentu.

DELETE Data

Di SQL, DELETE digunakan untuk menghapus baris dari tabel berdasarkan kondisi tertentu. Klausa WHERE digunakan untuk menentukan baris yang akan dihapus.

DELETE FROM karyawan
WHERE nama = 'Ali';

Query ini akan menghapus baris di mana nama adalah 'Ali'. Jika WHERE dihilangkan, semua baris dalam tabel akan terhapus (perlu berhati-hati dengan penggunaan ini).

DELETE FROM karyawan;

Di Pandas, menghapus baris dapat dilakukan dengan menggunakan metode drop() atau dengan menggunakan filter kondisi.

Menghapus Baris Berdasarkan Kondisi.

import pandas as pd

# DataFrame contoh
df_karyawan = pd.DataFrame({
    'nama': ['Ali', 'Budi', 'Citra', 'Dina'],
    'usia': [25, 30, 28, 22],
    'departemen_id': [1, 2, 1, 3]
})

# Menghapus baris di mana nama adalah 'Ali'
df_karyawan = df_karyawan[df_karyawan['nama'] != 'Ali']

Kode ini akan menghapus semua baris di mana nama adalah 'Ali' dengan menyaring baris yang tidak cocok dengan kondisi.

Menghapus Baris dengan drop() Berdasarkan Index

Jika kita ingin menghapus baris berdasarkan indeksnya, kita bisa menggunakan drop().

# Menghapus baris dengan indeks 0
df_karyawan = df_karyawan.drop(0)

Ini akan menghapus baris pertama dari DataFrame (index 0), tanpa mempertimbangkan nilai kolom tertentu.

Pada SQL, DELETE ... WHERE digunakan untuk menghapus data, sementara di Pandas, kita dapat menghapus baris dengan kondisi menggunakan filter atau drop() jika berdasarkan indeks.

Menyimpan dataframe

1. Menyimpan ke CSV

CSV adalah format teks sederhana yang populer untuk menyimpan data berbentuk tabel.

import pandas as pd

# DataFrame contoh
df = pd.DataFrame({
    'nama': ['Ali', 'Budi', 'Citra', 'Dina'],
    'usia': [25, 30, 28, 22],
    'departemen_id': [1, 2, 1, 3]
})

# Menyimpan DataFrame ke file CSV
df.to_csv('data_karyawan.csv', index=False)

Kode di atas akan menyimpan DataFrame df ke dalam file data_karyawan.csv tanpa menyimpan indeks baris.

2. Menyimpan ke Excel

Pandas mendukung penyimpanan DataFrame ke format Excel, baik format .xls (Excel lama) maupun .xlsx (Excel baru).

# Menyimpan DataFrame ke file Excel
df.to_excel('data_karyawan.xlsx', index=False)

Ini akan menyimpan DataFrame ke dalam file data_karyawan.xlsx tanpa indeks baris.

3. Menyimpan ke SQL

DataFrame bisa disimpan ke database SQL menggunakan fungsi to_sql(). Untuk ini, Anda perlu koneksi database (misalnya SQLite atau MySQL).

from sqlalchemy import create_engine

# Membuat koneksi ke database SQLite (atau bisa diganti dengan MySQL)
engine = create_engine('sqlite:///karyawan.db')

# Menyimpan DataFrame ke tabel SQL
df.to_sql('karyawan', con=engine, index=False, if_exists='replace')

Ini akan menyimpan DataFrame ke tabel karyawan di dalam database SQLite karyawan.db. Parameter if_exists='replace' akan menimpa tabel jika sudah ada.

4. Menyimpan ke Parquet

Parquet adalah format kolom yang efisien dan populer di ekosistem big data. Format ini sangat cocok untuk penyimpanan besar karena kompresinya yang tinggi.

# Menyimpan DataFrame ke file Parquet
df.to_parquet('data_karyawan.parquet')

Kode ini akan menyimpan DataFrame ke file data_karyawan.parquet dengan kompresi bawaan, yang cocok untuk analisis big data.

5. Menyimpan ke Format JSON

JSON sering digunakan untuk pertukaran data antar aplikasi karena kompatibel dengan banyak sistem.

# Menyimpan DataFrame ke file JSON
df.to_json('data_karyawan.json', orient='records')

Ini akan menyimpan DataFrame sebagai array JSON dengan orient='records' untuk menyimpan data dalam bentuk array objek JSON.

6. Menyimpan ke HDF5

HDF5 adalah format biner yang efisien untuk menyimpan data besar dan kompleks dalam format yang dapat diakses cepat.

# Menyimpan DataFrame ke file HDF5
df.to_hdf('data_karyawan.h5', key='karyawan', mode='w')

Kode ini akan menyimpan DataFrame dalam file HDF5 data_karyawan.h5 di bawah key karyawan.

semoga membantu kalian para sql ers yang mau gak mau harus masuk ke pandas 😀

happy coding 😀