Series Üzerinde Vektörleştirilmiş İşlemler
İki Series arasında aritmetik işlemler gerçekleştirin, dizin hizalamasını otomatik olarak yönetin ve hizalanmış eksik değerleri NaN ile doldurun.
Series Üzerinde Vektörleştirilmiş İşlemler, CoddyKit'te ücretsiz bir Pandas & NumPy Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Pandas & NumPy Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Pandas & NumPy Academy kursu toplamda 4 dersten oluşur.
Vektörleştirilmiş İşlemler Neden Kullanılır?
NumPy gibi Pandas Series de Python döngüleri olmadan aritmetik işlemleri, karşılaştırmaları ve işlevleri her öğeye uygulayan vektörleştirilmiş işlemleri destekler. Bu, hem kısa hem de hızlı kod yazmanızı sağlar. Arka planda her işlem NumPy'nin C düzeyindeki yordamlarına devredilir; ancak Pandas işlemden önce otomatik dizin hizalaması gibi önemli bir ek avantaj sunar.
import pandas as pd
revenue = pd.Series([1000, 2000, 1500], index=['Jan', 'Feb', 'Mar'])
tax_rate = 0.2
net = revenue * (1 - tax_rate) # vectorized -- no loop
print(net)İki Series Arasında Aritmetik İşlemler
İki Series'i topladığınızda, çıkardığınızda, çarptığınızda veya böldüğünüzde Pandas önce bunları dizin etiketlerine göre hizalar. Yalnızca her iki Series'te de etiketi bulunan konumlar sonuç üretir; eşleşmeyen etiketler NaN üretir. Bu davranış, hizalanmamış verilerden kaynaklanan gizli hataları önler; örneğin, iki veri kaynağında farklı sıralarda depolanmış Ocak değerlerini toplarken.
import pandas as pd
a = pd.Series([10, 20, 30], index=['x', 'y', 'z'])
b = pd.Series([1, 2, 3], index=['y', 'z', 'w'])
print(a + b)
# w NaN
# x NaN
# y 21.0
# z 32.0Hizalanmış İşlemlerde NaN Değerlerini Doldurma
Hizalanmamış işlemlerde NaN yayılmasını önlemek için .add(), .sub(), .mul() ve .div() gibi aritmetik yöntemleri fill_value= parametresiyle kullanın. Bu parametre, işlem yapılmadan önce Series'lerden birinde eksik olan herhangi bir etiket için belirtilen değeri kullanır; toplama için genellikle 0, çarpma içinse 1 kullanılır.
import pandas as pd
a = pd.Series([10, 20, 30], index=['x', 'y', 'z'])
b = pd.Series([1, 2, 3], index=['y', 'z', 'w'])
result = a.add(b, fill_value=0)
print(result)
# w 3.0
# x 10.0
# y 21.0
# z 32.0Bir Series Üzerinde Skaler Aritmetik
Bir skalerle yapılan aritmetik işlem, işlemi her öğeye uygular ve aynı dizine sahip yeni bir Series üretir. Bu, vektörleştirmenin en basit biçimidir: s + 5, s * 100, s ** 2. Skaler aritmetik hiçbir zaman NaN oluşturmaz; birim dönüştürme, normalleştirme ve zaman serilerine ofset uygulama işlemlerinde kullanılır.
import pandas as pd
prices_eur = pd.Series([1.0, 2.5, 4.0], index=['a', 'b', 'c'])
exchange = 1.08
prices_usd = prices_eur * exchange
print(prices_usd.round(2))
# a 1.08
# b 2.70
# c 4.32NumPy ufunc'lerini Series'e Uygulama
NumPy ufunc'leri Pandas Series üzerinde sorunsuz çalışır ve aynı dizine sahip bir Series döndürür. Bu sayede önce bir diziye dönüştürmeden doğrudan bir Series üzerinde np.sqrt(s), np.log1p(s) veya np.exp(s) çağırabilirsiniz. Sonuç, özgün etiketleri koruyan yeni bir Series olur.
import pandas as pd
import numpy as np
s = pd.Series([0, 1, 4, 9, 16], index=list('abcde'))
print(np.sqrt(s))
# a 0.0
# b 1.0
# c 2.0
# d 3.0
# e 4.0Series Üzerinde Karşılaştırma İşlemleri
Karşılaştırma işleçleri (==, !=, >, <, >=, <=) her öğe için bir boolean Series döndürür. Bunlar filtrelemenin temel yapı taşlarıdır: eşleşen satırları seçmek için boolean Series'i .loc'a aktarırsınız. İki Series karşılaştırılırken Pandas bunları dizine göre de hizalar.
import pandas as pd
s = pd.Series([3, 7, 2, 9, 1], index=list('abcde'))
print(s > 4)
# a False
# b True
# c False
# d True
# e False
print(s[s > 4]) # b:7 d:9Vektörleştirilmiş İşlemleri Zincirleme
Her işlem yeni bir Series döndürdüğü için tek bir ifade içinde birden çok dönüşümü zincirleyebilirsiniz. Bu, kodun okunabilir olmasını sağlar ve gereksiz ara değişkenler oluşturmanızı önler. Karmaşık işlem hatlarında zinciri parantezleri kullanarak birden çok satıra bölün. Zincirleme, değiştirilemez verilerle işlevsel programlamanın Pandas karşılığıdır.
import pandas as pd
import numpy as np
raw_scores = pd.Series([55, 80, 45, 90, 72])
normalised = (raw_scores - raw_scores.min()) / (raw_scores.max() - raw_scores.min())
print(normalised.round(2))
# 0 0.22
# 1 0.78
# 2 0.00
# 3 1.00
# 4 0.60Vektörleştirilmiş İşlemlerde NaN Değerlerini Yönetme
NaN bulaşıcıdır: NaN içeren herhangi bir aritmetik işlem NaN üretir. İşlemden önce yerine değer koymak için s.fillna(value) kullanın veya toplama yöntemlerinde skipna=True parametresini kullanın. pd.isna(s) işlevi, NaN konumlarını işaretleyen bir boolean Series döndürür; istatistikleri hesaplamadan önce verileri denetlemek için bunu kullanın.
import pandas as pd
import numpy as np
s = pd.Series([1.0, np.nan, 3.0, np.nan, 5.0])
print(s + 10)
# 0 11.0 2 13.0 4 15.0 -- NaN stays NaN
print(s.fillna(0) + 10)
# 0 11.0 1 10.0 2 13.0 3 10.0 4 15.0Series Üzerinde abs(), clip() ve round()
Pandas Series, NumPy benzeri birçok yöntemi doğrudan sunar: s.abs(), s.clip(lower, upper) ve s.round(decimals), dönüşümü öğe bazında uygulayan yeni Series nesneleri döndürür. Bunlar NumPy ufunc çağrılarına eşdeğerdir; ancak yöntem söz dizimini kullanır ve Series dizinini ile adını korur.
import pandas as pd
s = pd.Series([-2.5, 1.3, -0.7, 4.9, -3.1])
print(s.abs()) # [2.5 1.3 0.7 4.9 3.1]
print(s.clip(-2, 2)) # [-2. 1.3 -0.7 2. -2. ]
print(s.round(0)) # [-2. 1. -1. 5. -3.]Büyüme Oranları için pct_change()
s.pct_change(), ardışık öğeler arasındaki yüzde değişimini hesaplar: (mevcut - önceki) / önceki. Önceki bir değer bulunmadığı için ilk öğe NaN olur. Bu, aydan aya büyüme oranlarını, finansta günlük getirileri ve zaman serisi modellerinin değişim oranı özelliklerini hesaplamak için kullanılan standart işlemdir.
import pandas as pd
monthly_revenue = pd.Series([100, 120, 110, 140],
index=['Q1', 'Q2', 'Q3', 'Q4'])
growth = monthly_revenue.pct_change()
print(growth.round(3))
# Q1 NaN
# Q2 0.200
# Q3 -0.083
# Q4 0.273Series Üzerinde cumsum() ve cumprod()
s.cumsum(), birikimli toplamları içeren bir Series döndürür; s.cumprod() ise birikimli çarpımları döndürür. Bunlar birikimli geliri, bileşik yatırım getirilerini veya sürekli sözcük sayılarını hesaplamak için kullanılır. Özgün dizin etiketlerini korudukları için birikimli seriyi zaman ya da kategori boyunca kolayca görselleştirebilirsiniz.
import pandas as pd
daily_sales = pd.Series([100, 150, 80, 200],
index=['Mon', 'Tue', 'Wed', 'Thu'])
print(daily_sales.cumsum())
# Mon 100
# Tue 250
# Wed 330
# Thu 530Hızlı Kontrol
Bu derste öğrendiğiniz Series üzerindeki vektörleştirilmiş işlemleri ne kadar anladığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: aritmetik işleçler, döngüler olmadan Series'e öğe bazında uygulanır; Pandas işlemden önce iki Series'i dizin etiketlerine göre otomatik olarak hizalar ve eşleşmeyen konumlara NaN yerleştirir; fill_value, pct_change ve cumsum gibi yöntemler, vektörleştirilmiş işlemleri analitik görevler için genişletir. Sırada hızlı özetleme için describe, value_counts ve map gibi kullanışlı Series yöntemlerini inceleyeceğiz.
Yapay zeka eğitmeniyle Python öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 30
- Dersler
- 120
Sıkça Sorulan Sorular
“Series Üzerinde Vektörleştirilmiş İşlemler” dersi ücretsiz mi?
Evet — “Series Üzerinde Vektörleştirilmiş İşlemler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Pandas & NumPy Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Pandas & NumPy Academy kursu toplamda 4 dersten oluşur.
“Series Üzerinde Vektörleştirilmiş İşlemler” dersinde ne öğreneceğim?
İki Series arasında aritmetik işlemler gerçekleştirin, dizin hizalamasını otomatik olarak yönetin ve hizalanmış eksik değerleri NaN ile doldurun. Pandas & NumPy Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Pandas & NumPy Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Pandas & NumPy Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Series Üzerinde Vektörleştirilmiş İşlemler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Pandas & NumPy Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Pandas & NumPy Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Series Oluşturma
- Etiket ve Konum Tabanlı Erişim
- Series Üzerinde Vektörleştirilmiş İşlemler
- Yararlı Series Yöntemleri