Python Pandas ile Temel İşlemler

Bölüm – 3 Sıralama-Sorting

Python Pandas ile temel işlemler yazı dizimize devam ediyoruz. Bu yazımızda meşhur İnternet movie database (imdb) sitesinden alına bir veri setini kullanacağız. Hemen veri setimizi indirip bir değişkene atayalım, head() metoduyla EDA yapalım. Bu EDA nedir? diye sormayın. Keşfedici veri analizi (exploratory data analysis); veri nedir, ne değildir şöyle bir fikir edineyim amacıyla incelemek demek. Biz bunu böyle basit tek tabloluk veri setlerinde head() metoduyla yapabiliyoruz. Kardeş bana ilk beş satırını bir göster bakalım sende ne var ne yok.

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….

Pandas ile Sıralama İşlemi

Bir çok zaman elimizdeki veriyi küçükten büyüğe veya alfabetik olarak sıralamak isteriz. Burada bunu nasıl yapacağımızı göreceğiz. Kullanacağımız metod sort_values() olacak. Burada şunu hatırlatmak istiyorum. Pandas’da temel olarak iki veri yapısı var birincisi tablonun hepsini oluşturan frame, tablonun bir sütununu oluşturan series. Burada kullanacağımız sort_values() metodu series sınıfına ait bir metod. Hemen isterseniz Python’un type() metoduyla bunu görelim:

type(filmListesi)
pandas.core.frame.DataFrame
type(filmListesi.title)
pandas.core.series.Series

Yeşil olanlar veri tipini gösteriyor. Neyse detaya inmeden devam edelim. Şimdi title sütununu sıralayalım:

filmListesi.title.sort_values()
542                   (500) Days of Summer
5                             12 Angry Men
201                       12 Years a Slave
698                              127 Hours
110                  2001: A Space Odyssey
910                                   2046
596                               21 Grams
624                              25th Hour
708                       28 Days Later...
60                                3 Idiots
225                                 3-Iron
570                                    300
555                           3:10 to Yuma
427           4 Months, 3 Weeks and 2 Days
824                                     42
597                                  50/50
203                                  8 1/2
170                       A Beautiful Mind
...
96                                 Yojimbo
280                     Young Frankenstein
535                                  Zelig
955                       Zero Dark Thirty
677                                 Zodiac
615                             Zombieland
526                                   Zulu
864                                  [Rec]
Name: title, dtype: object

Görüldüğü gibi A’dan Z’ye sıraladı. Tersinden sıralamak istiyorsak sort_values(ascending=False) metoda ascending=False şeklinde sadece bir argüman eklememiz yeterli olur.

Aynı metod ile tüm tabloyu (dataframe) bir sütunu baz alarak sıralayabiliriz.

filmListesi.sort_values('title')
 star_ratingtitlecontent_ratinggenredurationactors_list
