0
Yorum
5
Beğeni
0,0
Puan
496
Okunma
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