Pandas - median
Çrş 03 Aralık 2025median() Metodu
pandas.DataFrame.median() metodu, bir DataFrame'deki (veri çerçevesi) değerlerin, belirtilen eksen (satır veya sütun) üzerindeki medyanını (ortanca değerini) döndürmek için kullanılır.
Medyan, bir veri kümesindeki değerler küçükten büyüğe sıralandığında tam ortada kalan değerdir.
Bu yöntem genellikle bir Series (Seri) veya bir Scalar (tek bir sayı) döndürür.
⚙️ Parametreler
Yöntemin temel parametreleri şunlardır:
| Parametre | Varsayılan Değer | Açıklama |
|---|---|---|
axis |
0 (index) 0 (index): Her sütunun medyanını hesaplar ve sonuç olarak bir Series döndürür (varsayılan). 1 (columns): Her satırın medyanını hesaplar ve sonuç olarak bir Series döndürür. None: Tüm DataFrame'in tek bir medyanını hesaplar (Sürüm 2.0.0'dan itibaren). |
İşlevin uygulanacağı ekseni belirtir. |
skipna |
True |
Hesaplama yapılırken NA (boş/null) değerlerinin hariç tutulup tutulmayacağını belirtir. True ise hariç tutulur. |
numeric_only |
False |
Hesaplamaya yalnızca float, integer (tam sayı) ve boolean (mantıksal) sütunların dahil edilip edilmeyeceğini belirtir. |
**kwargs |
Fonksiyona iletilecek ek anahtar kelime argümanları. |
📝 Kullanım Örnekleri
1. Varsayılan Kullanım (axis=0)
Varsayılan olarak axis=0 kullanılır, yani her sütunun medyanı hesaplanır:
import pandas as pd
df = pd.DataFrame({ 'a': [1, 2, 8, 12],
'b': [10,15, 24, 32],
'c': [33, 50, 80, 100]})
print(df)
Veri çerçevemize bakalım, Çıktı:
a b c
0 1 10 33
1 2 15 50
2 8 24 80
3 12 32 100
Veri çerçevesinin medyanını bulalım;
median_result = df.median()
print(median_result)
Çıktı:
a 5.0 # ortadaki iki değerin ortalaması (2 + 8) / 2
b 19.5 # ortadaki iki değerin ortalaması (15 + 24) / 2
c 65.0 # ortadaki iki değerin ortalaması (50 + 80) / 2
dtype: float64
Sütunlarda 4'er veri olduğu için tam ortadaki değer seçilemiyor, bunun yerine tam ortada bulunan sayıların ortalaması alınıyor.
2. Satır Bazında Medyan (axis=1)
Satırlar arasındaki medyanı hesaplamak için axis=1 kullanılır:
median_result_axis_1 = df.median(axis=1)
print(median_result_axis_1)
Çıktı:
0 10.0 # Ortadaki sayı 10 [1, 10, 23]
1 15.0 # Ortadaki sayı 10 [2, 15, 50]
2 24.0 # Ortadaki sayı 10 [8, 24, 80]
3 32.0 # Ortadaki sayı 10 [12, 32, 100]
dtype: float64
Satırlarda 3 adet (tek sayılı) veri olduğu için tam ortadaki sayı, medyan olarak hesaplanıyor.
Bir de tüm Veri çerçevesinin medyanını bulalım.
median_result_axis_None = df.median(axis=None)
print(median_result_axis_None)
Çıktı:
19.5 # (15 + 24) / 2 <- Tablonun tam ortasındaki değerler 15 ve 24'tür.
3. Sadece Sayısal Sütunları Kullanma (numeric_only=True)
DataFrame'de sayısal olmayan (örneğin metin/string) sütunlar varsa, yalnızca sayısal sütunları dahil etmek için numeric_only=True ayarlanmalıdır. Aksi takdirde hata oluşabilir:
df = pd.DataFrame({ 'a': [1, 2, 8, 12],
'b': [10,'V', 24, 'N'],
'c': [33, 50, 80, 100]})
print(df)
Veri Çerçevemiz:
a b c
0 1 10 33
1 2 V 50
2 8 24 80
3 12 N 100
Sadece numerik (sayılardan oluşan) verilerin ortalamasını bulalım;
median_numeric = df.median(numeric_only=True)
print(median_numeric)
Çıktı:
a 5.0
c 65.0
dtype: float64
Satırların medyanını bulalım;
median_numeric = df.median(axis = 1, numeric_only=True)
print(median_numeric)
Çıktı:
0 17.0 # (1 + 33) / 2
1 26.0 # (2 + 50) / 2
2 44.0 # (8 + 80) / 2
3 56.0 # (12 + 100) / 2
dtype: float64
B Sütunundaki Tüm Değerler devre dışı bırakılıp kalan değerlerin ortalaması alınarak medyan hesaplandı.