Birleştirme, Katılma ve Veri Temizleme
DataFrame'leri birleştirin ve eksik değerleri profesyonelce ele alın.
Birleştirme, Katılma ve Veri Temizleme, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 4. 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, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
pd.merge
pd.merge(left, right, on="key"), iki DataFrame'i ortak bir sütun üzerinden birleştirir; SQL JOIN işlemine benzer.
import pandas as pd
users = pd.DataFrame({"id":[1,2,3],"name":["A","B","C"]})
orders = pd.DataFrame({"user_id":[1,1,2],"amount":[100,50,200]})
result = pd.merge(users, orders, left_on="id", right_on="user_id")
print(result)Birleştirme Türleri
Hangi satırların korunacağını belirlemek için how="inner" (varsayılan), "left", "right" veya "outer" belirtin.
import pandas as pd
A = pd.DataFrame({"key":["a","b","c"],"val":[1,2,3]})
B = pd.DataFrame({"key":["b","c","d"],"x":[10,20,30]})
print(pd.merge(A, B, on="key", how="left")) # all of A
print(pd.merge(A, B, on="key", how="outer")) # all rowsdf.join
df.join(other), indeks üzerinden birleştirme yapar. Bir sütun yerine indeks üzerinden birleştirme yaparken daha hızlı ve daha basittir.
import pandas as pd
df1 = pd.DataFrame({"a":[1,2]}, index=["x","y"])
df2 = pd.DataFrame({"b":[3,4]}, index=["x","y"])
print(df1.join(df2))
# x: a=1 b=3
# y: a=2 b=4concat
pd.concat([df1, df2]), DataFrames'i dikey olarak (axis=0) veya yatay olarak (axis=1) üst üste ekler.
import pandas as pd
df1 = pd.DataFrame({"a":[1,2]})
df2 = pd.DataFrame({"a":[3,4]})
print(pd.concat([df1,df2], ignore_index=True))
# a: 1 2 3 4
# Horizontal:
df3 = pd.DataFrame({"b":[5,6]})
print(pd.concat([df1,df3], axis=1))Eksik Değerleri Yönetme
NaN değerlerini isna()/notna() ile algılayın. fillna() ile doldurun. dropna() ile kaldırın.
import pandas as pd, numpy as np
df = pd.DataFrame({"a":[1,np.nan,3],"b":[np.nan,2,3]})
print(df.isna().sum()) # count nulls per column
df["a"] = df["a"].fillna(0)
df = df.dropna() # drop rows with any nullfillna Stratejileri
Eksik değerleri bir sabit, ileriye doğru doldurma (ffill), geriye doğru doldurma (bfill) veya sütun ortalamasıyla doldurun.
import pandas as pd, numpy as np
df = pd.DataFrame({"val":[1, np.nan, np.nan, 4]})
print(df["val"].ffill()) # forward fill: 1 1 1 4
print(df["val"].bfill()) # back fill: 1 4 4 4
print(df["val"].fillna(df["val"].mean())) # fill with meanVeri Türlerini Değiştirme
Sütun türlerini dönüştürmek için astype() kullanın. Tarih ayrıştırma için pd.to_datetime(), güvenli sayısal dönüşüm için errors="coerce" ile birlikte pd.to_numeric kullanın.
import pandas as pd
df = pd.DataFrame({"age":["25","30","35"],"date":["2024-01-01","2024-06-15","2024-12-31"]})
df["age"] = df["age"].astype(int)
df["date"] = pd.to_datetime(df["date"])
print(df.dtypes)Metin Temizleme
Pandas'ın .str erişicisi vektörleştirilmiş metin işlemleri sağlar: strip(), lower(), replace(), extract().
import pandas as pd
df = pd.DataFrame({"name":[" Alice "," bob","CAROL"]})
df["clean"] = df["name"].str.strip().str.title()
print(df["clean"]) # Alice / Bob / CarolSütunları Yeniden Adlandırma ve Sıralama
df.rename(columns={"old":"new"}) ile yeniden adlandırın. Bir listeyle indeksleme yaparak yeniden sıralayın.
import pandas as pd
df = pd.DataFrame({"a":[1],"b":[2],"c":[3]})
df = df.rename(columns={"a":"alpha","b":"beta"})
df = df[["c","beta","alpha"]] # reorder
print(df.columns.tolist()) # ['c', 'beta', 'alpha']Yinelenenleri Algılama
Yinelenenleri duplicated() ile bulun ve drop_duplicates() ile kaldırın.
import pandas as pd
df = pd.DataFrame({"id":[1,2,1,3],"val":["a","b","a","c"]})
print(df.duplicated()) # [F F T F]
print(df[df.duplicated()]) # show duplicates
clean = df.drop_duplicates(subset=["id"])Satır/Sütun Dönüşümleri için apply
df.apply(func, axis=1), her satıra bir işlev uygular. axis=0 ise işlevi her sütuna uygular.
import pandas as pd
df = pd.DataFrame({"a":[1,2,3],"b":[4,5,6]})
# New column = row sum:
df["total"] = df.apply(lambda row: row["a"] + row["b"], axis=1)
print(df)Hızlı Kontrol
df.fillna(method="ffill") ne yapar?
Özet
SQL tarzı birleştirmeler için pd.merge, üst üste ekleme için pd.concat kullanın. NaN değerlerini isna(), fillna() ve dropna() ile yönetin. Metinleri .str erişicisiyle temizleyin. Türleri astype() ve pd.to_datetime() ile dönüştürün.
Sıkça Sorulan Sorular
“Birleştirme, Katılma ve Veri Temizleme” dersi ücretsiz mi?
Evet — “Birleştirme, Katılma ve Veri Temizleme” 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 Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“Birleştirme, Katılma ve Veri Temizleme” dersinde ne öğreneceğim?
DataFrame'leri birleştirin ve eksik değerleri profesyonelce ele alın. Python 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.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python 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 4. dersidir.
“Birleştirme, Katılma ve Veri Temizleme” 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 Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python 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 ve DataFrame Temelleri
- İndeksleme, Filtreleme ve Mantıksal Maskeler
- GroupBy, Birleştirme ve Özet Tablolar
- Birleştirme, Katılma ve Veri Temizleme