Bu makalede Pandas python'da birleştirme işlevinin, concat işlevinin ve farklı birleştirme işlemlerinin kullanımlarını keşfedeceğiz. Tüm örnekler pycharm editörü aracılığıyla yürütülecektir. Ayrıntılarla başlayalım!
Birleştirme İşlevinin Kullanımı
Birleştirme () işlevinin yaygın olarak kullanılan temel sözdizimi aşağıda verilmiştir:
pd.merge(df_obj1, df_obj2, how='inner', on=Yok, left_on=Yok, right_on=Yok)Parametrelerin detaylarını açıklayalım:
İlk iki df_obj1 ve df_obj2 argümanlar, DataFrame nesnelerinin veya tablolarının adlarıdır.
“Nasıl” parametresi, “sol, sağ, dış ve iç” gibi farklı birleştirme işlemleri için kullanılır. Birleştirme işlevi varsayılan olarak "iç" birleştirme işlemini kullanır.
Argüman "açık" birleştirme işleminin gerçekleştirildiği sütun adını içerir. Bu sütun, her iki DataFrame nesnesinde de bulunmalıdır.
"left_on" ve "right_on" bağımsız değişkenlerinde, "left_on", sol DataFrame'deki anahtar olarak sütun adının adıdır. "right_on", sağ DataFrame'den anahtar olarak kullanılan sütunun adıdır.
DataFrame'leri birleştirme kavramını detaylandırmak için iki DataFrame nesnesi aldık - ürün ve müşteri. DataFrame ürününde aşağıdaki ayrıntılar bulunur:
ürün=pd.Veri çerçevesi("Ürün_Kimliği":[101,102,103,104,105,106,107],
'Ürün_Adı':['kulaklıklar','Çanta','Ayakkabılar','Akıllı telefon','Diş fırçası','kol saati','Dizüstü bilgisayar'],
'Kategori':['Elektronik','Moda','Moda','Elektronik','Bakkal','Moda','Elektronik'],
'Fiyat':[300.0,1000.50,2000.0,21999.0,145.0.1500.0,90999.0],
'Seller_City':['İslamabad','Lahor','Karaçi','Rawalpindi','İslamabad','Karaçi','Faisalabad']
)
Müşteri DataFrame aşağıdaki ayrıntıları içerir:
müşteri=pd.Veri çerçevesi('Kimlik':[1,2,3,4,5,6,7,8,9],
'Müşteri_Adı':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Yaş':[20,21,15,10,31,52,15,18,16],
'Ürün_Kimliği':[101,0,106,0,103,104,0,0,107],
'Ürün_Satın Alınan':['kulaklıklar','NA','kol saati','NA','Ayakkabılar','Akıllı telefon','NA','NA','Dizüstü Bilgisayar'],
'Customer_City':['Lahor','İslamabad','Faisalabad','Karaçi','Karaçi','İslamabad','Rawalpindi','İslamabad',
'Lahor']
)
Bir Anahtarda DataFrames'e Katılın
İnternette satılan ürünleri ve bunları satın alan müşterileri kolayca bulabiliriz. Bu nedenle, bir "Product_ID" anahtarına dayanarak, her iki DataFrame'de de iç birleştirme işlemini aşağıdaki gibi gerçekleştirdik:
# Pandalar kitaplığını içe aktarpandaları pd olarak içe aktar
ürün=pd.Veri çerçevesi(
"Ürün_Kimliği":[101,102,103,104,105,106,107],
'Ürün_Adı':['kulaklıklar','Çanta','Ayakkabılar','Akıllı telefon','Diş fırçası','kol saati','Dizüstü bilgisayar'],
'Kategori':['Elektronik','Moda','Moda','Elektronik','Bakkal','Moda','Elektronik'],
'Fiyat':[300.0,1000.50,2000.0,21999.0,145.0.1500.0,90999.0],
'Seller_City':['İslamabad','Lahor','Karaçi','Rawalpindi','İslamabad','Karaçi','Faysalabad']
)
müşteri=pd.Veri çerçevesi(
'Kimlik':[1,2,3,4,5,6,7,8,9],
'Müşteri_Adı':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Yaş':[20,21,15,10,31,52,15,18,16],
'Ürün_Kimliği':[101,0,106,0,103,104,0,0,107],
'Ürün_Satın Alınan':['kulaklıklar','NA','kol saati','NA','Ayakkabılar','Akıllı telefon','NA','NA','Dizüstü Bilgisayar'],
'Şehir':['Lahor','İslamabad','Faisalabad','Karaçi','Karaçi','İslamabad','Rawalpindi','İslamabad',
'Lahor']
)
yazdır (pd.birleştirme(ürün,müşteri,on='Ürün_Kimliği'))
Yukarıdaki kodu çalıştırdıktan sonra pencerede aşağıdaki çıktı görüntülenir:
Her iki DataFrame'de de sütunlar farklıysa, her bir sütunun adını left_on ve right_on bağımsız değişkenleriyle aşağıdaki gibi açıkça yazın:
pandaları pd olarak içe aktarürün=pd.Veri çerçevesi(
"Ürün_Kimliği":[101,102,103,104,105,106,107],
'Ürün_Adı':['kulaklıklar','Çanta','Ayakkabılar','Akıllı telefon','Diş fırçası','kol saati','Dizüstü bilgisayar'],
'Kategori':['Elektronik','Moda','Moda','Elektronik','Bakkal','Moda','Elektronik'],
'Fiyat':[300.0,1000.50,2000.0,21999.0,145.0.1500.0,90999.0],
'Seller_City':['İslamabad','Lahor','Karaçi','Rawalpindi','İslamabad','Karaçi','Faisalabad']
)
müşteri=pd.Veri çerçevesi(
'Kimlik':[1,2,3,4,5,6,7,8,9],
'Müşteri_Adı':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Yaş':[20,21,15,10,31,52,15,18,16],
'Ürün_Kimliği':[101,0,106,0,103,104,0,0,107],
'Ürün_Satın Alınan':['kulaklıklar','NA','kol saati','NA','Ayakkabılar','Akıllı telefon','NA','NA','Dizüstü Bilgisayar'],
'Şehir':['Lahor','İslamabad','Faisalabad','Karaçi','Karaçi','İslamabad','Rawalpindi','İslamabad',
'Lahor']
)
yazdır (pd.birleştirme(ürün,müşteri,left_on='Ürün_Adı',right_on='Ürün_Satın Alınan'))
Ekranda aşağıdaki çıktı görüntülenecektir:
Nasıl Argümanını Kullanarak DataFrames'a Katılın
Aşağıdaki örneklerde, Pandas DataFrame'lerde dört tür Birleştirme işlemini açıklayacağız:
- İç birleşim
- Dış Birleştirme
- Sol yönden katılım
- Sağ Katıl
Pandalarda İç Birleşim
Birden çok tuşta iç birleştirme gerçekleştirebiliriz. Ürün satışları hakkında daha fazla ayrıntı görüntülemek için, ürün DataFrame ve Product_ID'den Product_ID, Seller_City ve satıcının veya müşterinin aynı şehre ait olduğunu bulmak için müşteri DataFrame'den "Customer_City" alın. Aşağıdaki kod satırlarını uygulayın:
# Pandalar kitaplığını içe aktarpandaları pd olarak içe aktar
ürün=pd.Veri çerçevesi(
"Ürün_Kimliği":[101,102,103,104,105,106,107],
'Ürün_Adı':['kulaklıklar','Çanta','Ayakkabılar','Akıllı telefon','Diş fırçası','kol saati','Dizüstü bilgisayar'],
'Kategori':['Elektronik','Moda','Moda','Elektronik','Bakkal','Moda','Elektronik'],
'Fiyat':[300.0,1000.50,2000.0,21999.0,145.0.1500.0,90999.0],
'Seller_City':['İslamabad','Lahor','Karaçi','Rawalpindi','İslamabad','Karaçi','Faysalabad']
)
müşteri=pd.Veri çerçevesi(
'Kimlik':[1,2,3,4,5,6,7,8,9],
'Müşteri_Adı':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Yaş':[20,21,15,10,31,52,15,18,16],
'Ürün_Kimliği':[101,0,106,0,103,104,0,0,107],
'Ürün_Satın Alınan':['kulaklıklar','NA','kol saati','NA','Ayakkabılar','Akıllı telefon','NA','NA','Dizüstü Bilgisayar'],
'Customer_City':['Lahor','İslamabad','Faisalabad','Karaçi','Karaçi','İslamabad','Ravalpindi','İslamabad',
'Lahor']
)
yazdır (pd.merge(product,customer,how='inner',left_on=['Product_ID','Seller_City'],right_on=['Product_ID','Customer_City']))
Yukarıdaki kodu çalıştırdıktan sonra pencerede aşağıdaki sonuç gösterilir:
Pandalarda tam/dış birleştirme
Dış birleşimler, eşleşmeleri olan hem sağ hem de sol DataFrames değerlerini döndürür. Bu nedenle, dış birleştirmeyi uygulamak için "nasıl" argümanını dış olarak ayarlayın. Dış birleştirme kavramını kullanarak yukarıdaki örneği değiştirelim. Aşağıdaki kodda, hem sol hem de sağ DataFrames'in tüm değerlerini döndürecektir.
# Pandalar kitaplığını içe aktarpandaları pd olarak içe aktar
ürün=pd.Veri çerçevesi(
"Ürün_Kimliği":[101,102,103,104,105,106,107],
'Ürün_Adı':['kulaklıklar','Çanta','Ayakkabılar','Akıllı telefon','Diş fırçası','kol saati','Dizüstü bilgisayar'],
'Kategori':['Elektronik','Moda','Moda','Elektronik','Bakkal','Moda','Elektronik'],
'Fiyat':[300.0,1000.50,2000.0,21999.0,145.0.1500.0,90999.0],
'Seller_City':['İslamabad','Lahor','Karaçi','Rawalpindi','İslamabad','Karaçi','Faisalabad']
)
müşteri=pd.Veri çerçevesi(
'Kimlik':[1,2,3,4,5,6,7,8,9],
'Müşteri_Adı':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Yaş':[20,21,15,10,31,52,15,18,16],
'Ürün_Kimliği':[101,0,106,0,103,104,0,0,107],
'Ürün_Satın Alınan':['kulaklıklar','NA','kol saati','NA','Ayakkabılar','Akıllı telefon','NA','NA','Dizüstü Bilgisayar'],
'Customer_City':['Lahor','İslamabad','Faisalabad','Karaçi','Karaçi','İslamabad','Rawalpindi','İslamabad',
'Lahor']
)
yazdır (pd.merge(product,customer,on='Product_ID',how='outer'))
Gösterge argümanını “True” olarak ayarlayın. Sonunda yeni “_merge” sütununun eklendiğini fark edeceksiniz.
# Pandalar kitaplığını içe aktarpandaları pd olarak içe aktar
ürün=pd.Veri çerçevesi(
"Ürün_Kimliği":[101,102,103,104,105,106,107],
'Ürün_Adı':['kulaklıklar','Çanta','Ayakkabılar','Akıllı telefon','Diş fırçası','kol saati','Dizüstü bilgisayar'],
'Kategori':['Elektronik','Moda','Moda','Elektronik','Bakkal','Moda','Elektronik'],
'Fiyat':[300.0,1000.50,2000.0,21999.0,145.0.1500.0,90999.0],
'Seller_City':['İslamabad','Lahor','Karaçi','Rawalpindi','İslamabad','Karaçi','Faisalabad']
)
müşteri=pd.Veri çerçevesi(
'Kimlik':[1,2,3,4,5,6,7,8,9],
'Müşteri_Adı':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Yaş':[20,21,15,10,31,52,15,18,16],
'Ürün_Kimliği':[101,0,106,0,103,104,0,0,107],
'Ürün_Satın Alınan':['kulaklıklar','NA','kol saati','NA','Ayakkabılar','Akıllı telefon','NA','NA','Dizüstü Bilgisayar'],
'Customer_City':['Lahor','İslamabad','Faisalabad','Karaçi','Karaçi','İslamabad','Rawalpindi','İslamabad',
'Lahor']
)
yazdır (pd.merge(product,customer,on='Product_ID',how='outer',indicator=True))
Aşağıdaki ekran görüntüsünde görebileceğiniz gibi, birleştirme sütun değerleri hangi satırın hangi DataFrame'e ait olduğunu açıklar.
Pandalarda Sol Birleştirme
Sol birleştirme yalnızca sol DataFrame'in satırlarını görüntüler. Dış birleştirmeye benzer. Öyleyse, 'nasıl' argüman değerini “sol” ile değiştirin. Sol birleştirme fikrini uygulamak için aşağıdaki kodu deneyin:
# Pandalar kitaplığını içe aktarpandaları pd olarak içe aktar
ürün=pd.Veri çerçevesi(
"Ürün_Kimliği":[101,102,103,104,105,106,107],
'Ürün_Adı':['kulaklıklar','Çanta','Ayakkabılar','Akıllı telefon','Diş fırçası','kol saati','Dizüstü bilgisayar'],
'Kategori':['Elektronik','Moda','Moda','Elektronik','Bakkal','Moda','Elektronik'],
'Fiyat':[300.0,1000.50,2000.0,21999.0,145.0.1500.0,90999.0],
'Seller_City':['İslamabad','Lahor','Karaçi','Rawalpindi','İslamabad','Karaçi','Faisalabad']
)
müşteri=pd.Veri çerçevesi(
'Kimlik':[1,2,3,4,5,6,7,8,9],
'Müşteri_Adı':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Yaş':[20,21,15,10,31,52,15,18,16],
'Ürün_Kimliği':[101,0,106,0,103,104,0,0,107],
'Ürün_Satın Alınan':['kulaklıklar','NA','kol saati','NA','Ayakkabılar','Akıllı telefon','NA','NA','Dizüstü Bilgisayar'],
'Customer_City':['Lahor','İslamabad','Faisalabad','Karaçi','Karaçi','İslamabad','Ravalpindi','İslamabad',
'Lahor']
)
yazdır (pd.merge(product,customer,on='Product_ID',how='left'))
Pandalarda Sağa Katılma
Sağ birleştirme, sol DataFrame'de de yaygın olan satırlarla birlikte tüm sağ DataFrame satırlarını sağda tutar. Bu durumda, "nasıl" argümanı "doğru" değer olarak ayarlanır. Doğru birleştirme konseptini uygulamak için aşağıdaki kodu çalıştırın:
# Pandalar kitaplığını içe aktarpandaları pd olarak içe aktar
ürün=pd.Veri çerçevesi(
"Ürün_Kimliği":[101,102,103,104,105,106,107],
'Ürün_Adı':['kulaklıklar','Çanta','Ayakkabılar','Akıllı telefon','Diş fırçası','kol saati','Dizüstü bilgisayar'],
'Kategori':['Elektronik','Moda','Moda','Elektronik','Bakkal','Moda','Elektronik'],
'Fiyat':[300.0,1000.50,2000.0,21999.0,145.0.1500.0,90999.0],
'Seller_City':['İslamabad','Lahor','Karaçi','Rawalpindi','İslamabad','Karaçi','Faisalabad']
)
müşteri=pd.Veri çerçevesi(
'Kimlik':[1,2,3,4,5,6,7,8,9],
'Müşteri_Adı':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Yaş':[20,21,15,10,31,52,15,18,16],
'Ürün_Kimliği':[101,0,106,0,103,104,0,0,107],
'Ürün_Satın Alınan':['kulaklıklar','NA','kol saati','NA','Ayakkabılar','Akıllı telefon','NA','NA','Dizüstü Bilgisayar'],
'Customer_City':['Lahor','İslamabad','Faisalabad','Karaçi','Karaçi','İslamabad','Ravalpindi','İslamabad',
'Lahor']
)
yazdır (pd.merge(product,customer,on='Product_ID',nasıl='doğru'))
Aşağıdaki ekran görüntüsünde, yukarıdaki kodu çalıştırdıktan sonra sonucu görebilirsiniz:
Concat () işlevini kullanarak DataFrame'lerin birleştirilmesi
concat işlevi kullanılarak iki DataFrame birleştirilebilir. Birleştirme işlevinin temel sözdizimi aşağıda verilmiştir:
pd.concat([df_obj1, df_obj_2]))İki DataFrames nesnesi argüman olarak geçecek.
Concat işlevi aracılığıyla hem DataFrames ürününü hem de müşteriyi birleştirelim. İki DataFrame'i birleştirmek için aşağıdaki kod satırlarını çalıştırın:
# Pandalar kitaplığını içe aktarpandaları pd olarak içe aktar
ürün=pd.Veri çerçevesi(
"Ürün_Kimliği":[101,102,103,104,105,106,107],
'Ürün_Adı':['kulaklıklar','Çanta','Ayakkabılar','Akıllı telefon','Diş fırçası','kol saati','Dizüstü bilgisayar'],
'Kategori':['Elektronik','Moda','Moda','Elektronik','Bakkal','Moda','Elektronik'],
'Fiyat':[300.0,1000.50,2000.0,21999.0,145.0.1500.0,90999.0],
'Seller_City':['İslamabad','Lahor','Karaçi','Rawalpindi','İslamabad','Karaçi','Faisalabad']
)
müşteri=pd.Veri çerçevesi(
'Kimlik':[1,2,3,4,5,6,7,8,9],
'Müşteri_Adı':['Sara','Sana','Ali','Raees','Mahwish','Umar','Mirha','Asif','Maria'],
'Yaş':[20,21,15,10,31,52,15,18,16],
'Ürün_Kimliği':[101,0,106,0,103,104,0,0,107],
'Ürün_Satın Alınan':['kulaklıklar','NA','kol saati','NA','Ayakkabılar','Akıllı telefon','NA','NA','Dizüstü Bilgisayar'],
'Customer_City':['Lahor','İslamabad','Faisalabad','Karaçi','Karaçi','İslamabad','Ravalpindi','İslamabad',
'Lahor']
)
yazdır (pd.concat([ürün,müşteri]))
Sonuç:
Bu yazıda, Pandas python'da birleştirme () işlevi, concat () işlevleri ve birleştirme işleminin uygulanmasını tartıştık. Yukarıdaki yöntemleri kullanarak iki DataFrame'i kolayca birleştirebilir ve öğrenmiş olabilirsiniz. Pandalarda “iç, dış, sol ve sağ” Birleştirme işlemlerinin nasıl uygulanacağı. Umarım bu eğitim, farklı DataFrames türlerinde birleştirme işlemlerini uygulamada size rehberlik edecektir. Herhangi bir hata durumunda lütfen yaşadığınız zorlukları bize bildirin.