Polars - 0302 Veri Yapıları
Prş 30 Haziran 2022Veri Yapıları
Polars tarafından sağlanan temel veri yapıları Series (Seriler) ve DataFrame (VeriÇerçeveleri)'dir.
Series (Seriler)
Seriler, 1-boyutlu bir veri yapısıdır. Bir dizi içindeki tüm öğeler aynı Veri Türüne / Tipine sahiptir. Aşağıdaki kod parçacığı, basit bir Series nesnesinin nasıl oluşturulacağını gösterir.
import polars as pl
s = pl.Series("a", [1, 2, 3, 4, 5])
print(s)
shape: (5,)
Series: 'a' [i64]
[
1
2
3
4
5
]
DataFrame (VeriÇerçevesi)
VeriÇerçevesi (DataFrame), bir Seri (Series) tarafından desteklenen 2-boyutlu bir veri yapısıdır ve bir Series koleksiyonunun (ör. liste) soyutlaması olarak görülebilir. Bir DataFrame üzerinde yürütülebilen işlemler, SQL benzeri bir sorguda yapılanlara çok benzer. GROUP BY, JOIN, PIVOT yapabilir, aynı zamanda özel fonksiyonlar da tanımlayabilirsiniz.
Aşağıda, Sütun bilgileri ve veri türleri / tipleri sırasıyla, Tamsayı (integer), Tarih (datetime), ve Ondalıklı Sayı (float) olan bir VeriÇerçevesi (DataFrame) tanımlanıyor ve çıktısı gösterilyor.
df = pl.DataFrame(
{
"integer": [1, 2, 3, 4, 5],
"date": [
datetime(2022, 1, 1),
datetime(2022, 1, 2),
datetime(2022, 1, 3),
datetime(2022, 1, 4),
datetime(2022, 1, 5),
],
"float": [4.0, 5.0, 6.0, 7.0, 8.0],
}
)
print(df)
shape: (5, 3)
┌─────────┬─────────────────────┬───────┐
│ integer ┆ date ┆ float │
│ --- ┆ --- ┆ --- │
│ i64 ┆ datetime[μs] ┆ f64 │
╞═════════╪═════════════════════╪═══════╡
│ 1 ┆ 2022-01-01 00:00:00 ┆ 4.0 │
│ 2 ┆ 2022-01-02 00:00:00 ┆ 5.0 │
│ 3 ┆ 2022-01-03 00:00:00 ┆ 6.0 │
│ 4 ┆ 2022-01-04 00:00:00 ┆ 7.0 │
│ 5 ┆ 2022-01-05 00:00:00 ┆ 8.0 │
└─────────┴─────────────────────┴───────┘
Verileri Görüntülemek
Bu bölüm, bir DataFrame'deki verileri görüntülemeye odaklanır. Yukarıdaki örnekteki oluşturulan VeriÇerçevesini (DataFrame'i) başlangıç noktası olarak kullanacağız ve aşağıda anlatılan komutlar / metotlar, bu VeriÇerçevesi ve içeriğindeki veriler kullanılarak anlatılacak.
head
head metodu varsayılan olarak bir VeriÇerçevesi (DataFrame)'in ilk 5 satırını görüntüler. İsterseniz, görmek istediğiniz satır sayısını metod içinde parametre olarak belirtebilirsiniz (ör. df.head(10)).
print(df.head(3))
shape: (3, 3)
┌─────────┬─────────────────────┬───────┐
│ integer ┆ date ┆ float │
│ --- ┆ --- ┆ --- │
│ i64 ┆ datetime[μs] ┆ f64 │
╞═════════╪═════════════════════╪═══════╡
│ 1 ┆ 2022-01-01 00:00:00 ┆ 4.0 │
│ 2 ┆ 2022-01-02 00:00:00 ┆ 5.0 │
│ 3 ┆ 2022-01-03 00:00:00 ┆ 6.0 │
└─────────┴─────────────────────┴───────┘
tail
tail metodu, bir VeriÇerçevesi (DataFrame)'in son 5 satırını gösterir. head metoduna benzer şekilde görmek istediğiniz satır sayısını da belirtebilirsiniz. (ör. df.tail(8))
print(df.tail(3))
shape: (3, 3)
┌─────────┬─────────────────────┬───────┐
│ integer ┆ date ┆ float │
│ --- ┆ --- ┆ --- │
│ i64 ┆ datetime[μs] ┆ f64 │
╞═════════╪═════════════════════╪═══════╡
│ 3 ┆ 2022-01-03 00:00:00 ┆ 6.0 │
│ 4 ┆ 2022-01-04 00:00:00 ┆ 7.0 │
│ 5 ┆ 2022-01-05 00:00:00 ┆ 8.0 │
└─────────┴─────────────────────┴───────┘
sample
VeriÇerçevenizin (DataFrame'inizin) verileri hakkında bir izlenim edinmek istiyorsanız, sample metodunu da kullanabilirsiniz. sample metodu ile, DataFrame'den n sayıda rasgele satır alırsınız. Bu metodu, random modülündeki sample metoduna benzetebilirsiniz.
print(df.sample(2))
shape: (2, 3)
┌─────────┬─────────────────────┬───────┐
│ integer ┆ date ┆ float │
│ --- ┆ --- ┆ --- │
│ i64 ┆ datetime[μs] ┆ f64 │
╞═════════╪═════════════════════╪═══════╡
│ 1 ┆ 2022-01-01 00:00:00 ┆ 4.0 │
│ 5 ┆ 2022-01-05 00:00:00 ┆ 8.0 │
└─────────┴─────────────────────┴───────┘
describe
Describe metodu, VeriÇerçevenizin (DataFrame'inizin) özet istatistiklerini döndürür. VeriÇerçevenizde sayısal değerler varsa, bu metot size birkaç hızlı istatistik bilgisi sağlayacaktır. Pandaskütüphanesinin describe metodu gibi düşünebilirsiniz.
print(df.describe())
shape: (9, 4)
┌────────────┬──────────┬─────────────────────┬──────────┐
│ describe ┆ integer ┆ date ┆ float │
│ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ f64 ┆ str ┆ f64 │
╞════════════╪══════════╪═════════════════════╪══════════╡
│ count ┆ 5.0 ┆ 5 ┆ 5.0 │
│ null_count ┆ 0.0 ┆ 0 ┆ 0.0 │
│ mean ┆ 3.0 ┆ null ┆ 6.0 │
│ std ┆ 1.581139 ┆ null ┆ 1.581139 │
│ min ┆ 1.0 ┆ 2022-01-01 00:00:00 ┆ 4.0 │
│ max ┆ 5.0 ┆ 2022-01-05 00:00:00 ┆ 8.0 │
│ median ┆ 3.0 ┆ null ┆ 6.0 │
│ 25% ┆ 2.0 ┆ null ┆ 5.0 │
│ 75% ┆ 4.0 ┆ null ┆ 7.0 │
└────────────┴──────────┴─────────────────────┴──────────┘
count : sütunlarda kaç adet veri olduğunu,
null_count : sütunlarda kaç adet kayıp veri olduğunu,
mean : sütunlardaki verilerin ortalamasını,
std : sütunlardaki verilerin standart sapmasını,
min: sütunlardaki verilerin en küçük değerini
max : sütunlardaki verilerin en büyük değerini,
median : sütunlardaki verilerin ortanca medyanını,
%25 : sütunlardaki verilerin medyanın alt çeyreğini (dörttebirliğini),
%75 : sütunlardaki verilerin medyanın üst çeyreğini (dörttebirliğini) tanımlar
| << Önceki Bölüm | Sonraki Bölüm >> |
|---|---|
| Veri Tipleri | Bağlamlar |