2013-08-21 22 views
28

Prawdopodobnie używam złych terminów wyszukiwania, gdy próbuję znaleźć tę odpowiedź. Teraz, przed indeksowania DataFrame, dostaję listę wartości w kolumnie w ten sposób ...Uzyskaj wartości indeksu wiersza Pandas DataFrame jako listę?

list = list(df['column']) 

... wtedy będę set_index na kolumnie. To wydaje się zmarnowanym krokiem. Podczas próby powyższego indeksu, otrzymuję kluczowy błąd.

Jak mogę pobrać wartości z indeksu (zarówno pojedyncze, jak i wielokrotne) i umieścić je na liście lub liście krotek?

+4

* Dlaczego * chcesz je jako listę? –

+3

'df.index.values'? –

+0

Jeśli tylko otrzymujesz je ręcznie do przejścia w 'df.set_index()', to jest niepotrzebne. Po prostu wykonaj 'df.set_index ['your_col_name', drop = False]', już. – smci

Odpowiedz

60

Aby uzyskać wartości index jak list/list z tuple S Index/MultiIndex zrobić:

df.index.values.tolist() # an ndarray method, you probably shouldn't depend on this 

lub

list(df.index.values) # this will always work in pandas 
+0

Dziękujemy! To działało idealnie. – TravisVOX

+0

Otrzymuję TypeError: obiekt 'list' nie jest wywoływalny dla użycia 'list (df.index.values)' – Bode

+0

@Bode prawdopodobnie masz inną zmienną o nazwie 'list' w zakresie. –

-1

Jeśli otrzymujesz tylko te ręcznie przejść do df.set_index() , to niepotrzebne. Po prostu wykonaj już teraz: df.set_index['your_col_name', drop=False].

To bardzo rzadkie w pandach, że potrzebujesz indeksu jako listy Pythona (chyba, że ​​robisz coś całkiem fajnego lub przekazujesz je z powrotem do NumPy), więc jeśli robisz to dużo, to zapach kodu, który robisz źle.

Powiązane problemy