Python Pandas ile Temel İşlemler

Bölüm 5 – String

Bu yazımızda string ağırlıklı örnekler vereceğim. Veri hazırlığı ve temizliğinde string düzenlemeleri sıkça yapılmaktadır. Büyük harf küçük harf, boşlukları temizleme, içinde geçeni bulma vb. Konuyla ilgili çok daha fazla bilgi şu adresten bulunabilir.

Veri setimizi indirelim.

import pandas as pd
filmListesi = pd.read_csv("https://raw.githubusercontent.com/erkansirin78/datasets/master/imdb_1000.csv")
filmListesi.head()
 star_ratingtitlecontent_ratinggenredurationactors_list
09.3The Shawshank RedemptionRCrime142[u’Tim Robbins’, u’Morgan Freeman’, u’Bob Gunt…
19.2The GodfatherRCrime175[u’Marlon Brando’, u’Al Pacino’, u’James Caan’]
29.1The Godfather: Part IIRCrime200[u’Al Pacino’, u’Robert De Niro’, u’Robert Duv…
39.0The Dark KnightPG-13Action152[u’Christian Bale’, u’Heath Ledger’, u’Aaron E…
48.9Pulp FictionRCrime154[u’John Travolta’, u’Uma Thurman’, u’Samuel L….

Tablomuzun ilk beş satırı yukarıda görüldüğü gibidir. Hadi basitten başlayalım ve title_upper adında yeni bir sütuna title büyük harflerle koyalım.

filmListesi['title_buyuk'] = filmListesi.title.str.upper()
filmListesi.head()
 star_ratingtitlecontent_ratinggenredurationactors_listtitle_buyuk
09.3The Shawshank RedemptionRCrime142[u’Tim Robbins’, u’Morgan Freeman’, u’Bob Gunt…THE SHAWSHANK REDEMPTION
19.2The GodfatherRCrime175[u’Marlon Brando’, u’Al Pacino’, u’James Caan’]THE GODFATHER
29.1The Godfather: Part IIRCrime200[u’Al Pacino’, u’Robert De Niro’, u’Robert Duv…THE GODFATHER: PART II
39.0The Dark KnightPG-13Action152[u’Christian Bale’, u’Heath Ledger’, u’Aaron E…THE DARK KNIGHT
48.9Pulp FictionRCrime154[u’John Travolta’, u’Uma Thurman’, u’Samuel L….PULP FICTION

Şimdi içinde John Travolta içeren satırları görelim.

filmListesi[filmListesi.actors_list.str.contains('John Travolta')]
 star_ratingtitlecontent_ratinggenredurationactors_listtitle_buyuk
48.9Pulp FictionRCrime154[u’John Travolta’, u’Uma Thurman’, u’Samuel L….PULP FICTION

Yukarıda bir önceki yazıda ele aldığımız filtrelemeyi kullandık.

Şimdi biraz replace() metoduyla birkaç örnek yapalım. actor_list‘te köşeli parantezler hiç güzel görünmüyor. Okunabilirliği arttırmak adına onları kaldıralım.

filmListesi.actors_list.str.replace('[','').str.replace(']','')
0       u'Tim Robbins', u'Morgan Freeman', u'Bob Gunton'
1          u'Marlon Brando', u'Al Pacino', u'James Caan'
2      u'Al Pacino', u'Robert De Niro', u'Robert Duvall'
3      u'Christian Bale', u'Heath Ledger', u'Aaron Ec...
4      u'John Travolta', u'Uma Thurman', u'Samuel L. ...
5       u'Henry Fonda', u'Lee J. Cobb', u'Martin Balsam'
6      u'Clint Eastwood', u'Eli Wallach', u'Lee Van C...
7      u'Elijah Wood', u'Viggo Mortensen', u'Ian McKe...
8      u'Liam Neeson', u'Ralph Fiennes', u'Ben Kingsley'
9      u'Brad Pitt', u'Edward Norton', u'Helena Bonha...
10     u'Elijah Wood', u'Ian McKellen', u'Orlando Bloom'
11     u'Leonardo DiCaprio', u'Joseph Gordon-Levitt',...
12     u'Mark Hamill', u'Harrison Ford', u'Carrie Fis...
13         u'Tom Hanks', u'Robin Wright', u'Gary Sinise'
14     u'Elijah Wood', u'Ian McKellen', u'Viggo Morte...

Gördüğümüz gibi köşeli parantezler gitti. Şimdi köşeli parantezlere ilaveten u’ karakterlerini de boşlukla değiştirelim.

filmListesi.actors_list.str.replace("u'",'').str.replace('[','').str.replace(']','').str.replace("'",'')
0                Tim Robbins, Morgan Freeman, Bob Gunton
1                   Marlon Brando, Al Pacino, James Caan
2               Al Pacino, Robert De Niro, Robert Duvall
3            Christian Bale, Heath Ledger, Aaron Eckhart
4          John Travolta, Uma Thurman, Samuel L. Jackson
5                Henry Fonda, Lee J. Cobb, Martin Balsam
6             Clint Eastwood, Eli Wallach, Lee Van Cleef
7             Elijah Wood, Viggo Mortensen, Ian McKellen
8               Liam Neeson, Ralph Fiennes, Ben Kingsley
9         Brad Pitt, Edward Norton, Helena Bonham Carter
10              Elijah Wood, Ian McKellen, Orlando Bloom
11     Leonardo DiCaprio, Joseph Gordon-Levitt, Ellen...
12             Mark Hamill, Harrison Ford, Carrie Fisher
13                  Tom Hanks, Robin Wright, Gary Sinise
14            Elijah Wood, Ian McKellen, Viggo Mortensen

Gördüğünüz gibi zincirleme şekilde birden fazla str.replace() kullanabiliyoruz.

Pandas Series’den Pandas Dataframe Oluşturmak

Pandas series dediğimiz Pandas Dataframe (tablo) bir sütunu aslında. Ancak dataframe ce series in farklı metodları olduğundan zaman zaman seriesi dataframe dönüştürmek durumunda kalabiliyoruz. Bunun için basti bir yöntem var: to_dataframe()

actor_series = filmListesi.actors_list.to_dataframe()

Yukarıdaki komutla actor_series adında bir Pandas Dataframe oluşturduk.

Yazar Hakkında
Toplam 180 yazı
Erkan ŞİRİN
Erkan ŞİRİN
10 yılı aşkın süredir yurtiçi ve yurtdışında sektörde büyük veri mühendisliği, platform yönetimi ve makine öğrenmesi ile ilgili çalışmalar yürütmekte ve aynı zamanda birçok kurum ve şirkete danışmanlık ve eğitimler vermektedir. Çalışma alanları: Data ve MLOps platformları, gerçek zamanlı veri işleme, değişen veriyi yakalama (CDC) ve Lakehouse.
Yorumlar (2 yorum)
Erkam
Erkam Yanıtla
- 12:03

Mehaba. yukarıda türkçe sütun isimlerini değiştirmeden önce sütun sayısını 2’ye düşürdüğünüz için uyarı veriyor. Dolayısıyla sütun sayısını düşürmeden isim değişikliği yaptım. Bilginize. paylaşımlarınız için tşk ederim.

    Erkan ŞİRİN
    Erkan ŞİRİN Yanıtla
    - 21:53

    Merhaba. Haklısınız. Düzeltme yaptım. İki sütun için dataframe’i “ufo_two_cols” ismiyle tuttuk. Çok teşekkürler.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

×

Bir Şeyler Ara