Wydaje się to dość oczywiste, ale nie potrafię wymyślić, jak przekonwertować indeks ramki danych na kolumnę?
Na przykład:
df=
gi ptt_loc
0 384444683 593
1 384444684 594
2 384444686 596
Do,
df=
index1 gi ptt_loc
0 0 384444683 593
1 1 384444684 594
2 2 384444686 596
df.reset_index(level=df.index.names, inplace=True)
jednego można przekonwertować cały multiindeks na kolumnydf.reset_index()
, który przenosi cały indeks do kolumn (jedna kolumna na poziom) i tworzy indeks int od 0 do len (df) -1df['index1'] = df.index
Zwraca ostrzeżenie: „Próbuje się ustawić wartość na kopii wycinka z DataFrame”. Zamiast tego użyj funkcji df.assign (), jak pokazano poniżej.W przypadku MultiIndex można wyodrębnić jego subindeks za pomocą
gdzie
si_name
jest nazwa subindeksu.źródło
Aby zapewnić nieco większą przejrzystość, spójrzmy na DataFrame z dwoma poziomami w indeksie (MultiIndex).
reset_index
Metoda, zwana z domyślnymi parametrami, konwertuje wszystkie poziomy indeksów na kolumny i używa prostegoRangeIndex
jako nowego indeksu.Za pomocą tego
level
parametru można kontrolować, które poziomy indeksu są konwertowane na kolumny. Jeśli to możliwe, użyj nazwy poziomu, która jest bardziej wyraźna. Jeśli nie ma nazw poziomów, możesz odwoływać się do każdego poziomu przez jego liczbę całkowitą, która zaczyna się od 0 od zewnątrz. Możesz użyć tutaj wartości skalarnej lub listy wszystkich indeksów, które chcesz zresetować.W rzadkim przypadku, gdy chcesz zachować indeks i przekształcić go w kolumnę, możesz wykonać następujące czynności:
źródło
rename_axis
+reset_index
Możesz najpierw zmienić nazwę indeksu na pożądaną etykietę, a następnie przejść do serii:
Działa to również w przypadku
MultiIndex
ramek danych:źródło
Jeśli chcesz użyć tej
reset_index
metody, a także zachować istniejący indeks, powinieneś użyć:lub zmienić to na miejscu:
Na przykład:
A jeśli chcesz pozbyć się etykiety indeksu, możesz:
źródło
źródło
Bardzo prostym sposobem na to jest użycie metody reset_index (). W przypadku ramki danych df użyj poniższego kodu:
W ten sposób indeks stanie się kolumną, a użycie wartości „inplace” jako „True” spowoduje zmianę na stałe.
źródło