Pandas - sort_index

Sıralama Yöntemleri

Oluşturulan Veri Çerçevelerinin, isteğimiz doğrultusunda sıralanması için kullanabileceğimiz yöntemlere, bu bölümde değineceğiz.

Pandas üç tür sıralamayı destekler ;

Konuya ait yöntemleri incelemek amacıyla imdb.xlsx dosyamızı içe aktararak bir veri çerçevesi oluşturarak işe başlayalım. Oluşturacağımız Veri çerçevesinin indeks değeri olarak Film Adlarını belirleyelim.

import pandas as pd
df = pd.read_excel("Veri_Setleri/imdb.xlsx", index_col="Film_Adı")
print(df.head(10))
Film_Adı Yıl Puan Oylayan_Kişi
The Shawshank Redemption 1994 9,2 1071904
The Godfather 1972 9,2 751381
The Godfather: Part II 1974 9 488889
Pulp Fiction 1994 8,9 830504
The Dark Knight 2008 8,9 1045186
12 Angry Men 1957 8,9 264112
Schindler's List 1993 8,9 545703
The Lord of the Rings: The Return of the King 2003 8,8 758388
Fight Club 1999 8,8 814389
Star Wars: Episode V - The Empire Strikes Back 1980 8,8 519895

sort_index() Fonksiyonu

sort_index() fonksiyonu (metodu), veri çerçevesini indeks (dizin) değerine göre Alfabetik olarak sıralama için kullanılır. df veri çerçevemizin indekslerini, Film adı olarak atadığımız için, sort_index() metodunu kullandığımız zaman, Veri çerçevemizi Film Adına göre sıralamış olacağız.

print(df.sort_index())
Film_Adı Yıl Puan Oylayan_Kişi
12 Angry Men 1957 8,9 264112
2001: A Space Odyssey 1968 8,3 275055
3 Idiots 2009 8 83178
1963 8 54451
A Beautiful Mind 2001 8 344294
... ... ... ...
Warrior 2011 8,1 190877
Who's Afraid of Virginia Woolf? 1966 8 38192
Wild Strawberries 1957 8,2 41744
Witness for the Prosecution 1957 8,3 36241
Yojimbo 1961 8,3 49855

247 rows × 3 columns

Parametreler

ascending Parametresi

Sıralamayı ters çevirmek için ascending=False parametresini kullanabiliriz.

print(df.sort_index(ascending=False))
Film_Adı Yıl Puan Oylayan_Kişi
Yojimbo 1961 8,3 49855
Witness for the Prosecution 1957 8,3 36241
Wild Strawberries 1957 8,2 41744
Who's Afraid of Virginia Woolf? 1966 8 38192
Warrior 2011 8,1 190877
... ... ... ...
A Beautiful Mind 2001 8 344294
1963 8 54451
3 Idiots 2009 8 83178
2001: A Space Odyssey 1968 8,3 275055
12 Angry Men 1957 8,9 264112

247 rows × 3 columns

axis Parametresi

Sütunlarda sıralama yapmak istersek axis=1 parametresini kullanmamız gerekir. axis parametresinin varsayılan değeri 0 (sıfır) yani satırlardır.

df.sort_index(axis=1) kodunu çalıştırdığımızda, imdb.xlsx dosyasını içeriği okunacak, satırlarda bir sıralama yapılmayacak ancak, sütun isimleri alfabetik olarak sıralanacaktır. Veri çerçevesi oluşturulurken dosya içeriğindeki Film_Adı Sütunu indeks olarak ayarlandığı için, axis=1 parametresi ile sıralama yapıldığında bu sütun sabit kalacak, diğer sıralı sütun isimleri (Yıl, Puan, Oylayan_Kişi) ve sütun değerleri değişecektir (Oylayan_Kişi, Puan, Yıl olacak).

print(df.sort_index(axis=1))
Film_Adı Oylayan_Kişi Puan Yıl
The Shawshank Redemption 1071904 9,2 1994
The Godfather 751381 9,2 1972
The Godfather: Part II 488889 9 1974
Pulp Fiction 830504 8,9 1994
The Dark Knight 1045186 8,9 2008
... ... ... ...
Mystic River 256159 7,9 2003
In the Heat of the Night 37081 7,9 1967
Arsenic and Old Lace 45893 7,9 1944
Before Sunrise 100974 7,9 1995
Papillon 62517 7,9 1973

247 rows × 3 columns