Obțineți valorile indexului de rând din Pandas DataFrame ca listă? [duplicat] (Programare, Python, Lista, Pandas, Indexare)

TravisVOX a intrebat.

Probabil că folosesc termeni de căutare săraci atunci când încerc să găsesc acest răspuns. În acest moment, înainte de a indexa un DataFrame, obțin o listă de valori într-o coloană în acest fel…

 list = list(df['column']) 

…apoi set_index pe coloană. Acest lucru pare a fi un pas irosit. Când încerc cele de mai sus pe un index, primesc o eroare de cheie.

Cum pot să iau valorile dintr-un index (atât cele simple, cât și cele multiple) și să le pun într-o listă sau într-o listă de tupluri?

Comentarii

  • De ce de ce le vreți sub formă de listă? –  > Por Andy Hayden.
  • Dacă le obțineți doar pentru a le trece manual în df.set_index()este inutil. Doar faceți direct df.set_index['your_col_name', drop=False], deja. –  > Por smci.
  • În ceea ce privește de ce… Personal, am nevoie să obțin valorile indexului unui cadru de date sub formă de listă în timpul depanării (Evaluate Expression în PyCharm) sau a dublei verificări între pași atunci când programez interactiv (de exemplu, într-un caiet Jupyter) tot timpul. –  > Por Attila Tanyi.
2 răspunsuri
Phillip Cloud

Pentru a obține index valori ca un list/list din tuples pentru Index/MultiIndex face:

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

sau

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

Comentarii

  • Primesc TypeError: obiectul ‘list’ nu este apelabil pentru utilizarea list(df.index.values) –  > Por Bode .
  • @Bode probabil că aveți o altă variabilă numită list în domeniu. –  > Por Phillip Cloud.
smci

Dacă primiți aceste date doar pentru a le trece manual în df.set_index(), acest lucru nu este necesar. Doar faceți direct df.set_index['your_col_name', drop=False], deja.

Este foarte rar în pandas să aveți nevoie să obțineți un index ca o listă Python (cu excepția cazului în care faceți ceva destul de ciudat, sau dacă le treceți înapoi la NumPy), așa că, dacă faceți acest lucru foarte des, este un miros de cod care indică faptul că faceți ceva greșit.