Pandas - String_Metotlari

String Metotları

Python ile kodlama yaparken, metinsel ifadelerle uğraştığımızda kullandığımız string metotlarını hatırlarsınız. Örneğin, Metinlerin tümünü büyük harfe ya da küçük harfe çevirmek. Bu tür string metotları Pandas ile kulanmak ve veri çerçevesine uygulamak mümkün. Bunun için str ifadesini kullanabiliriz.

Önce Bir Veri Çerçevesi oluşturalım ve gözatalım.

sozluk = {"isim" : ["Mustafa", "Halil", "Burak", "Emre", "Ersin", "Sertaç", "Furkan","Murat","Ahmet","Abdülkadir"],
                    "yaş" : [25, 38, 41, 23, 37, 52, 30, 23, 40, 38],
                   "iş-meslek" : ["mühendis", "programcı", "akademisyen", "yönetici","amir","mühendis", "yönetici","müdür","veteriner","yönetici"]}
veri = pd.DataFrame(sozluk)
print(veri)
isim yaş iş-meslek
0 Mustafa 25 mühendis
1 Halil 38 programcı
2 Burak 41 akademisyen
3 Emre 23 yönetici
4 Ersin 37 amir
5 Sertaç 52 mühendis
6 Furkan 30 yönetici
7 Murat 23 müdür
8 Ahmet 40 veteriner
9 Abdülkadir 38 yönetici

upper()

Veri çerçevemizim sütun başlıklarının tüm karakterlerini büyük harfe çevirelim.

veri.columns = veri.columns.str.upper()
print(veri)
ISIM YAŞ IŞ-MESLEK
0 Mustafa 25 mühendis
1 Halil 38 programci
2 Burak 41 akademisyen
3 Emre 23 yönetici
4 Ersin 37 amir
5 Sertaç 52 mühendis
6 Furkan 30 yönetici
7 Murat 23 müdür
8 Ahmet 40 veteriner
9 Abdülkadir 38 yönetici

Şimdi de Veri Çerçevemizin iş-meslek sütunundaki tüm metinleri büyük harfe çevirip ekrana yazdıralım.

print(veri["iş-meslek"].str.upper())
0       MÜHENDIS
1      PROGRAMCI
2    AKADEMISYEN
3       YÖNETICI
4           AMIR
5       MÜHENDIS
6       YÖNETICI
7          MÜDÜR
8      VETERINER
9       YÖNETICI
Name: -meslek, dtype: object

Uyguladığımız metot sonrası, veri çerçevemizi tekrar çağırdığımızda, iş-meslek sütunundaki metinlerin değişmediğini, eski halinde kaldığını göreceğiz. Bunu sebebi, yaptığımız değişikliği bir değişken olarak alıp, iş-meslek sütununa atamamaktır. İfade etmeye çalıştığım şeyin, aşağıdaki satırda daha net anlaşılacağını düşünüyorum. Atama işlem sonrası Veri çerçevemizi çağırıp değişikiğin uygulandığını görüyoruz.

veri["iş-meslek"] = veri["iş-meslek"].str.upper()
print(veri)
ISIM YAŞ IŞ-MESLEK
0 Mustafa 25 MÜHENDIS
1 Halil 38 PROGRAMCI
2 Burak 41 AKADEMISYEN
3 Emre 23 YÖNETICI
4 Ersin 37 AMIR
5 Sertaç 52 MÜHENDIS
6 Furkan 30 YÖNETICI
7 Murat 23 MÜDÜR
8 Ahmet 40 VETERINER
9 Abdülkadir 38 YÖNETICI

lower()

İlk oluşturulan veri çerçevemizdeki isim sütunundaki verilerin tüm karakterlerini küçük harfe çevirelim.

veri.isim = veri.isim.str.lower()

print(veri)
isim yaş iş-meslek
0 mustafa 25 mühendis
1 halil 38 programcı
2 burak 41 akademisyen
3 emre 23 yönetici
4 ersin 37 amir
5 sertaç 52 mühendis
6 furkan 30 yönetici
7 murat 23 müdür
8 ahmet 40 veteriner
9 abdülkadir 38 yönetici

capitalize()

İlk oluşturulan veri çerçevemizdeki iş-meslek Sütunundaki verilerin sadece baş harflerini büyük yapalım.

veri["iş-meslek"] = veri["iş-meslek"].str.capitalize()
print(veri)
isim yaş iş-meslek
0 Mustafa 25 Mühendis
1 Halil 38 Programci
2 Burak 41 Akademisyen
3 Emre 23 Yönetici
4 Ersin 37 Amir
5 Sertaç 52 Mühendis
6 Furkan 30 Yönetici
7 Murat 23 Müdür
8 Ahmet 40 Veteriner
9 Abdülkadir 38 Yönetici

contains

String metotlarından biri olan contains ile metin içerisinde içeren kelime ya da kelimeleri aratabiliyoruz. lower() metodu ile isim sütunundaki tüm karakterleri küçük harfe çevirelim ve ardından isim içinde er ibaresi bulunan tüm verileri filtreleyelim.

veri.isim = veri.isim.str.lower()
iceren = veri.isim.str.contains("er")
print(veri[iceren])
isim yaş iş-meslek
4 ersin 37 amir
5 sertaç 52 mühendis

Görüldüğü üzere 4. ve 5. indekslerdeki ersin ve sertaç ifadelerinin içerisinde er ibaresi bulunduğu için filtre işlemi sonucu yukarıdaki çıktıya ulaşıyoruz.

Benzer sonuca aşağıdaki kod ile de ulaşabiliriz.

iceren = veri.isim.str.lower().str.contains("er")
print(veri[iceren])
isim yaş iş-meslek
4 Ersin 37 amir
5 Sertaç 52 mühendis

Son iki tabloyu incelerseniz İsim sütunundaki verilerin büyük-küçük harf değerlerinin farklı olduğudur.