Pandas - String_Metotlari
Cum 15 Temmuz 2022String 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: iş-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.