Gelişmiş Birleştirme ve Birleşim
Zamana dayalı birleşimler için how, on, left_on/right_on, suffixes ile pd.merge() ve merge_asof.
Gelişmiş Birleştirme ve Birleşim, CoddyKit'te ücretsiz bir Learn AI with Python 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, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
DataFrames'leri Birleştirme
pd.merge, ortak anahtarları kullanarak iki DataFrames nesnesini birleştirir; tıpkı SQL JOIN gibi. how seçeneklerine hâkim olmak, ilişkisel verilerle çalışmak için gereklidir.
import pandas as pd
left = pd.DataFrame({"id": [1, 2, 3], "name": ["a", "b", "c"]})
right = pd.DataFrame({"id": [2, 3, 4], "score": [90, 80, 70]})İç Birleştirme (varsayılan)
how="inner", yalnızca BOTH veri çerçevesinde bulunan anahtarları korur. Varsayılan seçenek budur.
print(pd.merge(left, right, on="id", how="inner"))
# id name score
# 0 2 b 90
# 1 3 c 80Sol Birleştirme
how="left", sol veri çerçevesindeki her satırı korur; sağ tarafta eşleşmeyen sütunlar NaN olur. Analitik çalışmalarda en sık kullanılan birleştirmedir.
print(pd.merge(left, right, on="id", how="left"))
# id name score
# 0 1 a NaN
# 1 2 b 90.0
# 2 3 c 80.0Dış Birleştirme
how="outer", her iki taraftaki tüm anahtarları korur ve boşlukları NaN ile doldurur. Kayıtların tam birleşimini görmek için kullanın.
print(pd.merge(left, right, on="id", how="outer"))
# includes id 1 (no score) and id 4 (no name)Farklı Sütun Adlarıyla Birleştirme
Anahtar sütunlarının adları farklı olduğunda on yerine left_on ve right_on kullanın.
r2 = right.rename(columns={"id": "user_id"})
print(pd.merge(left, r2, left_on="id", right_on="user_id"))Çakışan Sütunlar için Sonekler
Her iki veri çerçevesinde de anahtar olmayan bir sütun adı varsa pandas, _x ve _y ekler. Daha anlaşılır olması için suffixes ile bunları değiştirin.
a = pd.DataFrame({"id": [1], "val": [10]})
b2 = pd.DataFrame({"id": [1], "val": [99]})
print(pd.merge(a, b2, on="id", suffixes=("_old", "_new")))Gösterge Sütunu
indicator=True, her satırın kaynağını gösteren bir _merge sütunu ekler: yalnızca sol tarafta, yalnızca sağ tarafta veya her ikisinde. Birleştirmeleri denetlemek için çok değerlidir.
print(pd.merge(left, right, on="id", how="outer", indicator=True))
# _merge tells you where each row came fromBirleştirme Sorunlarını Tanılama
Göstergeye göre filtrelemek, sessizce atılan verilerin yaygın bir nedeni olan eşleşmeyen anahtarları hızla ortaya çıkarır.
m = pd.merge(left, right, on="id", how="outer", indicator=True)
print(m[m["_merge"] != "both"]) # rows that did not matchZaman Birleştirmeleri için merge_asof
pd.merge_asof, tam eşleşme yerine en YAKIN anahtara göre birleştirir. Zaman serilerini hizalamak için özel olarak tasarlanmıştır; örneğin her işlemi kendisinden önceki en son kotasyonla eşleştirir. Her iki çerçeve de anahtara göre sıralanmış olmalıdır.
trades = pd.DataFrame({"time": [1, 3, 7], "price": [10, 11, 12]})
quotes = pd.DataFrame({"time": [0, 2, 5], "bid": [9, 10, 11]})
print(pd.merge_asof(trades, quotes, on="time"))merge_asof Yönü
Varsayılan olarak merge_asof GERİYE doğru bakar (anahtarın kendisinden küçük veya eşit olan en son değeri). Eşleştirme kuralını değiştirmek için direction="forward" veya "nearest" kullanın.
print(pd.merge_asof(trades, quotes, on="time", direction="nearest"))Doğru Birleştirmeyi Seçme
Yalnızca eşleşmeleri korumak için iç, birincil tabloya bilgi eklemek için sol, tüm birleşimi elde etmek için dış ve zamanla hizalanan (yaklaşık anahtarlı) birleştirmeler için merge_asof kullanın.
Hızlı Kontrol
Birleştirme bilginizi sınayın.
Özet
Birleştirme araçları:
how=iç / sol / dış, hangi anahtarların korunacağını belirler- anahtar sütunları için
onileleft_on/right_onarasındaki seçim suffixes, çakışan adları birbirinden ayırırindicator=True, satırların kaynaklarını denetler- en yakın anahtarlı zaman birleştirmeleri için
pd.merge_asof(önce sıralayın)
Sıkça Sorulan Sorular
“Gelişmiş Birleştirme ve Birleşim” dersi ücretsiz mi?
Evet — “Gelişmiş Birleştirme ve Birleşim” 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 Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“Gelişmiş Birleştirme ve Birleşim” dersinde ne öğreneceğim?
Zamana dayalı birleşimler için how, on, left_on/right_on, suffixes ile pd.merge() ve merge_asof. Learn AI with Python 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.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, 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.
“Gelişmiş Birleştirme ve Birleşim” 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 Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python 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
- GroupBy ve Toplulaştırma
- Özet Tabloları ve Çapraz Tablolama
- Gelişmiş Birleştirme ve Birleşim
- Pandas'ta Zaman Serileri