Ana içeriğe atla

Pandas reset_index Eğitimi

Bir DataFrame'in indeksini sıfırlamak için pandas reset_index() yöntemini öğrenin. Bu yöntemle sunulan farklı seçenekleri ve basit ile çok seviyeli DataFrame'lerde indeksin nasıl sıfırlandığını keşfedin.
Güncel 3 Eki 2026  · 8 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Büyük bir veri kümesini dönüştürüp filtreledikten sonra, tam da ihtiyacınız olan DataFrame’e ulaşmış olabilirsiniz. Ancak bu DataFrame, sıralı olmayabilen orijinal indeksi korur. Bu gibi durumlarda DataFrame’in indeksini sıfırlamanız gerekir.

Bu eğitimde, bir DataFrame’in indeksini sıfırlamak için kullanılan pandas reset_index() yöntemini ele alacağız. Bu yöntemle sunulan farklı seçenekleri inceleyeceğiz. Ayrıca, basit ve çok seviyeli DataFrame’lerde indeksin nasıl sıfırlanacağını da anlatacağız.

DataFrame indeksini sıfırlama alıştırmaları için bir havayolu veri kümesi kullanacağız. Bu eğitimi takip etmek için mükemmel bir araç olan, özellikle Python’da veri analizi için tasarlanmış etkileşimli bir ortam olan DataCamp’in Datalab’ını kullanacağız.

reset_index nedir?

Pandas’taki reset_index yöntemi, bir DataFrame’in indeksini varsayılan indekse sıfırlar. Filtreleme, birleştirme veya bir araya getirme gibi işlemlerden sonra indeks sıralı olmayabilir. Bu yöntem, temiz ve sıralı bir indeksi yeniden kurmaya yardımcı olur. DataFrame bir MultiIndex’e sahipse bir veya daha fazla seviyeyi kaldırabilir.

Temel sözdizimi:

df.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill="")

Parametreler:

  1. level: Çok seviyeli bir DataFrame’de, indexten kaldırılması gereken satır indeksi seviyesinin adını veya konumunu alır. Varsayılan olarak tüm seviyeleri kaldırır.
  2. drop: Bu bir Boolean bayraktır. True – Geçerli satır indeksi DataFrame’de yeni bir sütun olarak eklenmez. False (varsayılan) – Geçerli satır indeksi DataFrame’e yeni bir sütun olarak eklenir.
  3. inplace: Yeni bir DataFrame dönülüp dönülmeyeceğini veya mevcut olanın güncellenip güncellenmeyeceğini belirtir. Varsayılanı False olan bir Boolean bayraktır.
  4. col_level: Sütunlar çok seviyeliyse, etiketlerin hangi seviyeye ekleneceğini belirler. Varsayılan olarak ilk seviyeye eklenirler.
  5. col_fill: Sütunlar çok seviyeliyse, diğer seviyelerin nasıl adlandırılacağını belirler. None ise indeks adı yinelenir.

Döndürür:

Yeni indeksli bir DataFrame veya inplace=True ise None.

reset_index nasıl kullanılır

Pandas read_csv() yöntemini bir indeks belirtmeden kullanarak bir CSV dosyası okursanız, elde edilen DataFrame 0’dan başlayıp her satırda 1 artan, varsayılan tamsayı tabanlı bir indekse sahip olur.

import pandas as pd
df = pd.read_csv("airlines_dataset.csv").head()
df

airlines veri kümesinin okunması

Bazı durumlarda daha açıklayıcı satır etiketlerini tercih edebilirsiniz. Bunu sağlamak için, DataFrame’in sütunlarından birini indeksi (satır etiketleri) olarak ayarlayabilirsiniz. CSV dosyasından veri yüklemek için read_csv() yöntemini kullanırken, index_col parametresiyle indeks için istenen sütunu belirtin.

import pandas as pd
df = pd.read_csv("airlines_dataset.csv", index_col="Operating Airline IATA Code").head()
df

DataFrame'in yeni indeksi olarak Operating Airline IATA Code sütununun ayarlanması

Alternatif olarak, bir DataFrame’in herhangi bir sütununu indeks olarak ayarlamak için set_index() yöntemini kullanabilirsiniz:

