
Praca z biblioteką pandas w języku Python to codzienność dla każdego, kto zajmuje się analizą danych. Jednym z często używanych narzędzi w tej bibliotece jest metoda reset_index(). Pozwala ona na resetowanie indeksu w obiekcie DataFrame, co może być niezwykle przydatne w wielu sytuacjach. W tym artykule przyjrzymy się dokładnie, jak działa pandas.reset_index(), a także zobaczymy konkretne przykłady jego zastosowania.
Co robi metoda pandas.reset_index()?
Standardowo każda tabela danych w pandas ma indeks, czyli unikalne wartości identyfikujące każdy wiersz. Może to być zwykła numeracja lub niestandardowe etykiety, np. daty czy kategorie. Metoda reset_index() pozwala na:
- zresetowanie istniejącego indeksu do domyślnej numeracji (0, 1, 2, …),
- przeniesienie starego indeksu do nowej kolumny, jeśli jest to wymagane,
- usuniecie starego indeksu w celu całkowitego jego zresetowania.
Podstawowa składnia tej metody wygląda tak:
DataFrame.reset_index(level=None, drop=False, inplace=False, col_level=0, col_fill='')
Argumenty metody reset_index()
Metoda posiada kilka argumentów, które warto znać:
| Argument | Opis |
|---|---|
level |
Umożliwia określenie, które poziomy indeksu mają być zresetowane (dotyczy indeksów wielopoziomowych). |
drop |
Jeśli ustawimy True, stary indeks nie zostanie przeniesiony do nowej kolumny – zostanie całkowicie usunięty. |
inplace |
Jeśli zostanie ustawiony na True, operacja resetowania indeksu zostanie wykonana na miejscu, bez konieczności przypisywania wyniku do nowego obiektu. |
col_level i col_fill |
Służą do określenia, na którym poziomie kolumny pojawi się przeniesiony indeks (w przypadku wielopoziomowych kolumn). |
Podstawowe zastosowanie reset_index()
Aby zobaczyć działanie reset_index() w praktyce, stwórzmy prosty DataFrame i spróbujmy zresetować jego indeks:
import pandas as pd
# Tworzymy przykładowy DataFrame z niestandardowym indeksem
df = pd.DataFrame({'A': [10, 20, 30], 'B': [100, 200, 300]}, index=['x', 'y', 'z'])
print("Oryginalny DataFrame:\n", df)
# Resetowanie indeksu
df_reset = df.reset_index()
print("\nDataFrame po użyciu reset_index():\n", df_reset)
Wynik będzie wyglądał następująco:
Oryginalny DataFrame:
A B
x 10 100
y 20 200
z 30 300
DataFrame po użyciu reset_index():
index A B
0 x 10 100
1 y 20 200
2 z 30 300
Jak widzimy, dawny indeks został przeniesiony do nowej kolumny o nazwie index, a nowy indeks stał się standardową numeracją.
Usuwanie indeksu zamiast jego przenoszenia
Jeśli nie chcemy, aby poprzedni indeks znajdował się w nowej kolumnie, możemy użyć argumentu drop=True:
df_reset_drop = df.reset_index(drop=True)
print(df_reset_drop)
Wynik:
A B
0 10 100
1 20 200
2 30 300
Teraz kolumna z dawnym indeksem całkowicie zniknęła, a nowy indeks jest standardową numeracją od zera.
Resetowanie indeksu w miejscu
Jeśli nie chcemy tworzyć nowego obiektu, możemy skorzystać z argumentu inplace=True:
df.reset_index(inplace=True)
print(df)
Teraz operacja została wykonana bez konieczności przypisywania wyniku do nowej zmiennej.
Resetowanie indeksu w przypadku MultiIndex
Jeśli mamy indeks wielopoziomowy, reset_index() pozwala na resetowanie tylko wybranego poziomu:
arrays = [['A', 'A', 'B', 'B'], [1, 2, 1, 2]]
index = pd.MultiIndex.from_arrays(arrays, names=('Letters', 'Numbers'))
df_multi = pd.DataFrame({'Value': [10, 20, 30, 40]}, index=index)
print("Oryginalny MultiIndex DataFrame:\n", df_multi)
# Resetujemy tylko pierwszy poziom indeksu
df_reset_multi = df_multi.reset_index(level='Letters')
print("\nMultiIndex DataFrame po resetowaniu jednego poziomu:\n", df_reset_multi)
Podsumowanie
Metoda pandas.reset_index() to potężne narzędzie, które pozwala na elastyczne zarządzanie indeksami w DataFrame. Dzięki niej możemy:
- przenosić indeks do kolumny,
- usuwać indeks bez jego przenoszenia,
- resetować indeksy wielopoziomowe,
- modyfikować indeksy na miejscu.
Znajomość tej funkcji pozwala na bardziej efektywną pracę z danymi w pandas i unikanie problemów związanych z indeksami.
Inny ciekawy artykuł:
Jak działa pandas set_index w języku Python? Przykład zastosowania
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