5427.8(500) Days of SummerPG-13Comedy95[u’Zooey Deschanel’, u’Joseph Gordon-Levitt’, …
58.912 Angry MenNOT RATEDDrama96[u’Henry Fonda’, u’Lee J. Cobb’, u’Martin Bals…
2018.112 Years a SlaveRBiography134[u’Chiwetel Ejiofor’, u’Michael Kenneth Willia…
6987.6127 HoursRAdventure94[u’James Franco’, u’Amber Tamblyn’, u’Kate Mara’]
1108.32001: A Space OdysseyGMystery160[u’Keir Dullea’, u’Gary Lockwood’, u’William S…
9107.52046RDrama129[u’Tony Chiu Wai Leung’, u’Ziyi Zhang’, u’Faye…
5967.721 GramsRCrime124[u’Sean Penn’, u’Benicio Del Toro’, u’Naomi Wa…

….

 star_ratingtitlecontent_ratinggenredurationactors_list
2808.1Young FrankensteinPGComedy106[u’Gene Wilder’, u’Madeline Kahn’, u’Marty Fel…
5357.8ZeligPGComedy79[u’Woody Allen’, u’Mia Farrow’, u’Patrick Horg…
9557.4Zero Dark ThirtyRDrama157[u’Jessica Chastain’, u’Joel Edgerton’, u’Chri…
6777.7ZodiacRCrime157[u’Jake Gyllenhaal’, u’Robert Downey Jr.’, u’M…
6157.7ZombielandRComedy88[u’Jesse Eisenberg’, u’Emma Stone’, u’Woody Ha…
5267.8ZuluUNRATEDDrama138[u’Stanley Baker’, u’Jack Hawkins’, u’Ulla Jac…
8647.5[Rec]RHorror78[u’Manuela Velasco’, u’Ferran Terraza’, u’Jorg…

Gördüğümüz gibi tabloyu komple title sütununa göre sıraladık.

Pandas ile Birden Fazla Niteliği Aynı Anda Sıralama

Yukarıda sadece tek bir niteliğe göre sıralama yaptık. Şimdi aynı anda birden fazla niteliğe göre tabloyu nasıl sıralarız ona bakalım. Bunun için aynı metodu sort_values() kullanıyor olacağız Ancak içine koyacağımız argüman farklı olacak. Şimdi önce tür (genre) sonra film adı (title) olacak şekilde sıralayalım.

filmListesi.sort_values(['genre','title'])
 star_ratingtitlecontent_ratinggenredurationactors_list
5707.8300RAction117[u’Gerard Butler’, u’Lena Headey’, u’David Wen…
2768.1A Fistful of DollarsRAction99[u’Clint Eastwood’, u’Gian Maria Volont\xe9′, …
758.4AliensRAction137[u’Sigourney Weaver’, u’Michael Biehn’, u’Carr…
5297.8ApocalyptoRAction139[u’Gerardo Taracena’, u’Raoul Trujillo’, u’Dal…
4337.9AvatarPG-13Action162[u’Sam Worthington’, u’Zoe Saldana’, u’Sigourn…
8017.6BatmanPG-13Action126[u’Michael Keaton’, u’Jack Nicholson’, u’Kim B…
1138.3Batman BeginsPG-13Action140[u’Christian Bale’, u’Michael Caine’, u’Ken Wa…
5737.8Battle RoyaleNOT RATEDAction114[u’Tatsuya Fujiwara’, u’Aki Maeda’, u’Tar\xf4 …
828.4BraveheartRAction177[u’Mel Gibson’, u’Sophie Marceau’, u’Patrick M…
9087.5BullittPGAction114[u’Steve McQueen’, u’Jacqueline Bisset’, u’Rob…
5177.8Captain America: The Winter SoldierPG-13Action136[u’Chris Evans’, u’Samuel L. Jackson’, u’Scarl…
3808.0Casino RoyalePG-13Action144[u’Daniel Craig’, u’Eva Green’, u’Judi Dench’]
4377.9Crouching Tiger, Hidden DragonPG-13Action120[u’Yun-Fat Chow’, u’Michelle Yeoh’, u’Ziyi Zha…
6237.7Dawn of the Planet of the ApesPG-13Action130[u’Gary Oldman’, u’Keri Russell’, u’Andy Serkis’]
1388.3Die HardRAction131[u’Bruce Willis’, u’Alan Rickman’, u’Bonnie Be…
7787.6Die Hard: With a VengeanceRAction131[u’Bruce Willis’, u’Jeremy Irons’, u’Samuel L….
5157.8Dirty HarryRAction102[u’Clint Eastwood’, u’Andrew Robinson’, u’Harr…
3498.0District 9RAction112[u’Sharlto Copley’, u’David James’, u’Jason Co…
3918.0Edge of TomorrowPG-13Action113[u’Tom Cruise’, u’Emily Blunt’, u’Bill Paxton’]
2618.1Elite SquadRAction115[u’Wagner Moura’, u’Andr\xe9 Ramiro’, u’Caio J…
2398.1Elite Squad: The Enemy WithinUNRATEDAction115[u’Wagner Moura’, u’Irandhir Santos’, u’Andr\x…
6107.7Enter the DragonRAction102[u’Bruce Lee’, u’John Saxon’, u’Jim Kelly’]
8157.6EquilibriumRAction107[u’Christian Bale’, u’Sean Bean’, u’Emily Wats…
7537.6Escape from AlcatrazPGAction112[u’Clint Eastwood’, u’Patrick McGoohan’, u’Rob…
6537.7FearlessPG-13Action104[u’Jet Li’, u’Li Sun’, u’Yong Dong’]
6857.7First BloodRAction93[u’Sylvester Stallone’, u’Brian Dennehy’, u’Ri…
6197.7Forbidden PlanetPASSEDAction98[u’Walter Pidgeon’, u’Anne Francis’, u’Leslie …
8967.5From Russia with LoveAPPROVEDAction115[u’Sean Connery’, u’Robert Shaw’, u’Lotte Lenya’]
3018.0Furious 7PG-13Action137[u’Vin Diesel’, u’Paul Walker’, u’Dwayne Johns…
6837.7FuryRAction134[u’Brad Pitt’, u’Shia LaBeouf’, u’Logan Lerman’]
388.6Rear WindowAPPROVEDMystery112[u’James Stewart’, u’Grace Kelly’, u’Wendell C…
1498.2RebeccaNOT RATEDMystery130[u’Laurence Olivier’, u’Joan Fontaine’, u’Geor…
2448.1Shutter IslandRMystery138[u’Leonardo DiCaprio’, u’Emily Mortimer’, u’Ma…
2498.1SleuthPGMystery138[u’Laurence Olivier’, u’Michael Caine’, u’Alec…
8947.5Source CodePG-13Mystery93[u’Jake Gyllenhaal’, u’Michelle Monaghan’, u’V…
4677.9The 39 StepsUNRATEDMystery86[u’Robert Donat’, u’Madeleine Carroll’, u’Luci…
2928.1The Manchurian CandidateAPPROVEDMystery126[u’Frank Sinatra’, u’Laurence Harvey’, u’Janet…
8637.5Three Days of the CondorRMystery117[u’Robert Redford’, u’Faye Dunaway’, u’Cliff R…
8667.5To Catch a ThiefAPPROVEDMystery106[u’Cary Grant’, u’Grace Kelly’, u’Jessie Royce…
2648.1Twelve MonkeysRMystery129[u’Bruce Willis’, u’Madeleine Stowe’, u’Brad P…
768.4VertigoAPPROVEDMystery128[u’James Stewart’, u’Kim Novak’, u’Barbara Bel…
1458.2Blade RunnerRSci-Fi117[u’Harrison Ford’, u’Rutger Hauer’, u’Sean You…
3218.0BrazilRSci-Fi132[u’Jonathan Pryce’, u’Kim Greist’, u’Robert De…
4087.9GravityPG-13Sci-Fi91[u’Sandra Bullock’, u’George Clooney’, u’Ed Ha…
6377.7The Butterfly EffectRSci-Fi113[u’Ashton Kutcher’, u’Amy Smart’, u’Melora Wal…
4847.8The Day the Earth Stood StillAPPROVEDSci-Fi92[u’Michael Rennie’, u’Patricia Neal’, u’Hugh M…
9027.5FrenzyRThriller116[u’Jon Finch’, u’Barry Foster’, u’Alec McCowen’]
7287.6La piel que habitoRThriller120[u’Antonio Banderas’, u’Elena Anaya’, u’Jan Co…
4967.8MiseryRThriller107[u’James Caan’, u’Kathy Bates’, u’Richard Farn…
3508.0Shadow of a DoubtAPPROVEDThriller108[u’Teresa Wright’, u’Joseph Cotten’, u’Macdona…
8487.5The Man Who Knew Too MuchPGThriller120[u’James Stewart’, u’Doris Day’, u’Brenda de B…
598.5Django UnchainedRWestern165[u’Jamie Foxx’, u’Christoph Waltz’, u’Leonardo…
1078.3For a Few Dollars MoreAPPROVEDWestern132[u’Clint Eastwood’, u’Lee Van Cleef’, u’Gian M…
2368.1High NoonPGWestern85[u’Gary Cooper’, u’Grace Kelly’, u’Thomas Mitc…
7047.6High Plains DrifterRWestern105[u’Clint Eastwood’, u’Verna Bloom’, u’Marianna…
268.6Once Upon a Time in the WestPG-13Western175[u’Henry Fonda’, u’Charles Bronson’, u’Claudia…
2638.1Rio BravoNOT RATEDWestern141[u’John Wayne’, u’Dean Martin’, u’Ricky Nelson’]
68.9The Good, the Bad and the UglyNOT RATEDWestern161[u’Clint Eastwood’, u’Eli Wallach’, u’Lee Van …
4217.9The Outlaw Josey WalesPGWestern135[u’Clint Eastwood’, u’Sondra Locke’, u’Chief D…
1198.3UnforgivenRWestern131[u’Clint Eastwood’, u’Gene Hackman’, u’Morgan …

979 rows × 6 columns

Yukarıda gördüğümüz gibi önce genre niteliğine göre sıraladık sonra her bir genre için ayrı ayrı title niteliği sıralandı.

Pandas Dataframe Artan/Azalan Sıralama

Sıralamanın küçükten büyüğe mi yoksa büyükten küçüğe mi (artan/azalan) olacağını ascending=False veya True parametresiyle belirliyoruz. Eğer True ise ki varsayılan değerdir, artan sıralama olur. False ise azalan sıralama olur.

Diğer bölümde görüşmek üzere veriyle kalın…

Yazar Hakkında
Toplam 174 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