import pandas as pd
df = pd.read_csv("airlines_dataset.csv").head()
df.set_index("Operating Airline IATA Code", inplace=True)
df

Bu kod parçasının orijinal DataFrame üzerinde değişiklik yapacağını unutmayın.

set_index yöntemiyle Operating Airline IATA Code sütununun yeni indeks olarak ayarlanması

Peki varsayılan sayısal indeksi geri yüklemeniz gerekirse? İşte bu noktada pandas’ın reset_index() yöntemi devreye girer.

df.reset_index()

DataFrame indeksinin sıfırlanması

Örnek, 'Operating Airline IATA Code' sütunu indeks olarak ayarlandıktan sonra, DataFrame’i varsayılan tamsayı indeksine döndürmek için reset_index kullanıldığını gösterir.

reset_index’in Pratik Kullanımları

Pandas’taki reset_index() yöntemi, filtrelenmiş veri kümeleri, birleştirilmiş DataFrame’ler veya çok seviyeli indekslerle çalışırken DataFrame indekslerini yeniden düzenlemek için güçlü bir araçtır.

DataFrame’leri genişten uzuna dönüştürme, satır ve sütunları stack/unstack etme ve çoklu indeksli DataFrame’lerle çalışma hakkında daha fazla bilgi edinmek için DataFrame’leri yeniden şekillendirme konulu çevrimiçi kursumuzu inceleyin.

Filtrelemeden sonra sıfırlama

Bir DataFrame’i filtrelediğinizde, orijinal indeks korunur. reset_index kullanarak filtrelenmiş DataFrame’i yeniden indeksleyebilirsiniz.

import pandas as pd
df = pd.read_csv("airlines_dataset.csv")

Verileri, "landing count" değerinin 1000’den büyük olduğu satırları seçmek için filtreleyelim. Filtrelemeden sonra indeksler sıralı olmayabilir. Ardından, filtrelenen DataFrame’in indeksini sıfırlamak için reset_index yöntemini kullanabilirsiniz.

filtered_df = df[df["Landing Count"] > 1000].head()
filtered_df

"landing count" > 1000 olan DataFrame

Yukarıdaki görsel, DataFrame’in uygulanan koşula göre filtrelendiğini ancak indeksin sıralı olmadığını gösteriyor. Şimdi, filtrelenen DataFrame’i yeniden indekslemek ve sıralı bir indeks sağlamak için reset_index kullanalım. Bunu şu şekilde yapabilirsiniz:

filtered_df_reset = filtered_df.reset_index()
filtered_df_reset

İndeks sıralı hale getirildi

Bu yöntemin varsayılan davranışı, mevcut DataFrame indeksini varsayılan tamsayı tabanlı bir indeksle değiştirmek ve eski indeksi aynı adla (veya adsız ise "index") yeni bir sütuna dönüştürmektir.

Bu nedenle, eski indeksin yeni bir sütun olarak eklenmemesini sağlayan drop=True parametresini kullanın.

filtered_df_reset = filtered_df.reset_index(drop=True)
filtered_df_reset

Eski indeksi kaldırmak için drop parametresinin kullanılması

Harika! İndeksler artık varsayılan tamsayı indeksine (0, 1, 2, …) sıfırlandı ve temiz, sıralı bir yapı elde edildi.

Birleştirme veya kaynaştırma

DataFrame’leri birleştirirken, ortaya çıkan DataFrame yinelenen veya sıralı olmayan indeksler içerebilir. İndeksi sıfırlamak, temiz ve sıralı bir indeks oluşturur.

Diyelim ki iki DataFrame’iniz var ve bunları birleştirmek istiyorsunuz. Gösterim amacıyla havayolu veri setinden iki DataFrame oluşturdum.

import pandas as pd
df = pd.read_csv("airlines_dataset.csv")
split_index = int(df.shape[0] / 2)
df1 = df[:split_index].head()
df2 = df[split_index:].head()

df1 şu şekilde:

Orijinal DataFrame'den çıkarılan DataFrame 1

df2 şu şekilde:

Orijinal DataFrame'den çıkarılan DataFrame 2

DataFrame’leri, yani df1 ve df2, birleştirelim.

df_concat = pd.concat([df1, df2])

Birleştirilmiş DataFrame

