Last chance! 50% off DataCamp Premium
Sale ends in
Di dunia analisis data, Python populer karena fleksibilitas dan ekosistem pustakanya yang luas. Manipulasi data dan analisis berperan penting dalam menggali wawasan dan membuat keputusan berbasis informasi. Namun, seiring bertambahnya ukuran dan kompleksitas dataset, kebutuhan akan solusi berkinerja tinggi menjadi krusial.
Mengelola dataset besar secara efisien membutuhkan alat yang mampu memberikan komputasi cepat dan operasi yang dioptimalkan. Di sinilah Polars hadir. Polars adalah pustaka open-source yang kuat, dirancang khusus untuk manipulasi dan analisis data berkinerja tinggi di Python.
Polars adalah pustaka DataFrame yang sepenuhnya ditulis dalam Rust dan dibangun untuk memberdayakan pengembang Python dengan kerangka kerja yang skalabel dan efisien untuk menangani data, serta dianggap sebagai alternatif dari pustaka pandas yang sangat populer. Pustaka ini menyediakan beragam fungsionalitas yang memudahkan berbagai tugas manipulasi dan analisis data. Beberapa fitur dan keunggulan utama Polars meliputi:
Polars direkayasa dengan mengutamakan performa. Ia memanfaatkan pemrosesan paralel dan teknik optimasi memori, sehingga mampu memproses dataset besar jauh lebih cepat daripada metode tradisional.
Polars menyediakan seperangkat alat lengkap untuk manipulasi data, mencakup operasi penting seperti memfilter, mengurutkan, mengelompokkan, menggabungkan, dan mengagregasi data. Walau fungsionalitas Polars belum seluas pandas karena relatif baru, ia mencakup sekitar 80% operasi umum yang ada di Pandas.
Polars menggunakan sintaksis yang ringkas dan intuitif, sehingga mudah dipelajari dan digunakan. Sintaksisnya mengingatkan pada pustaka Python populer seperti pandas, memungkinkan pengguna beradaptasi cepat dengan Polars dan memanfaatkan pengetahuan yang sudah dimiliki.
Inti dari Polars adalah struktur DataFrame dan Series, yang memberikan abstraksi yang familier dan kuat untuk bekerja dengan data tabular. Operasi DataFrame di Polars dapat dirangkai, sehingga memungkinkan transformasi data yang efisien dan ringkas.
Polars mengadopsi evaluasi malas, yaitu menelaah dan mengoptimalkan kueri untuk meningkatkan performa dan meminimalkan konsumsi memori. Saat bekerja dengan Polars, pustaka ini menganalisis kueri Anda dan mencari peluang untuk mempercepat eksekusi atau mengurangi penggunaan memori. Sebaliknya, Pandas hanya mendukung evaluasi eager, di mana ekspresi langsung dievaluasi saat ditemukan.
pandas, pustaka yang banyak diadopsi, dikenal karena fleksibilitas dan kemudahan penggunaannya. Namun, saat menangani dataset besar, Pandas dapat mengalami hambatan performa karena bergantung pada eksekusi single-threaded. Seiring membesarnya ukuran dataset, waktu pemrosesan bisa menjadi sangat lama, sehingga membatasi produktivitas.
Polars dirancang khusus untuk menangani dataset besar secara efisien. Dengan strategi evaluasi malas dan kemampuan eksekusi paralelnya, Polars unggul dalam memproses data dalam jumlah besar dengan cepat. Dengan mendistribusikan komputasi ke beberapa inti CPU, Polars memanfaatkan paralelisme untuk memberikan peningkatan performa yang mengesankan. Lihat uji perbandingan kecepatan antara Pandas dan Polars oleh Yuki.

Untuk perbandingan lengkap Polars vs pandas, lihat artikel terpisah kami.
Polars dapat diinstal melalui pip, manajer paket Python. Buka antarmuka baris perintah Anda dan jalankan perintah berikut:
install polars
Polars menyediakan metode yang praktis untuk memuat data dari berbagai sumber, termasuk file CSV, file Parquet, dan Pandas DataFrame. Metode untuk membaca file CSV atau Parquet sama seperti di pustaka pandas.
# read csv file
import polars as pl
data = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')
# check the head
data.head()
Keluaran:

Tipe data adalah polars.DataFrame.
type(data)
>>> polars.dataframe.frame.DataFrame
Keluaran:

Polars menyediakan serangkaian fungsionalitas lengkap untuk manipulasi data, memungkinkan Anda memilih, memfilter, mengurutkan, mentransformasi, dan membersihkan data dengan mudah. Mari jelajahi beberapa tugas manipulasi data umum dan cara menyelesaikannya menggunakan Polars:
Untuk memilih kolom tertentu dari sebuah DataFrame, Anda dapat menggunakan metode select(). Berikut contohnya:
import polars as pl
# Load diamond data from a CSV file
df = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')
# Select specific columns: carat, cut, and price
selected_df = df.select(['Carat Weight', 'Cut', 'Price'])
# show selected_df head
selected_df.head()
Keluaran:

Memfilter baris berdasarkan kondisi tertentu dapat dilakukan dengan metode filter(). Misalnya, untuk memfilter baris dengan carat lebih besar dari 1.0, Anda dapat melakukan hal berikut:
import polars as pl
# Load diamond data from a CSV file
df = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')
# filter the df with condition
filtered_df = df.filter(pl.col('Carat Weight') > 2.0)
# show filtered_df head
filtered_df.head()
Keluaran:

