Veri Bilimi & Veri Manipülasyonu - Pandas
DataFrame Birleştirme - merge() Yöntemi
DataFrame birleştirme işlemi için merge() fonksiyonu kullanılır.
Söz dizimi: merge(right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)
- right, birleştirilecek nesneleri temsil eder. (Örn, df1,df2)
- how, birleşimin nasıl olacağını temsil eder. "left","right","outer","inner","cross" olmak üzere 5 farklı girdi alabilir. Default olarak "inner"dir.
- on, birleştirilmek istenen sütunları temsil eder.
Örneklerde kullanılmak üzere "df1" ve "df2" isminde iki farklı DataFrame oluşturalım.
import pandas as pd
#1.DataFrame
df1=pd.DataFrame({"bolge":["Marmara","İc Anadolu","Karedeniz"],
"sehir":["İstanbul","Ankara","Trabzon"]})
df1
Çıktı:
#2.DataFrame
df2=pd.DataFrame({"sehir":["İstanbul","Ankara","Trabzon"],
"nufus":[15460000,5663000,811901],
'plaka':["34","06","61"]})
df2
Çıktı:
1. "df1" de sehir sütunu ile "df2" deki sehir sütunu ortak olduğu için; 2 tablo da birleştirilebilir.
df1_2=pd.merge(df1,df2)
df1_2
Çıktı:
2. Birleştirmek istenilen ortak sütun belirterek de birleşim yapılabilir.
df1_2=pd.merge(df1,df2,on="sehir")
df1_2
Çıktı:
#3.DataFrame
df3=pd.DataFrame({"plaka":["34","06","61","16","06"],
"personel":["Enes","Sefa","Defne","Mustafa","Ali"]})
df3
Çıktı:
3. "df3" tablosundaki Mustafa personeli, 16 plakasının bir karşılığı olmadığı için birleşim tablosuna girmeyecektir.
df=pd.merge(df1_2,df3,how="inner") #default olarak da how="inner"dir
df
Çıktı:
4. "df3" tablosundaki Mustafa personeli, 16 plakasının bir karşılığı olmadığı halde "how='outer'" ile tabloda yerini alacaktır.
df1_2_3=pd.merge(df1_2,df3,how="outer")
df1_2_3
Çıktı: