Jak uzyskać nazwę kolumny indeksu w pandach python? Oto przykładowa ramka danych:
Column 1
Index Title
Apples 1
Oranges 2
Puppies 3
Ducks 4
Próbuję uzyskać / ustawić tytuł indeksu ramki danych. Oto, co próbowałem:
import pandas as pd
data = {'Column 1' : [1., 2., 3., 4.],
'Index Title' : ["Apples", "Oranges", "Puppies", "Ducks"]}
df = pd.DataFrame(data)
df.index = df["Index Title"]
del df["Index Title"]
print df
Czy ktoś wie jak to zrobić?
python
pandas
dataframe
columnname
Radykalny Edward
źródło
źródło
pd.DataFrame(values,index={"INDEX_NAME":index_values})
. Nie rozumiem, dlaczego nie jest to dozwolone lub realizowane?@denfromufa
tym, że powinien on wziąć dyktand jako parametry do skonstruowania z pandas.DataFramedf.index.names
zamiastdf.index.name
.Możesz użyć
rename_axis
do usunięcia zestawuNone
:Nowa funkcjonalność działa dobrze w łańcuchach metod.
Możesz także zmienić nazwy kolumn za pomocą parametru
axis
:Z wersji
pandas 0.24.0+
można użyć parametruindex
icolumns
:Usunięcie nazw indeksów i kolumn oznacza ustawienie na
None
:Jeśli
MultiIndex
tylko w indeksie:Usunięcie nazw indeksów i kolumn oznacza ustawienie na
None
:Ponieważ
MultiIndex
w indeksie i kolumnach konieczna jest praca z.names
zamiast.name
i ustawianie według listy lub krotek:Liczba mnoga jest niezbędna do sprawdzania / ustawiania wartości:
Usunięcie nazw indeksów i kolumn oznacza ustawienie na
None
:I rozwiązanie @Jeff:
źródło
df.index.rename('foo', inplace=True)
zobaczyć pandas.pydata.org/pandas-docs/stable/generated/...df.index.name
powinien załatwić sprawę.Python ma
dir
funkcję, która pozwala ci wyszukiwać atrybuty obiektów.dir(df.index)
był pomocny tutaj.źródło
Użyj,
df.index.rename('foo', inplace=True)
aby ustawić nazwę indeksu.Wygląda na to, że ten api jest dostępny od pand 0.13 .
źródło
Jeśli nie chcesz tworzyć nowego wiersza, ale po prostu umieść go w pustej komórce, użyj:
W przeciwnym razie użyj:
źródło
df.columns.values
podaj także nazwy kolumnźródło
Rozwiązanie dla wielu indeksów znajduje się w cyklopedycznej odpowiedzi jezraela, ale znalezienie go zajęło mi trochę czasu, więc zamieszczam nową odpowiedź:
df.index.names
podaje nazwy wielu indeksów (jako Frozenlist).źródło
Aby uzyskać kolumny indeksu, nazwy
df.index.names
będą działać zarówno dla pojedynczego indeksu, jak i MultiIndex od najnowszej wersji pand.Jako ktoś, kto znalazł to podczas próby znalezienia najlepszego sposobu uzyskania listy nazw indeksów + nazw kolumn, uznałbym tę odpowiedź za przydatną:
Działa to bez indeksu, indeksu jednokolumnowego lub MultiIndex. Pozwala to uniknąć wywoływania reset_index (), który ma niepotrzebny spadek wydajności dla tak prostej operacji. Dziwię się, że nie ma na to wbudowanej metody (na którą się natknąłem). Wydaje mi się, że częściej tego potrzebuję, ponieważ przesyłam dane z baz danych, w których indeks ramki danych jest mapowany na klucz podstawowy / unikalny, ale tak naprawdę jest to dla mnie kolejna kolumna.
źródło
Ustawienie nazwy indeksu można również wykonać podczas tworzenia:
źródło