¿Obtener valores de índice de fila de Pandas DataFrame como lista? [duplicate]

2 minutos de lectura

avatar de usuario
TravisVOX

Probablemente estoy usando términos de búsqueda deficientes cuando trato de encontrar esta respuesta. En este momento, antes de indexar un DataFrame, obtengo una lista de valores en una columna de esta manera…

 list = list(df['column']) 

…entonces lo haré set_index en la columna Esto parece un paso perdido. Al intentar lo anterior en un índice, aparece un error de clave.

¿Cómo puedo tomar los valores en un índice (tanto simple como múltiple) y ponerlos en una lista o una lista de tuplas?

  • Por qué los quieres en lista??

    –Andy Hayden

    21 de agosto de 2013 a las 13:40


  • Si solo está haciendo que estos pasen manualmente a df.set_index(), eso es innecesario. Solo hazlo directamente df.set_index['your_col_name', drop=False]ya.

    – smci

    17 de noviembre de 2016 a las 10:55

  • Como para por qué… Personalmente, necesito obtener los valores de índice de un marco de datos como una lista durante la depuración (Evaluar expresión en PyCharm) o verificar dos veces entre pasos cuando programo de forma interactiva (por ejemplo, en un cuaderno Jupyter) todo el tiempo.

    – Atila Tanyi

    20 mayo 2017 a las 13:31

Para obtener el index valores como un list/list de tuplees para Index/MultiIndex hacer:

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

o

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

  • Obtengo TypeError: el objeto ‘lista’ no se puede llamar para usar list(df.index.values)

    – presagio

    22 de enero de 2018 a las 11:36

  • @Bode, probablemente tengas otra variable llamada list en alcance.

    – Felipe Nube

    22 de enero de 2018 a las 13:53

  • df.index.tolist() es suficiente.

    – douardo

    1 de septiembre de 2021 a las 7:56

avatar de usuario
smci

Si solo está haciendo que estos pasen manualmente a df.set_index()eso es innecesario. Solo hazlo directamente df.set_index['your_col_name', drop=False]ya.

Es muy raro en los pandas que necesites obtener un índice como una lista de Python (a menos que estés haciendo algo bastante original, o de lo contrario pasándolos de vuelta a NumPy), así que si estás haciendo esto mucho, es un olor a código que estas haciendo algo mal.

¿Ha sido útil esta solución?