Veriler sıralı olmayan indeksler gösteriyor. Birleştirilmiş DataFrame’in indeksini sıralı hale getirmek için sıfırlamamız gerekiyor.

DataFrame’in indeksini pandas’taki reset_index() yöntemiyle sıfırlayalım.

df_concat.reset_index()

İndeks sütunu kaldırılmalı

İşte DataFrame’in indeksi sıfırlandıktan sonraki sonuç. reset_index yöntemi eski indeksi yeni bir sütuna dönüştürür. Bu ekstra sütunu kaldırmak için drop=True parametresini kullanmanız gerekir.

df_concat.reset_index(drop=True)

İndeks sütunu kaldırıldı

Çok seviyeli indeksleme ile çalışma

Hiyerarşik (çok seviyeli) indekslemeye sahip DataFrame’ler için, reset_index, çok seviyeli indeksi sütunlara dönüştürerek DataFrame’i basitleştirmek için kullanılabilir.

Çok seviyeli indekse sahip bir DataFrame örneğine bakalım.

import pandas as pd
df = pd.read_csv(
    "airlines_dataset.csv", index_col=["Aircraft Model", "Operating Airline IATA Code"]
).head()

Bir DataFrame'de çoklu indeksler

İndeksine bakarsanız, bunun yaygın bir DataFrame indeksi değil bir MultiIndex nesnesi olduğunu görürsünüz

DataFrame'de çoklu indeksler

Şimdi pandas’ın, MultiIndex’in tüm seviyelerini kaldıran reset_index() yöntemini kullanalım:

df.reset_index()

MultiIndex artık sıralı hale geldi

Gördüğünüz gibi, MultiIndex’in her iki seviyesi de normal DataFrame sütunlarına dönüştürülürken indeks varsayılan tamsayı tabanlı olana sıfırlandı.

Ayrıca, DataFrame indeksinden seçili seviyeleri kaldırmak için level parametresini de kullanabilirsiniz. Bu, seçilen seviyeleri, drop parametresini kullanarak bu bilgiyi DataFrame’den tamamen atmıyorsanız, normal DataFrame sütunlarına dönüştürür. Bakalım:

df.reset_index(level=["Aircraft Model"])

Yalnızca Operating Airline IATA Code indeks olarak kaldı

Yukarıdaki görsel, "Aircraft Model"in artık DataFrame’de normal bir sütun olduğunu gösteriyor. Sadece "Operating Airline IATA Code" indeks olarak kaldı.

Şimdi, listede belirtilen indeksin normal bir sütun olmasını istemiyorsanız, onu DataFrame’den atmak için drop ve level parametrelerini birlikte kullanabilirsiniz.

df.reset_index(level=["Aircraft Model"], drop=True)

Aircraft Model sütun adı kaldırıldı

'Aircraft Model' indeksten ve DataFrame’den kaldırıldı. Diğer indeks olan 'Operating Airline IATA Code', DataFrame’in geçerli indeksi olarak korundu.

İleri Düzey Kullanım ve İpuçları

İndeksi koruma

İki DataFrame’i birleştirdiğinizi varsayalım; ortaya çıkan birleştirilmiş DataFrame, aşağıdaki DataFrame’de gösterildiği gibi artık sıralı indekslere sahip olmayacaktır.

geçici DataFrame

DataFrame’in indeksini pandas’ın reset_index() yöntemiyle sıfırlayalım.

df.reset_index()

indeksten gereksiz indeks sütunu kaldırılmalı

drop, indeksi sıfırladıktan sonra eski indeksin DataFrame’de bir sütun olarak tutulup tutulmayacağını veya tamamen atılıp atılmayacağını belirler. Varsayılan olarak (drop=False), önceki tüm örneklerde gösterildiği gibi eski indeks korunur. Alternatif olarak drop=True ayarı, indeksi sıfırladıktan sonra eski indeksi DataFrame’den kaldırır.

df.reset_index(drop=True)

indeks sütunu silindi

Yerinde (inplace) işlem

Yeni bir DataFrame oluşturmaktan kaçınmak için inplace parametresini kullanarak DataFrame’i yerinde değiştirin.

Aşağıdaki DataFrame’e sahip olduğunuzu varsayalım:

