Pandas Seri / DataFrame Birleştirme
Pandas, Python’da veri analizi yapmak için kullanýlan bir kütüphanedir. Pandas, verileri tablo þeklinde tutan Seri ve DataFrame adlý iki temel veri yapýsý sunar. Bu veri yapýlarýný birleþtirmek için farklý metotlar vardýr. Bunlardan bazýlarý þunlardýr:
- concat(): Bu metot, DataFrame’leri yatay veya dikey olarak birleþtirmek için kullanýlýr. Yani, DataFrame’leri birbirinin altýna veya yanýna ekler. Örneðin, aþaðýdaki iki DataFrame’i birleþtirmek için concat() kullanabiliriz:
python
import pandas as pd
df1 = pd.DataFrame({"isim": ["Ali", "Ayþe", "Mehmet"], "yaþ": [25, 30, 35]})
df2 = pd.DataFrame({"isim": ["Zeynep", "Ahmet", "Fatma"], "yaþ": [28, 32, 40]})
df3 = pd.concat([df1, df2]) # df1 ve df2’yi alt alta birleþtirir
df4 = pd.concat([df1, df2], axis=1) # df1 ve df2’yi yan yana birleþtirir
- merge(): Bu metot, DataFrame’leri ortak bir sütun veya indeks üzerinde birleþtirmek için kullanýlýr. Yani, DataFrame’leri birbirine baðlayan bir anahtar deðer vardýr. Örneðin, aþaðýdaki iki DataFrame’i birleþtirmek için merge() kullanabiliriz:
python
import pandas as pd
df1 = pd.DataFrame({"isim": ["Ali", "Ayþe", "Mehmet"], "yaþ": [25, 30, 35], "þehir": ["Ankara", "Ýstanbul", "Ýzmir"]})
df2 = pd.DataFrame({"isim": ["Ali", "Ayþe", "Mehmet"], "meslek": ["Mühendis", "Öðretmen", "Doktor"]})
df3 = pd.merge(df1, df2, on="isim") # df1 ve df2’yi isim sütunu üzerinde birleþtirir
- join(): Bu metot, DataFrame’leri bir anahtar sütun veya bir indeks üzerinde birleþtirmek için kullanýlýr. Ancak, merge() metodu ile farklý olarak, join() metodu DataFrame’lerin indekslerini kullanarak birleþtirme yapabilir. Örneðin, aþaðýdaki iki DataFrame’i birleþtirmek için join() kullanabiliriz:
python
import pandas as pd
df1 = pd.DataFrame({"isim": ["Ali", "Ayþe", "Mehmet"], "yaþ": [25, 30, 35]}, index=["a", "b", "c"])
df2 = pd.DataFrame({"þehir": ["Ankara", "Ýstanbul", "Ýzmir"], "meslek": ["Mühendis", "Öðretmen", "Doktor"]}, index=["a", "b", "c"])
df3 = df1.join(df2) # df1 ve df2’yi indekslerine göre birleþtirir
25. UYGULAMA
Ýki DataFrame nesnesini concat metodunu kullanarak birleþtirme iþlemi yapmak için aþaðýdaki iþlem adýmlarýný uygulayýn.
1. Adým: Ýki adet rastgele sayýlardan oluþan 5x4’lük NumPy dizisi oluþturunuz.
python
rastgele1=np.random.randint(1,10,size=(5,4))
rastgele2=np.random.randint(10,20,size=(5,4))
2. Adým: Oluþturulan NumPy dizilerinden DataFrame oluþturunuz ve sütun adlarýný deðiþtiriniz.
python
df1=pd.DataFrame(rastgele1,columns=["a","b","c","d"])
df2=pd.DataFrame(rastgele2,columns=["a","b","c","d"])
3. Adým: Oluþturulan DataFrame nesnelerini concat metodunu kullanarak birleþtirme iþlemini yapýnýz.
python
df=pd.concat([df1,df2])
df
4. Adým: Birleþtirme iþlemi sonucunda indeks numaralarýný düzenlemek için concat metodunun ignore_index parametresini kullanýnýz.
python
df=pd.concat([df1,df2], ignore_index=True)
df
5. Adým: Farklý sütun ismine sahip olan DataFrame nesnelerini birleþtirme iþlemi için oluþturulan ikinci DataFrame nesnesinin sütun ismini deðiþtiriniz.
python
df2.columns=["a","b","e","f"]
df=pd.concat([df1,df2],ignore_index=True)
df
6. Adým: Ýki DataFrame nesnesinde ortak olan sütun adlarýna göre birleþtirme iþlemi için concat metodunun join parametresini kullanýnýz.
python
df=pd.concat([df1,df2],ignore_index=True, join="inner")
df
Verilen adýmlarý takip ederek, rastgele sayýlardan oluþturulan iki DataFrame nesnesini concat metodunu kullanarak birleþtirme iþlemi yapmak için aþaðýdaki Python kodunu yazabilirsiniz:
# Pandas kütüphanesini içe aktarma
import pandas as pd
# NumPy kütüphanesini içe aktarma
import numpy as np
# Ýki adet rastgele sayýlardan oluþan 5x4’lük NumPy dizisi oluþturma
rastgele1 = np.random.randint(1,10,size=(5,4))
rastgele2 = np.random.randint(10,20,size=(5,4))
# Oluþturulan NumPy dizilerinden DataFrame oluþturma ve sütun adlarýný deðiþtirme
df1 = pd.DataFrame(rastgele1,columns=["a","b","c","d"])
df2 = pd.DataFrame(rastgele2,columns=["a","b","c","d"])
# Oluþturulan DataFrame nesnelerini concat metodunu kullanarak birleþtirme iþlemi yapma
df = pd.concat([df1,df2])
# Birleþtirme iþlemi sonucunda indeks numaralarýný düzenlemek için concat metodunun ignore_index parametresini kullanma
df = pd.concat([df1,df2], ignore_index=True)
# Farklý sütun ismine sahip olan DataFrame nesnelerini birleþtirme iþlemi için oluþturulan ikinci DataFrame nesnesinin sütun ismini deðiþtirme
df2.columns = ["a","b","e","f"]
df = pd.concat([df1,df2],ignore_index=True)
# Ýki DataFrame nesnesinde ortak olan sütun adlarýna göre birleþtirme iþlemi için concat metodunun join parametresini kullanma
df = pd.concat([df1,df2],ignore_index=True, join="inner")
# Sonuçlarý ekrana yazdýrma
print(df)
26. UYGULAMA
Ýki DataFrame nesnesini merge metodunu kullanarak birleþtirme iþlemi yapmak için aþaðýdaki iþlem adýmlarýný takip ediniz.
1. Adým: Ýki adet DataFrame oluþturunuz.
ust = pd.DataFrame({
"anahtar": ["B0", "B1", "B2", "B3"],
"A": ["A0", "A1", "A2", "A3"],
"B": ["B0", "B1", "B2", "B3"],
})
alt = pd.DataFrame({
"anahtar": ["B0", "B1", "B4", "B5"],
"C": ["C0", "C1", "C2", "C3"],
"D": ["D0", "D1", "D2", "D3"],
})
2. Adým: Oluþturulan DataFrame nesnelerinin anahtar adýndaki sütun üzerinden merge metodunu kullanarak birleþtirme iþlemini yapýnýz.
birlesim = pd.merge(ust, alt, on="anahtar")
birlesim
3. Adým: Oluþturulan alt isimli DataFrame nesnesini anahtar sütunundaki B4 deðerini B2 olarak deðiþtirip birleþtirme iþlemini tekrar yaparak birleþtirme sonucunu gözlemleyiniz.
alt.iloc[[2],[0]]="B2"
birlesim = pd.merge(ust, alt, on="anahtar")
birlesim
4. Adým: Birleþtirme iþleminde anahtar sütundaki bilgiler üzerinden üstteki DataFrame nesnesine göre how argümaný ile yapýnýz.
birlesim = pd.merge(ust, alt, on="anahtar", how="left")
birlesim
5. Adým: Birleþtirme iþlemini anahtar sütundaki bilgiler üzerinden alttaki DataFrame nesnesine göre how parametresi ile yapýnýz.
birlesim = pd.merge(ust, alt, on="anahtar", how="right")
birlesim
DataFrame nesnelerini birleþtirmek için aþaðýdaki Python kodunu kullanabilirsiniz.
python
# pandas kütüphanesini içe aktaralým
import pandas as pd
# Ýki adet DataFrame oluþturalým
ust = pd.DataFrame({
"anahtar": ["B0", "B1", "B2", "B3"],
"A": ["A0", "A1", "A2", "A3"],
"B": ["B0", "B1", "B2", "B3"],
})
alt = pd.DataFrame({
"anahtar": ["B0", "B1", "B4", "B5"],
"C": ["C0", "C1", "C2", "C3"],
"D": ["D0", "D1", "D2", "D3"],
})
# DataFrame nesnelerini anahtar sütunu üzerinden birleþtirelim
birlesim = pd.merge(ust, alt, on="anahtar")
print(birlesim)
# alt DataFrame nesnesinin anahtar sütunundaki B4 deðerini B2 olarak deðiþtirelim
alt.iloc[[2],[0]]="B2"
birlesim = pd.merge(ust, alt, on="anahtar")
print(birlesim)
# Birleþtirme iþlemini üst DataFrame nesnesine göre yapalým
birlesim = pd.merge(ust, alt, on="anahtar", how="left")
print(birlesim)
# Birleþtirme iþlemini alt DataFrame nesnesine göre yapalým
birlesim = pd.merge(ust, alt, on="anahtar", how="right")
print(birlesim)
Kodun çýktýsý þöyle olacaktýr:
anahtar A B C D
0 B0 A0 B0 C0 D0
1 B1 A1 B1 C1 D1
anahtar A B C D
0 B0 A0 B0 C0 D0
1 B1 A1 B1 C1 D1
2 B2 A2 B2 C2 D2
anahtar A B C D
0 B0 A0 B0 C0 D0
1 B1 A1 B1 C1 D1
2 B2 A2 B2 C2 D2
3 B3 A3 B3 NaN NaN
anahtar A B C D
0 B0 A0 B0 C0 D0
1 B1 A1 B1 C1 D1
2 B2 A2 B2 C2 D2
3 B3 A3 B3 NaN NaN
4 B5 NaN NaN C3 D3
27. UYGULAMA
1. Adým: Ýki adet DataFrame oluþturunuz. Örneðin, þöyle yapabilirsiniz:
python
df1 = pd.DataFrame(
{"X": ["X0", "X1", "X3"], "Y": ["Y0","Y1","Y3"]},
index=["K0", "K1", "K3"])
df1
df2 = pd.DataFrame(
{"Z": ["Z0", "Z1", "Z2"], "W": ["W0","W1","W2"]},
index=["K0", "K1", "K2"])
df2
2. Adým: Oluþturulan DataFrame nesnelerinin birleþtirme iþlemini join metodunu kullanarak yapýnýz. Örneðin, þöyle yapabilirsiniz:
python
birlesim = df1.join(df2)
birlesim
3. Adým: Oluþturulan DataFrame nesnelerini join metodunun how=”outer” parametresini kullanarak birleþtirme iþlemini yapýnýz. Örneðin, þöyle yapabilirsiniz:
python
birlesim = df1.join(df2, how="outer")
birlesim
4. Adým: Pandas how parametresinin deðerini inner olarak deðiþtirerek sonuçlarý gözlemleyiniz. Örneðin, þöyle yapabilirsiniz:
python
birlesim = df1.join(df2, how="inner")
birlesim
Sosyal Medyada Paylaşın:
(c) Bu şiirin her türlü telif hakkı şairin kendisine ve/veya temsilcilerine aittir.