Genel Bakış
Insights içindeki ifade/formül dili Python sözdizimine dayanır. Sorgu oluşturma için kullanılan altyapı kütüphanesi ibis’tir. Daha fazla bilgi için ibis dokümantasyonuna bakabilirsiniz.
Aşağıda, Insights içinde ifade yazmayı kolaylaştıran yardımcı fonksiyonların listesi yer alıyor.
1. Toplama (Aggregate) Fonksiyonları
1. Count
- Sözdizimi:
count(column)
- Açıklama: Kolondaki null olmayan değerlerin sayısını döndürür.
- Örnek:
count(sales)
- Döner:
100
2. Count Distinct
- Sözdizimi:
distinct_count(column)
- Açıklama: Kolondaki benzersiz (distinct) değerlerin sayısını döndürür.
- Örnek:
distinct_count(customer_id)
- Döner:
50
3. Sum
- Sözdizimi:
sum(column)
- Açıklama: Kolondaki değerlerin toplamını döndürür.
- Örnek:
sum(sales)
- Döner:
10000
4. Average
- Sözdizimi:
avg(column)
- Açıklama: Kolondaki değerlerin ortalamasını döndürür.
- Örnek:
avg(sales)
- Döner:
100
5. Minimum
- Sözdizimi:
min(column)
- Açıklama: Kolondaki en küçük değeri döndürür.
- Örnek:
min(sales)
- Döner:
50
6. Maximum
- Sözdizimi:
max(column)
- Açıklama: Kolondaki en büyük değeri döndürür.
- Örnek:
max(sales)
- Döner:
200
7. Group Concat
- Sözdizimi:
group_concat(column)
- Açıklama: Kolondaki değerleri birleştirerek tek bir metin haline getirir.
- Örnek:
group_concat(product_name)
- Döner:
"Product A, Product B, Product C"
8. Sum if
- Sözdizimi:
sum_if(condition, column)
- Açıklama: Belirtilen koşulu sağlayan satırlardaki kolon değerlerinin toplamını döndürür.
- Örnek:
sum_if(sales > 1000, sales)
- Döner:
5000
9. Count if
- Sözdizimi:
count_if(condition, column)
- Açıklama: Belirtilen koşulu sağlayan satırların sayısını döndürür.
- Örnek:
count_if(sales > 1000, sales)
- Döner:
5
10. Distinct Count if
- Sözdizimi:
distinct_count_if(condition, column)
- Açıklama: Belirtilen koşulu sağlayan satırlardaki benzersiz değerlerin sayısını döndürür.
- Örnek:
distinct_count_if(sales > 1000, customer_id)
- Döner:
3
2. Koşullu Fonksiyonlar (Conditional Functions)
1. If Else
- Sözdizimi:
if_else(condition, true_value, false_value)
- Açıklama: Koşul doğruysa
true_value, değilse false_value döner.
- Örnek:
if_else(sales > 1000, "High", "Low")
- Döner:
"High"
2. Case
- Sözdizimi:
case(condition1, value1, condition2, value2, ..., default_value)
- Açıklama: İlk doğru koşula karşılık gelen değeri döndürür. Hiçbir koşul doğru değilse
default_value döner.
- Örnek:
case(sales > 1000, "High", sales > 500, "Medium", "Low")
- Döner:
"High"
3. Coalesce
- Sözdizimi:
coalesce(column1, column2, ..., default_value)
- Açıklama: Verilen kolonlar arasında ilk null olmayan değeri döndürür. Hepsi null ise
default_value döner.
- Örnek:
coalesce(product_name, product_code, "Unknown")
- Döner:
"Product A"
3. String (Metin) Fonksiyonları
1. Lower
- Sözdizimi:
lower(column)
- Açıklama: Kolondaki metinleri küçük harfe dönüştürür.
- Örnek:
lower(product_name)
- Döner:
"product a"
2. Upper
- Sözdizimi:
upper(column)
- Açıklama: Kolondaki metinleri büyük harfe dönüştürür.
- Örnek:
upper(product_name)
- Döner:
"PRODUCT A"
3. Concat
- Sözdizimi:
concat(column1, column2, ..., separator)
- Açıklama: Verilen kolonları belirtilen ayırıcı ile birleştirir.
- Örnek:
concat(first_name, last_name, " ")
- Döner:
"John Doe"
4. Replace
- Sözdizimi:
replace(column, old_value, new_value)
- Açıklama: Kolondaki
old_value değerlerini new_value ile değiştirir.
- Örnek:
replace(product_name, "A", "B")
- Döner:
"Product B"
5. Substring
- Sözdizimi:
substring(column, start, length)
- Açıklama:
start indeksinden başlayarak belirtilen length uzunluğunda alt metin döndürür.
- Örnek:
substring(product_name, 0, 7)
- Döner:
"Product"
6. Contains
- Sözdizimi:
contains(column, substring)
- Açıklama: Kolon belirtilen alt metni içeriyorsa true, aksi halde false döner.
- Örnek:
contains(product_name, "Product")
- Döner:
True
7. Not Contains
- Sözdizimi:
not_contains(column, substring)
- Açıklama: Kolon belirtilen alt metni içermiyorsa true, aksi halde false döner.
- Örnek:
not_contains(product_name, "A")
- Döner:
False
8. Starts With
- Sözdizimi:
starts_with(column, prefix)
- Açıklama: Kolon değeri belirtilen
prefix ile başlıyorsa true, aksi halde false döner.
- Örnek:
starts_with(product_name, "Product")
- Döner:
True
9. Ends With
- Sözdizimi:
ends_with(column, suffix)
- Açıklama: Kolon değeri belirtilen
suffix ile bitiyorsa true, aksi halde false döner.
- Örnek:
ends_with(product_name, "A")
- Döner:
True
10. Length
- Sözdizimi:
length(column)
- Açıklama: Metnin uzunluğunu döndürür.
- Örnek:
length(product_name)
- Döner:
10
4. Sayısal (Numeric) Fonksiyonlar
1. Abs
- Sözdizimi:
abs(column)
- Açıklama: Kolondaki değerin mutlak değerini döndürür.
- Örnek:
abs(sales)
- Döner:
100
2. Round
- Sözdizimi:
round(column, decimals)
- Açıklama: Kolonu belirtilen ondalık basamak sayısına göre yuvarlar.
- Örnek:
round(sales, 2)
- Döner:
100.50
3. Floor
- Sözdizimi:
floor(column)
- Açıklama: Kolondaki değer için, kendisinden küçük veya eşit olan en büyük tam sayıyı döndürür.
- Örnek:
floor(sales)
- Döner:
100
4. Ceil
- Sözdizimi:
ceil(column)
- Açıklama: Kolondaki değer için, kendisinden büyük veya eşit olan en küçük tam sayıyı döndürür.
- Örnek:
ceil(sales)
- Döner:
101
5. Tarih Fonksiyonları (Date Functions)
1. Year
- Sözdizimi:
year(column)
- Açıklama: Tarih kolonunun yıl kısmını döndürür.
- Örnek:
year(order_date)
- Döner:
2022
2. Quarter
- Sözdizimi:
quarter(column)
- Açıklama: Tarih kolonunun bulunduğu çeyreği (1–4) döndürür.
- Örnek:
quarter(order_date)
- Döner:
3
3. Month
- Sözdizimi:
month(column)
- Açıklama: Tarih kolonunun ay kısmını döndürür.
- Örnek:
month(order_date)
- Döner:
10
4. Week of Year
- Sözdizimi:
week_of_year(column)
- Açıklama: Tarih kolonunun yıl içindeki hafta numarasını döndürür.
- Örnek:
week_of_year(order_date)
- Döner:
41
5. Day of Year
- Sözdizimi:
day_of_year(column)
- Açıklama: Tarih kolonunun yıl içindeki gün numarasını döndürür.
- Örnek:
day_of_year(order_date)
- Döner:
288
6. Day of Week
- Sözdizimi:
day_of_week(column)
- Açıklama: Tarih kolonunun haftanın hangi gününe denk geldiğini döndürür (0–6).
- Örnek:
day_of_week(order_date)
- Döner:
4
7. Day
- Sözdizimi:
day(column)
- Açıklama: Tarih kolonunun gün kısmını döndürür.
- Örnek:
day(order_date)
- Döner:
15
8. Hour
- Sözdizimi:
hour(column)
- Açıklama: Tarih-saat kolonunun saat kısmını döndürür.
- Örnek:
hour(order_date)
- Döner:
10
9. Minute
- Sözdizimi:
minute(column)
- Açıklama: Tarih-saat kolonunun dakika kısmını döndürür.
- Örnek:
minute(order_date)
- Döner:
30
10. Second
- Sözdizimi:
second(column)
- Açıklama: Tarih-saat kolonunun saniye kısmını döndürür.
- Örnek:
second(order_date)
- Döner:
45
11. Microsecond
- Sözdizimi:
microsecond(column)
- Açıklama: Tarih-saat kolonunun mikrosaniye kısmını döndürür.
- Örnek:
microsecond(order_date)
- Döner:
500000
12. Date Diff
- Sözdizimi:
date_diff(column1, column2, unit)
- Açıklama: İki tarih kolonu arasındaki farkı belirtilen birimde döndürür.
Kullanılabilecek birimler: "year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond".
- Örnek:
date_diff(order_date, delivery_date, "day")
- Döner:
5
13. Format Date
- Sözdizimi:
format_date(column, format)
- Açıklama: Tarih kolonunu verilen biçime göre formatlar. Biçim, geçerli bir ANSI
strftime formatı olmalıdır.
- Örnek:
format_date(order_date, "%Y-%m-%d")
- Döner:
"2022-10-15"
14. Now
- Sözdizimi:
now()
- Açıklama: Geçerli tarih ve saati döndürür.
- Örnek:
now()
- Döner:
"2022-10-15 10:30:00"
15. Today
- Sözdizimi:
today()
- Açıklama: Bugünün tarihini döndürür.
- Örnek:
today()
- Döner:
"2022-10-15"
6. Boolean Fonksiyonlar
1. Is in
- Sözdizimi:
is_in(column, value1, value2, ...)
- Açıklama: Kolon değeri, verilen değerler listesinde yer alıyorsa true, aksi halde false döner.
- Örnek:
is_in(product_name, "Product A", "Product B")
- Döner:
True
2. Is Not in
- Sözdizimi:
is_not_in(column, value1, value2, ...)
- Açıklama: Kolon değeri, verilen değerler listesinde yer almıyorsa true, aksi halde false döner.
- Örnek:
is_not_in(product_name, "Product A", "Product B")
- Döner:
False
3. Is Set
- Sözdizimi:
is_set(column)
- Açıklama: Kolon değeri null değilse true, null ise false döner.
- Örnek:
is_set(product_name)
- Döner:
True
4. Is Not Set
- Sözdizimi:
is_not_set(column)
- Açıklama: Kolon değeri null ise true, değilse false döner.
- Örnek:
is_not_set(product_name)
- Döner:
False
5. Is Between
- Sözdizimi:
is_between(column, start, end)
- Açıklama: Kolon değeri
start ile end arasındaysa true, değilse false döner.
- Örnek:
is_between(sales, 1000, 5000)
- Döner:
True
6. Is Not Between
- Sözdizimi:
is_not_between(column, start, end)
- Açıklama: Kolon değeri
start ile end arasında değilse true, aksi halde false döner.
- Örnek:
is_not_between(sales, 1000, 5000)
- Döner:
False
7. Yardımcı (Utility) Fonksiyonlar
1. USD to INR
- Sözdizimi:
to_inr(currency_column, amount_column, rate=83)
- Açıklama:
amount_column değerlerini USD’den INR’ye çevirir. Eğer para birimi USD değilse, tutar olduğu gibi döner. Varsayılan kur 83tür.
- Örnek:
to_inr(currency, amount, 83)
- Döner:
8300
2. INR to USD
- Sözdizimi:
to_usd(currency_column, amount_column, rate=83)
- Açıklama:
amount_column değerlerini INR’den USD’ye çevirir. Eğer para birimi INR değilse, tutar olduğu gibi döner. Varsayılan kur 83tür.
- Örnek:
to_usd(currency, amount, 83)
- Döner:
100
3. Row Number
- Sözdizimi:
row_number()
- Açıklama: Mevcut satırın satır numarasını döndürür.
- Örnek:
row_number()
- Döner:
1
4. Previous Period Value
- Sözdizimi:
previous_period_value(column, date_column, offset=1)
- Açıklama:
date_column baz alınarak bir önceki döneme ait column değerini döndürür. offset, kaç dönem geriye gidileceğini belirtir.
- Örnek:
previous_period_value(sales, order_date, 1)
- Döner:
1000
5. Next Period Value
- Sözdizimi:
next_period_value(column, date_column, offset=1)
- Açıklama:
date_column baz alınarak bir sonraki döneme ait column değerini döndürür. offset, kaç dönem ileri gidileceğini belirtir.
- Örnek:
next_period_value(sales, order_date, 1)
- Döner:
2000
6. Percentage Change
- Sözdizimi:
percentage_change(column, date_column, offset=1)
- Açıklama:
date_column baz alınarak, bir önceki döneme göre column değerindeki yüzdesel değişimi döndürür. offset, kaç dönem geriye bakılacağını belirtir.
- Örnek:
percentage_change(sales, order_date, 1)
- Döner:
10
7. Is First Row
- Sözdizimi:
is_first_row(group_by, order_by, sort_order="asc")
- Açıklama: Mevcut satır, verilen gruplama içinde ilk satır ise
1, değilse 0 döner. sort_order "asc" veya "desc" olabilir.
- Örnek:
is_first_row(customer_id, order_date, "asc")
- Döner:
1
8. Create Buckets
- Sözdizimi:
create_buckets(column, num_buckets)
- Açıklama: Kolondaki değerlere göre aralıklar (bucket) oluşturur.
num_buckets kaç adet aralık oluşturulacağını belirtir.
- Örnek:
create_buckets(sales, 5)
- Döner: Örneğin
"1000-2000" gibi bir aralık etiketi.