indeks sıralı değil

inplace parametresini True olarak ayarlamak, değişikliklerin doğrudan orijinal DataFrame’e uygulanmasını ve ayrı bir DataFrame oluşturulmamasını sağlar.

df_concat.reset_index(drop=True, inplace=True)
df_concat

indeks sıralı

Yinelemeleri (duplikatları) yönetme

Yinelenen indeksleri, sıfırlayıp yeniden indeksleyerek doğru şekilde yönetin.

Yinelenen indekslere sahip verileriniz olduğunu varsayalım.

Yinelenen indekslere sahip DataFrame

drop=True ve inplace=True ile birlikte reset_index() kullanmak, ortaya çıkan DataFrame’in 0’dan başlayıp sıralı şekilde artan kesintisiz indekslere sahip olmasını sağlar.

df.reset_index(drop=True, inplace=True)

indeks sıralı

Pandas reset_index Sık Karşılaşılan Hatalar ve Sorun Giderme

  1. İndeks Sıfırlanmıyor: Orijinal DataFrame’in değişmesini bekliyorsanız inplace=False kullanmadığınızdan emin olun. inplace False ise yeni bir DataFrame döndürülür ve orijinal DataFrame değişmeden kalır.
  2. Veri Kaybı: İstemeden veri kaybını önlemek için drop parametresine dikkat edin. İndeksin düşürülmesi, mevcut indeks değerlerini kalıcı olarak kaldırır.

Uygulamalı reset_index Örneği

Öğrendiğimiz DataFrame indeksini sıfırlama yöntemlerini uygulayalım ve eksik değerleri düşürürken indeks sıfırlamanın nasıl faydalı olabileceğini görelim.

Havayolu veri kümemizde eksik değer yok, bu yüzden bunun yerine Netflix Filmleri ve TV programları veri setini kullanalım. Eksik değerler içerir ve reset_index() için ideal bir örnektir.

import pandas as pd
df = pd.read_csv("netflix_shows.csv")
df.head()

NaN değerleri olan DataFrame

DataFrame’de eksik değerler olduğunu görebilirsiniz. dropna() yöntemiyle eksik değer içeren satırları düşürün.

df.dropna(inplace=True)
df.head()

NaN değerleri olmayan DataFrame

NaN değerleri içeren satırlar DataFrame’den kaldırıldı. Ancak indeks artık kesintisiz değil (0, 1, 2, 4). Bunu sıfırlayalım:

df.reset_index()

Gereksiz indeks sütunu kaldırılmalı

Artık indeks kesintisiz; ancak drop parametresini açıkça geçmediğimiz için eski indeks varsayılan adıyla bir sütuna dönüştürüldü: index. Eski indeksi DataFrame’den tamamen kaldıralım:

df.reset_index(drop=True)

veri kümesi normal

Anlamsız eski indeksi tamamen kaldırdık ve geçerli indeks artık kesintisiz. Son adım, bu değişiklikleri orijinal DataFrame’imize inplace parametresiyle kaydetmektir:

df.reset_index(drop=True, inplace=True)

Sonuç

reset_index işlevinin Pandas’da DataFrame indekslerini nasıl verimli yönettiğini öğrendiniz. İster filtrelenmiş verilerle, ister birleştirilmiş DataFrame’lerle, ister karmaşık çok seviyeli indekslerle çalışın, reset_index temiz ve düzenli bir DataFrame sağlar. Parametreleri, veri işleme görevlerinde farklı indeksleme senaryolarını yönetmenize yardımcı olur.

reset_index benzeri işlevleri kullanmayı öğrenmeye DataCamp’in Python ile Veri Analisti kariyer yoluyla devam edin. Ayrıca listelerle çalışıyor ve listelerdeki index() işlevini öğrenmek istiyorsanız Python List Index() Eğitimi makalemizi de okuyabilirsiniz. 


Satyam Tripathi's photo
Author
Satyam Tripathi
LinkedIn
Konular
Python

En iyi pandas Kursları

Kurs

pandas ile Veri İşleme

4 sa
567.9K
pandas ile verileri içe aktarmayı ve temizlemeyi, istatistikleri hesaplamayı ve görselleştirmeler oluşturmayı öğrenin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör