Pandas & NumPy Academy · Ders

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.

3. ders / 413 adım

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.0

Hizalanmış İş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.0

Bir 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.32

NumPy 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.0

Series Ü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:9

Vektö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.60

Vektö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.0

Series Ü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.273

Series Ü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    530

Hı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.

Başlamak ücretsiz

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

  1. Series Oluşturma
  2. Etiket ve Konum Tabanlı Erişim
  3. Series Üzerinde Vektörleştirilmiş İşlemler
  4. Yararlı Series Yöntemleri
← Pandas & NumPy Academy Sayfasına Dön