• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

Pandas'ta tablo satırları nasıl sıralanır?

Garfield

Yönetici
YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
428
Mesajlar
441
AI Seviyesi
Yeni
pandas'ta tablo satırlarını sıralamak için DataFrame üzerinde sort_values() kullanılır. Belirli bir sütuna göre artan veya azalan sıralama yapabilir, birden fazla sütun için öncelik belirleyebilir ve eksik değerlerin konumunu seçebilirsiniz. Aşağıdaki örnekte tablo, puan sütununa göre büyükten küçüğe sıralanır.

Python:
import pandas as pd

df = pd.DataFrame({
    "ad": ["Ali", "Buse", "Cem"],
    "puan": [72, 91, 84]
})

sirali_df = df.sort_values(by="puan", ascending=False)
print(sirali_df)

Beklenen çıktı şöyledir:

Kod:
     ad  puan
1  Buse     91
2   Cem     84
0   Ali     72

Burada ascending=False azalan sıralamayı, yani büyük değerden küçük değere sıralamayı belirtir. Varsayılan değer True olduğu için ascending yazılmazsa sıralama küçükten büyüğe yapılır.

Bir sütuna göre sıralama​


Gerçek bir DataFrame üzerinde sıralama yapmak için önce sıralanacak sütunun adını, ardından sıralama yönünü belirleyin.
  1. DataFrame'i hazırlayın. Sıralamak istediğiniz sütunun gerçekten tabloda bulunduğundan emin olun; örneğin sütun adı puan olmalıdır.
  2. Sıralama sütununu belirtin. df.sort_values(by="puan") ifadesi puanları küçükten büyüğe sıralar.
  3. Sıralama yönünü seçin. Büyük değerlerin üstte görünmesi için ascending=False ekleyin.
  4. Sonucu saklayın veya kullanın. sirali_df = ... biçiminde yeni bir değişkene atarsanız özgün df değişmeden kalır.
Özgün tabloyu değiştirmek istemiyorsanız sonucu yeni bir değişkene atamak daha güvenlidir. inplace=True kullanıldığında ise sıralama doğrudan mevcut DataFrame'e uygulanır:

Python:
df.sort_values(by="puan", ascending=False, inplace=True)

Not: inplace=True kullanıldığında yöntem yeni bir DataFrame döndürmez. Bu nedenle aynı ifadeyi sirali_df = df.sort_values(..., inplace=True) şeklinde kullanmayın; sirali_df değeri None olur.

Birden fazla sütuna göre sıralama​


Birincil sütunda eşit değerler varsa ikinci bir sütunla sıralamayı kesinleştirebilirsiniz. Örneğin önce sinif değerlerini küçükten büyüğe, aynı sınıftaki öğrencileri ise puan değerlerine göre büyükten küçüğe sıralamak için sütunları ve yönleri listeler hâlinde verin.

Python:
ornek_df = pd.DataFrame({
    "ad": ["Ali", "Buse", "Cem"],
    "sinif": [1, 1, 2],
    "puan": [72, 91, 84]
})

sirali_df = ornek_df.sort_values(
    by=["sinif", "puan"],
    ascending=[True, False]
)

by listesindeki ilk sütun birincil ölçüttür. ascending listesindeki yönler aynı sırayla uygulanır. Bu nedenle iki sütun için iki yön belirtmek, hangi sütunun hangi yönde sıralanacağını açıkça gösterir.

Aşağıdaki ayrım, hangi yöntemi kullanmanız gerektiğini hızlıca belirler:
İhtiyaçKullanılacak yöntemSonuç
Bir sütundaki değerlere göre sıralamasort_values(by="sütun")Satırlar sütun değerlerine göre sıralanır.
Birden fazla sütuna göre sıralamasort_values(by=[...])Sütunlar öncelik sırasıyla değerlendirilir.
Satır indeksine göre sıralamasort_index()Satırlar indeks değerlerine göre sıralanır.
Buradaki yöntemler aynı işi yapmaz. Örneğin satırların indeks numaralarını düzenlemek istiyorsanız sort_index() kullanın; bir sütundaki maaş, tarih veya puan değerlerine göre sıralama yapmak istiyorsanız sort_values() kullanın.

Eksik değerler ve indeks numaraları​


Sıralanan sütunda NaN değerleri varsa bunların sona veya başa alınmasını na_position ile belirleyebilirsiniz:

Python:
sirali_df = df.sort_values(
    by="puan",
    ascending=False,
    na_position="last"
)

na_position="last" eksik değerleri sona, na_position="first" ise başa yerleştirir. Sıralama sonrasında eski indeks numaraları korunur. Sonucun 0'dan başlayan yeni bir indeks kullanmasını istiyorsanız reset_index(drop=True) ekleyin:

Python:
sirali_df = (
    df.sort_values(by="puan", ascending=False)
      .reset_index(drop=True)
)

Son kontrol: sirali_df.head() ile ilk satırları görüntüleyin ve sıralama sütununun beklenen yönde olduğunu kontrol edin. Satırlar yanlış görünüyorsa öncelikle by içinde yazılan sütun adını, ascending değerini ve sütundaki sayıların gerçekten sayısal veri olarak tutulup tutulmadığını inceleyin.
 
Son düzenleme:

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic
Geri
Üst