Polars'a Giriş: Python'un Büyük Ölçekli Veri Analizi Aracı
Yüksek performanslı veri işleme ve analiz için güçlü bir Python kütüphanesi olan Polars'ı keşfedin. Özelliklerini, pandas'a göre avantajlarını ve veri analizi süreçlerinizi nasıl dönüştürebileceğini öğrenin.
Veri analizi dünyasında, Python çok yönlülüğü ve zengin kütüphane ekosistemi nedeniyle popüler bir dildir. Veri işleme ve analiz, içgörü elde etmek ve bilinçli kararlar almak için kritik bir rol oynar. Ancak, veri kümeleri boyut ve karmaşıklık açısından büyümeye devam ettikçe, yüksek performanslı çözümlere duyulan ihtiyaç da kaçınılmaz hale gelir.
Büyük veri kümelerini verimli bir şekilde işlemek, hızlı hesaplamalar ve optimize edilmiş işlemler sunabilen araçlar gerektirir. İşte bu noktada Polars devreye girer. Polars, özellikle Python'da yüksek performanslı veri işleme ve analiz için tasarlanmış güçlü bir açık kaynak kütüphanesidir.
Polars Özellikleri
Polars, tamamen Rust ile yazılmış bir DataFrame kütüphanesidir ve Python geliştiricilerine verileri işlemek için ölçeklenebilir ve verimli bir çatı sunmak üzere inşa edilmiştir; oldukça popüler olan pandas kütüphanesine bir alternatif olarak görülür. Çok çeşitli veri işleme ve analiz görevlerini kolaylaştıran işlevsellikler sağlar. Polars kullanmanın bazı temel özellikleri ve avantajları şunlardır:
1. Hız ve performans
Polars, performans odaklı olarak geliştirilmiştir. Paralel işlemeyi ve bellek optimizasyon tekniklerini kullanır; bu sayede büyük veri kümelerini geleneksel yöntemlere kıyasla belirgin ölçüde daha hızlı işler.
2. Veri işleme yetenekleri
Polars, filtreleme, sıralama, gruplama, birleştirme ve toplulaştırma gibi temel işlemleri kapsayan kapsamlı bir veri işleme araç seti sunar. Polars, görece yeni olmasından ötürü pandas kadar kapsamlı bir işlevselliğe sahip olmayabilir; ancak pandas'taki yaygın işlemlerin yaklaşık %80'ini karşılar.
3. İfade gücü yüksek söz dizimi
Polars, öğrenmesi ve kullanması kolay, özlü ve sezgisel bir söz dizimi kullanır. Söz dizimi, pandas gibi popüler Python kütüphanelerini andırır; bu da kullanıcıların Polars'a hızla uyum sağlamasını ve mevcut bilgilerini kullanmasını mümkün kılar.
4. DataFrame ve Series yapıları
Polars'ın merkezinde, tablo verileriyle çalışmak için tanıdık ve güçlü bir soyutlama sunan DataFrame ve Series yapıları bulunur. Polars'taki DataFrame işlemleri zincirlenebilir; bu da verimli ve öz bir veri dönüşümü sağlar.
5. Polars tembel değerlendirmeyi destekler
Polars, tembel değerlendirme (lazy evaluation) uygular; bu, sorguların incelenip optimize edilerek performansın artırılması ve bellek tüketiminin azaltılması anlamına gelir. Polars ile çalışırken, kütüphane sorgularınızı analiz eder ve yürütmeyi hızlandırma ya da bellek kullanımını azaltma fırsatlarını arar. Buna karşılık, Pandas yalnızca hevesli değerlendirmeyi (eager evaluation) destekler; ifadelerle karşılaşılır karşılaşılmaz değerlendirilir.
Pandas varken neden Polars'ı seçelim?
pandas, esnekliği ve kullanım kolaylığıyla bilinen, yaygın olarak benimsenmiş bir kütüphanedir. Ancak büyük veri kümeleriyle çalışırken, tek iş parçacıklı yürütmeye dayanması nedeniyle Pandas performans darboğazları yaşayabilir. Veri kümesinin boyutu arttıkça, işlem süreleri aşırı uzayabilir ve üretkenliği kısıtlayabilir.
Polars, büyük veri kümelerini verimli şekilde ele almak üzere özel olarak tasarlanmıştır. Tembel değerlendirme stratejisi ve paralel yürütme yetenekleri sayesinde Polars, büyük miktarda veriyi hızla işler. Hesaplamaları birden çok CPU çekirdeğine dağıtarak paralelliği kullanır ve etkileyici performans kazanımları sağlar. Yuki tarafından yapılan Pandas ve Polars hız karşılaştırma testine bakın.
Polars, CSV dosyaları, Parquet dosyaları ve Pandas DataFrame'leri dahil olmak üzere çeşitli kaynaklardan veri yüklemek için kullanışlı yöntemler sunar. CSV veya Parquet dosyasını okuma yöntemleri pandas kütüphanesiyle aynıdır.
# read csv fileimport polars as pl
data = pl.read_csv('https://raw.githubusercontent.com/pycaret/pycaret/master/datasets/diamond.csv')# check the head
data.head()Altyapı:
Polars, veriyi seçme, filtreleme, sıralama, dönüştürme ve temizleme gibi işlemler için kapsamlı bir işlev seti sunar. Şimdi bazı yaygın veri işleme görevlerini ve bunların Polars ile nasıl yapılacağını inceleyelim:
1. Veriyi seçme ve filtreleme
Bir DataFrame'den belirli sütunları seçmek için select() yöntemini kullanabilirsiniz. Örnek:
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()Altyapı:
Çıktı:
Belirli koşullara göre satırları filtrelemek için filter() yöntemini kullanabilirsiniz. Örneğin, karat değeri 1.0'dan büyük olan satırları filtrelemek için şunu yapabilirsiniz:
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()Altyapı:
Çıktı:
2. Veriyi sıralama ve düzenleme
Polars, bir veya birden fazla sütuna göre bir DataFrame'i sıralamak için sort() yöntemini sunar. Örnek:
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()Altyapı:
Çıktı:
3. Eksik değerleri ele alma
Polars, eksik değerleri ele almak için kullanışlı yöntemler sağlar. drop_nulls() yöntemi, herhangi bir eksik değer içeren satırları düşürmenizi sağlar:
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()Altyapı:
Çıktı:
Alternatif olarak, eksik değerleri belirtilen bir varsayılan değerle ya da bir doldurma yöntemiyle değiştirmek için fill_nulls() yöntemini kullanabilirsiniz.
4. Belirli sütunlara göre gruplama
Verileri belirli sütunlara göre gruplamak için groupby() yöntemini kullanabilirsiniz. Aşağıdaki örnek, verileri Cut sütununa göre gruplar ve her grup için ortalama Price değerini hesaplar:
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()Altyapı:
Çıktı:
Yukarıdaki çıktıda, elmasların Cut boyutuna göre ortalama fiyatını görebilirsiniz.
5. DataFrame'leri birleştirme ve bir araya getirme
Polars, farklı kaynaklardan gelen verileri birleştirmenize ve bir araya getirmenize olanak tanıyan esnek seçenekler sunar. Birleştirme işlemi yapmak için join() yöntemini kullanabilirsiniz. Aşağıda, ortak bir anahtar sütuna dayalı iki DataFrame arasında iç birleştirme örneği yer alıyor:
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
Altyapı:
Çıktı:
Bu örnekte, pl.DataFrame yapıcısını kullanarak iki DataFrame (df1 ve df2) oluşturuyoruz. İlk DataFrame df1, id ve name sütunlarını; ikinci DataFrame df2 ise id ve age sütunlarını içerir. Ardından, join() yöntemini kullanarak id sütununda iç birleştirme gerçekleştiriyor ve id sütununu birleştirme anahtarı olarak belirtiyoruz.
Entegrasyon ve birlikte çalışabilirlik
Polars, diğer popüler Python kütüphaneleriyle sorunsuz entegrasyon sunarak veri analistlerinin geniş bir araç ve işlev yelpazesinden yararlanmasını sağlar. Entegrasyonun iki önemli yönüne bakalım: diğer kütüphanelerle çalışma ve Pandas ile birlikte çalışabilirlik.
Polars'ı diğer Python kütüphaneleriyle entegre etme
Polars, NumPy ve PyArrow gibi kütüphanelerle kolayca entegre olur; kullanıcıların veri analizi iş akışlarında birden çok aracın gücünü birleştirmesine olanak tanır. NumPy entegrasyonu sayesinde Polars, Polars DataFrame'leri ile NumPy dizileri arasında zahmetsizce dönüşüm yapar ve NumPy'nin güçlü bilimsel hesaplama yeteneklerinden yararlanır. Bu entegrasyon, sorunsuz veri geçişleri sağlar ve analistlerin NumPy fonksiyonlarını doğrudan Polars verilerine uygulamasına izin verir.
Benzer şekilde, PyArrow'dan yararlanarak Polars, Polars ve Arrow tabanlı sistemler arasındaki veri aktarımını optimize eder. Bu entegrasyon, Arrow formatında depolanan verilerle sorunsuz çalışmayı ve Polars'ın yüksek performanslı veri işleme yeteneklerinden yararlanmayı mümkün kılar.
Polars, Polars DataFrame'lerini Pandas DataFrame'lerine sorunsuz bir şekilde dönüştürür. İşte Polars'tan pandas'a dönüşümü gösteren bir örnek.
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
Altyapı:
Çıktı:
Sonuç
Polars, Python'da yüksek performanslı veri işleme ve analiz için güçlü bir kütüphanedir. Hız ve performans optimizasyonları, büyük veri kümelerini verimli biçimde ele almak için onu ideal bir seçenek haline getirir.
İfade gücü yüksek söz dizimi ve DataFrame yapılarıyla Polars, veri işleme görevleri için tanıdık ve sezgisel bir arayüz sunar. Ayrıca Polars, NumPy ve PyArrow gibi diğer Python kütüphaneleriyle sorunsuz bir şekilde entegre olarak yeteneklerini genişletir ve kullanıcıların çeşitli araç ekosistemlerinden yararlanmasına olanak tanır.
Polars DataFrame'lerinin pandas DataFrame'lerine dönüştürülebilmesi, birlikte çalışabilirliği güvence altına alır ve Polars'ın mevcut iş akışlarına entegrasyonunu kolaylaştırır. İster karmaşık veri tipleriyle çalışıyor olun, ister büyük veri kümelerini ele alıyor olun ya da performans iyileştirmeleri arıyor olun, Polars, veri analizi çalışmalarınızın tüm potansiyelini açığa çıkarmak için kapsamlı bir araç seti sunar.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Veri analizi dünyasında, Python çok yönlülüğü ve zengin kütüphane ekosistemi nedeniyle popüler bir dildir. Veri işleme ve analiz, içgörü elde etmek ve bilinçli kararlar almak için kritik bir rol oynar. Ancak, veri kümeleri boyut ve karmaşıklık açısından büyümeye devam ettikçe, yüksek performanslı çözümlere duyulan ihtiyaç da kaçınılmaz hale gelir.
Büyük veri kümelerini verimli bir şekilde işlemek, hızlı hesaplamalar ve optimize edilmiş işlemler sunabilen araçlar gerektirir. İşte bu noktada Polars devreye girer. Polars, özellikle Python'da yüksek performanslı veri işleme ve analiz için tasarlanmış güçlü bir açık kaynak kütüphanesidir.
Polars Özellikleri
Polars, tamamen Rust ile yazılmış bir DataFrame kütüphanesidir ve Python geliştiricilerine verileri işlemek için ölçeklenebilir ve verimli bir çatı sunmak üzere inşa edilmiştir; oldukça popüler olan pandas kütüphanesine bir alternatif olarak görülür. Çok çeşitli veri işleme ve analiz görevlerini kolaylaştıran işlevsellikler sağlar. Polars kullanmanın bazı temel özellikleri ve avantajları şunlardır:
1. Hız ve performans
Polars, performans odaklı olarak geliştirilmiştir. Paralel işlemeyi ve bellek optimizasyon tekniklerini kullanır; bu sayede büyük veri kümelerini geleneksel yöntemlere kıyasla belirgin ölçüde daha hızlı işler.
2. Veri işleme yetenekleri
Polars, filtreleme, sıralama, gruplama, birleştirme ve toplulaştırma gibi temel işlemleri kapsayan kapsamlı bir veri işleme araç seti sunar. Polars, görece yeni olmasından ötürü pandas kadar kapsamlı bir işlevselliğe sahip olmayabilir; ancak pandas'taki yaygın işlemlerin yaklaşık %80'ini karşılar.
3. İfade gücü yüksek söz dizimi
Polars, öğrenmesi ve kullanması kolay, özlü ve sezgisel bir söz dizimi kullanır. Söz dizimi, pandas gibi popüler Python kütüphanelerini andırır; bu da kullanıcıların Polars'a hızla uyum sağlamasını ve mevcut bilgilerini kullanmasını mümkün kılar.
4. DataFrame ve Series yapıları
Polars'ın merkezinde, tablo verileriyle çalışmak için tanıdık ve güçlü bir soyutlama sunan DataFrame ve Series yapıları bulunur. Polars'taki DataFrame işlemleri zincirlenebilir; bu da verimli ve öz bir veri dönüşümü sağlar.
5. Polars tembel değerlendirmeyi destekler
Polars, tembel değerlendirme (lazy evaluation) uygular; bu, sorguların incelenip optimize edilerek performansın artırılması ve bellek tüketiminin azaltılması anlamına gelir. Polars ile çalışırken, kütüphane sorgularınızı analiz eder ve yürütmeyi hızlandırma ya da bellek kullanımını azaltma fırsatlarını arar. Buna karşılık, Pandas yalnızca hevesli değerlendirmeyi (eager evaluation) destekler; ifadelerle karşılaşılır karşılaşılmaz değerlendirilir.
Pandas varken neden Polars'ı seçelim?
pandas, esnekliği ve kullanım kolaylığıyla bilinen, yaygın olarak benimsenmiş bir kütüphanedir. Ancak büyük veri kümeleriyle çalışırken, tek iş parçacıklı yürütmeye dayanması nedeniyle Pandas performans darboğazları yaşayabilir. Veri kümesinin boyutu arttıkça, işlem süreleri aşırı uzayabilir ve üretkenliği kısıtlayabilir.
Polars, büyük veri kümelerini verimli şekilde ele almak üzere özel olarak tasarlanmıştır. Tembel değerlendirme stratejisi ve paralel yürütme yetenekleri sayesinde Polars, büyük miktarda veriyi hızla işler. Hesaplamaları birden çok CPU çekirdeğine dağıtarak paralelliği kullanır ve etkileyici performans kazanımları sağlar. Yuki tarafından yapılan Pandas ve Polars hız karşılaştırma testine bakın.
Görsel Kaynağı
Polars ve pandas karşılaştırmasının tamamı için ayrı makalemize göz atın.
Polars'ın kurulumu
Polars, Python paket yöneticisi pip ile kurulabilir. Komut satırı arayüzünüzü açın ve aşağıdaki komutu çalıştırın:
Polars'ta bir veri kümesi yükleme
Polars, CSV dosyaları, Parquet dosyaları ve Pandas DataFrame'leri dahil olmak üzere çeşitli kaynaklardan veri yüklemek için kullanışlı yöntemler sunar. CSV veya Parquet dosyasını okuma yöntemleri
pandaskütüphanesiyle aynıdır.Çıktı:
datadeğişkeninin türüpolars.DataFrame'dir.Çıktı:
Polars ile yaygın veri işleme fonksiyonları
Polars, veriyi seçme, filtreleme, sıralama, dönüştürme ve temizleme gibi işlemler için kapsamlı bir işlev seti sunar. Şimdi bazı yaygın veri işleme görevlerini ve bunların Polars ile nasıl yapılacağını inceleyelim:
1. Veriyi seçme ve filtreleme
Bir DataFrame'den belirli sütunları seçmek için
select()yöntemini kullanabilirsiniz. Örnek:Çıktı:
Belirli koşullara göre satırları filtrelemek için
filter()yöntemini kullanabilirsiniz. Örneğin, karat değeri 1.0'dan büyük olan satırları filtrelemek için şunu yapabilirsiniz:Çıktı:
2. Veriyi sıralama ve düzenleme
Polars, bir veya birden fazla sütuna göre bir DataFrame'i sıralamak için
sort()yöntemini sunar. Örnek:Çıktı:
3. Eksik değerleri ele alma
Polars, eksik değerleri ele almak için kullanışlı yöntemler sağlar.
drop_nulls()yöntemi, herhangi bir eksik değer içeren satırları düşürmenizi sağlar:Çıktı:
Alternatif olarak, eksik değerleri belirtilen bir varsayılan değerle ya da bir doldurma yöntemiyle değiştirmek için
fill_nulls()yöntemini kullanabilirsiniz.4. Belirli sütunlara göre gruplama
Verileri belirli sütunlara göre gruplamak için
groupby()yöntemini kullanabilirsiniz. Aşağıdaki örnek, verileriCutsütununa göre gruplar ve her grup için ortalamaPricedeğerini hesaplar:Çıktı:
Yukarıdaki çıktıda, elmasların
Cutboyutuna göre ortalama fiyatını görebilirsiniz.5. DataFrame'leri birleştirme ve bir araya getirme
Polars, farklı kaynaklardan gelen verileri birleştirmenize ve bir araya getirmenize olanak tanıyan esnek seçenekler sunar. Birleştirme işlemi yapmak için
join()yöntemini kullanabilirsiniz. Aşağıda, ortak bir anahtar sütuna dayalı iki DataFrame arasında iç birleştirme örneği yer alıyor:Çıktı:
Bu örnekte,
pl.DataFrameyapıcısını kullanarak iki DataFrame (df1vedf2) oluşturuyoruz. İlk DataFramedf1,idvenamesütunlarını; ikinci DataFramedf2iseidveagesütunlarını içerir. Ardından,join()yöntemini kullanarakidsütununda iç birleştirme gerçekleştiriyor veidsütununu birleştirme anahtarı olarak belirtiyoruz.Entegrasyon ve birlikte çalışabilirlik
Polars, diğer popüler Python kütüphaneleriyle sorunsuz entegrasyon sunarak veri analistlerinin geniş bir araç ve işlev yelpazesinden yararlanmasını sağlar. Entegrasyonun iki önemli yönüne bakalım: diğer kütüphanelerle çalışma ve Pandas ile birlikte çalışabilirlik.
Polars'ı diğer Python kütüphaneleriyle entegre etme
Polars, NumPy ve PyArrow gibi kütüphanelerle kolayca entegre olur; kullanıcıların veri analizi iş akışlarında birden çok aracın gücünü birleştirmesine olanak tanır. NumPy entegrasyonu sayesinde Polars, Polars DataFrame'leri ile NumPy dizileri arasında zahmetsizce dönüşüm yapar ve NumPy'nin güçlü bilimsel hesaplama yeteneklerinden yararlanır. Bu entegrasyon, sorunsuz veri geçişleri sağlar ve analistlerin NumPy fonksiyonlarını doğrudan Polars verilerine uygulamasına izin verir.
Benzer şekilde, PyArrow'dan yararlanarak Polars, Polars ve Arrow tabanlı sistemler arasındaki veri aktarımını optimize eder. Bu entegrasyon, Arrow formatında depolanan verilerle sorunsuz çalışmayı ve Polars'ın yüksek performanslı veri işleme yeteneklerinden yararlanmayı mümkün kılar.
Polars DataFrame'lerini pandas DataFrame'lerine dönüştürme
Polars, Polars DataFrame'lerini Pandas DataFrame'lerine sorunsuz bir şekilde dönüştürür. İşte Polars'tan pandas'a dönüşümü gösteren bir örnek.
Çıktı:
Sonuç
Polars, Python'da yüksek performanslı veri işleme ve analiz için güçlü bir kütüphanedir. Hız ve performans optimizasyonları, büyük veri kümelerini verimli biçimde ele almak için onu ideal bir seçenek haline getirir.
İfade gücü yüksek söz dizimi ve DataFrame yapılarıyla Polars, veri işleme görevleri için tanıdık ve sezgisel bir arayüz sunar. Ayrıca Polars, NumPy ve PyArrow gibi diğer Python kütüphaneleriyle sorunsuz bir şekilde entegre olarak yeteneklerini genişletir ve kullanıcıların çeşitli araç ekosistemlerinden yararlanmasına olanak tanır.
Polars DataFrame'lerinin pandas DataFrame'lerine dönüştürülebilmesi, birlikte çalışabilirliği güvence altına alır ve Polars'ın mevcut iş akışlarına entegrasyonunu kolaylaştırır. İster karmaşık veri tipleriyle çalışıyor olun, ister büyük veri kümelerini ele alıyor olun ya da performans iyileştirmeleri arıyor olun, Polars, veri analizi çalışmalarınızın tüm potansiyelini açığa çıkarmak için kapsamlı bir araç seti sunar.