Polars menyediakan metode sort() untuk mengurutkan DataFrame berdasarkan satu atau beberapa kolom. Berikut contohnya:
import polars as pl
# Load diamond data from a CSV file
df = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')
# sort the df by price
sorted_df = df.sort(by='Price')
# show sorted_df head
sorted_df.head()
Keluaran:

Polars menyediakan metode yang praktis untuk menangani nilai hilang. Metode drop_nulls() memungkinkan Anda menghapus baris yang mengandung nilai hilang apa pun:
import polars as pl
# Load diamond data from a CSV file
df = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')
# drop missing values
cleaned_df = df.drop_nulls()
# show cleaned_df head
cleaned_df.head()
Keluaran:

Sebagai alternatif, Anda dapat menggunakan metode fill_nulls() untuk mengganti nilai hilang dengan nilai default tertentu atau metode pengisian.
Untuk mengelompokkan data berdasarkan kolom tertentu, Anda dapat menggunakan metode groupby(). Berikut contoh yang mengelompokkan data berdasarkan kolom Cut dan menghitung rata-rata Price untuk setiap grup:
import polars as pl
# Load diamond data from a CSV file
df = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')
# group by cut and calc mean of price
grouped_df = df.groupby(by='Cut').agg(pl.col('Price').mean())
# show grouped_df head
grouped_df.head()
Keluaran:

Pada keluaran di atas, Anda dapat melihat harga rata-rata berlian menurut dimensi Cut.
Polars menyediakan opsi fleksibel untuk menggabungkan dan mengombinasikan DataFrame, memungkinkan Anda menggabungkan dan mengonkatkan data dari berbagai sumber. Untuk melakukan operasi join, Anda dapat menggunakan metode join(). Berikut contoh yang menunjukkan inner join antara dua DataFrame berdasarkan kolom kunci yang sama:
import polars as pl
# Create the first DataFrame
df1 = pl.DataFrame({
'id': [1, 2, 3, 4],
'name': ['Alice', 'Bob', 'Charlie', 'David']
})
# Create the second DataFrame
df2 = pl.DataFrame({
'id': [2, 3, 5],
'age': [25, 30, 35]
})
# Perform an inner join on the 'id' column
joined_df = df1.join(df2, on='id')
# Display the joined DataFrame
joined_df
Keluaran:

Pada contoh ini, kita membuat dua DataFrame (df1 dan df2) menggunakan konstruktor pl.DataFrame. DataFrame pertama df1 berisi kolom id dan name, dan DataFrame kedua df2 berisi kolom id dan age. Kita kemudian melakukan inner join pada kolom id menggunakan metode join(), dengan menentukan kolom id sebagai kunci join.
Polars menawarkan integrasi mulus dengan pustaka Python populer lainnya, memungkinkan analis data memanfaatkan beragam alat dan fungsionalitas. Mari jelajahi dua aspek kunci integrasi: bekerja dengan pustaka lain dan interoperabilitas dengan Pandas.
Polars terintegrasi dengan nyaman dengan pustaka seperti NumPy dan PyArrow, memungkinkan pengguna mengombinasikan kekuatan berbagai alat dalam alur kerja analisis data mereka. Dengan integrasi NumPy, Polars dengan mudah mengonversi antara Polars DataFrame dan array NumPy, memanfaatkan kemampuan komputasi ilmiah NumPy yang kuat. Integrasi ini memastikan transisi data yang lancar dan memungkinkan analis menerapkan fungsi NumPy secara langsung pada data Polars.
Demikian pula, dengan memanfaatkan PyArrow, Polars mengoptimalkan transfer data antara Polars dan sistem berbasis Arrow. Integrasi ini memungkinkan bekerja mulus dengan data yang disimpan dalam format Arrow dan memaksimalkan kemampuan manipulasi data berkinerja tinggi milik Polars.
Polars menyediakan konversi yang mulus dari Polars DataFrame ke Pandas DataFrame. Berikut contoh yang mengilustrasikan konversi dari Polars ke pandas.
import polars as pl
import pandas as pd
# Create a Polars DataFrame
df_polars = pl.DataFrame({
'column_A': [1, 2, 3],
'column_B': ['apple', 'banana', 'orange']
})
# Convert Polars DataFrame to Pandas DataFrame
df_pandas = df_polars.to_pandas()
# Display the Pandas DataFrame
df_pandas
Keluaran:

Polars adalah pustaka yang kuat untuk manipulasi dan analisis data berkinerja tinggi di Python. Kecepatan dan optimasi performanya menjadikannya pilihan ideal untuk menangani dataset besar secara efisien.
Dengan sintaksis yang ekspresif dan struktur DataFrame, Polars menawarkan antarmuka yang familier dan intuitif untuk tugas manipulasi data. Selain itu, Polars terintegrasi mulus dengan pustaka Python lain seperti NumPy dan PyArrow, memperluas kemampuannya dan memungkinkan pengguna memanfaatkan ekosistem alat yang beragam.
Kemampuan untuk mengonversi Polars DataFrame ke pandas DataFrame memastikan interoperabilitas dan memudahkan integrasi Polars ke dalam alur kerja yang sudah ada. Baik Anda bekerja dengan tipe data yang kompleks, menangani dataset besar, maupun mencari peningkatan performa, Polars menyediakan seperangkat alat komprehensif untuk membuka potensi penuh upaya analisis data Anda.
Kursus Manipulasi Data Python Teratas
Kursus
Kursus
blogs
David Woods
13 mnt
blogs
Hugo Bowne-Anderson
13 mnt
blogs
Dario Radečić
15 mnt

blogs
Javier Canales Luna
14 mnt