Indexación y selección de datos con pandas

| | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Veamos un ejemplo de indexación en Pandas. En este artículo, usamos el archivo "nba.csv‚" para cargar CSV, haga clic en aquí .

Selección de múltiples filas y múltiples columnas

Tomemos un DataFrame con algunos datos falsos, ahora estamos indexando esto DataFrame. En esto, seleccionamos varias filas y varias columnas del DataFrame. Data frame con conjunto de datos.

Supongamos que queremos seleccionar únicamente las columnas Edad, Colegio y Salario para filas etiquetadas como Amir Johnson y Terry Rozier

Nuestro último DataFrame w se verá así:

Seleccionar varias filas y todas las columnas

Digamos que queremos seleccionar la línea Amir Jhonson , Terry Rozier y John Holland con todas las columnas en el marco de datos.

Nuestro último DataFrame se verá así:

Seleccionando algunas columnas y todas las filas

Digamos que queremos seleccione las columnas Edad, Altura y Salario con todas las filas en el dataframe.

Nuestro último DataFrame se verá así:

< /figure>

Indización de pandas usando [] , .loc [] , . iloc [] , Dataframe .loc [] : esta función se usa para etiquetas.
  • Dataframe.iloc [] : esto la función se usa para posiciones o números enteros
  • Dataframe.ix [] : esta función se usa tanto para etiquetas como para números enteros.
  • En conjunto, se denominan indexadores. Estas son, con mucho, las formas más comunes de indexar datos. Estas son cuatro funciones que lo ayudan a obtener elementos, filas y columnas de un DataFrame.

    Indizar un Dataframe usando el operador de indexación [] : < br>La indexación de operadores se utiliza para hacer referencia a los corchetes que siguen a un objeto. En
    # crear un marco de datos a partir de un archivo CSV

    datos = pd.read_csv ( "nba .csv" , index_col = "Nombre" )


    # extracción de columnas usando el operador de índice

    primero = datos [ "Edad" ]



    print (primero)

    Salir:

    Selección de varias columnas

    Para seleccionar varias columnas, debemos pasar una lista de columnas en la declaración de indexación .


    # importar paquete pandas

    importar pa n das as pd


    # crear un marco de datos desde un archivo CSV

    datos = pd.read_csv ( "nba.csv" , index_col = " Nombre " )


    # obtener varias columnas usando el operador de índice

    primero = datos [[ "Edad" , "Universidad" , "Salario" ]]




    primero

    Salir:

    Indexar el DataFrame usando pd.read_csv ( "nba.csv" , index_col = "Nombre" )


    # extraer lectura de cadenas usando el método loc

    primero = datos .loc [ "Avery Bradley" ]

    segundo = datos.loc [ "RJ Hunter" ]



    print (primero, "" , segundo)

    Salida:
    Como se muestra en la imagen de salida, se devolvieron dos series porque solo había un parámetro en ambas ocasiones.


    Seleccionando varias líneas

    Para seleccionar varias líneas, ponemos todas las etiquetas de línea en una lista y las pasamos a la función . loc .


    import pandas as pd


    # crear un marco de datos a partir de un archivo CSV

    datos = pd.read_csv ( "nba.csv" , index_col = "Nombre" )


    # obtener varias líneas usando el método loc

    primero = datos.loc [[ "Avery Bradley" , " RJ Hunter " ]]

    print (primero)

    < /tr>

    Salida:

    Seleccionando dos filas y tres columnas

    Para seleccionar dos filas y tres columnas, seleccionamos las dos filas queremos seleccionar y tres columnas y ponerlas en una lista separada como esta:


     Dataframe.loc [["fila1", "fila2"], ["columna1", "columna2", "columna3"] ] 

    importar pandas como pd


    # crear un marco de datos a partir de un archivo CSV

    data < /código> = pd.read_csv ( "nba.csv" < clase de código = "simple">, index_col = "Nombre" )


    # extrayendo dos filas y tres columnas usando el método loc

    primero = data.loc [[ "Avery Bradley" , "RJ Hunter" ] ,

    [ "Equipo" , "Número" , "Posición" ]]



    imprimir (primero)

    Salida:


    Seleccionar todas las filas y algunas columnas

    Para seleccionar todas las filas y algunas columnas, usamos dos puntos [:], para seleccionar todas las filas y una lista de algunas de las columnas que queremos seleccionar de la siguiente manera:

     Dataframe.loc [[: , ["columna1", "columna2", "columna3"]] 

    < tbody>

    import pandas como pd


    # crear marco de datos a partir de un archivo CSV

    datos = pd.read_csv ( "nba.csv" , index_col < /código> = "Nombre" )


    # obtener todas las filas y algunas columnas usando el método loc

    first = data.loc [:, [ "Equipo" , "Número" , "Posición" ]]



    print ( primero)

    Salir:

    Indización de DataFrame usando . iloc [] :
    Esta función nos permite obtener filas y columnas por posición. Para hacer esto, necesitamos especificar las posiciones de las filas que necesitamos, así como las posiciones de las columnas que necesitamos. df.iloc es muy similar a df.loc pero solo usa ubicaciones enteras para la selección.

    Línea única selección

    Para seleccionar una línea usando .iloc [] , podemos pasar un número entero a .iloc [] .

    Salir:


    datos = pd.read_csv ( " nba.csv " , index_col = "Nombre" )



    # obteniendo múltiples líneas usando el método iloc < /código>

    fila2 = data.iloc [[< /código> 3 , 5 , 7 ]]




    fila2

    Salir:


    Selección de dos filas y dos columnas

    Para seleccionar dos filas y dos columnas, creamos una lista de 2 enteros para cadenas y una lista de 2 enteros para columnas, y luego pasamos la función .iloc [] .


    < clase de código = "palabra clave"> importar pandas como pd


    # crear marco de datos a partir de Archivo CSV

    datos = pd.read_csv ( "nba.csv" , index_col = < código clase = "cadena"> "Nombre" )



    # extracción de dos filas y dos columnas utilizando el método iloc

    row2 = data.iloc [[[ 3 , 4 ], [ 1 , 2 ]]

    imprimir (fila2)

    Salir:

    Seleccionar todas las filas y algunas columnas

    Para seleccionar todas las filas y algunas columnas, usamos dos puntos [:], para seleccionar todas las filas, y fo r columnas, componemos una lista de enteros y luego pasamos la función .iloc [] .



    importar pandas como pd


    # crear un marco de datos desde un archivo CSV

    datos = pd.read_csv ( < clase de código = "cadena"> "nba.csv" , index_col = "Nombre" )



    # extracción de todas las filas y algunas columnas usando el método iloc

    fila2 = datos.iloc [:, [ 1 , 2 ]]

    < /código>

    imprimir (fila2)

    importar pandas como pd


    # crear un marco de datos desde un archivo CSV

    datos = pd.read_csv ( < clase de código = "cadena"> "nba.csv" , index_col = "Nombre" )



    # iloc extracción de filas

    fila2 = datos.iloc [ 3 ]




    imprimir (fila2)

    Salir:

    Indización usando .ix [] as .loc []

    Para seleccionar una fila, colocamos una sola etiqueta de fila en la función .ix . Esta función actúa como .loc [] si pasamos la etiqueta de línea como argumento a la función.


    # importar paquete pandas

    import pandas como pd


    # crear un marco de datos desde un archivo CSV

    datos = pd.read_csv ( " nba.csv " , index_col = "Name" )


    # obteniendo una cadena usando el método ix

    primero = data.ix [ "Avery Bradley" ]




    print < /código> (primero)

    Salir:

    Seleccionando una línea usando .ix [] as , index_col = "Nombre" )


    # obteniendo una cadena usando el método ix

    primero = datos.ix [ 1 < clase de código ="p lain ">]


    imprimir (primero)

    Salir:

    < figure class = aligncenter amp-wp-inline-71b6f2deb98f54bf23d07f2b79530929>


    Métodos de indexación en DataFrame

    < /tr>
    Función Descripción
    Dataframe.head () Devuelve las filas superiores n de un marco de datos.
    Dataframe.tail () Devuelve n filas inferiores de un marco de datos.
    Dataframe.at [] Acceda a un solo valor para un par de etiquetas de fila/columna.
    Dataframe.iat [] Acceda a un valor único para un par de fila/columna por posición de entero.
    Dataframe.tail () Indexación puramente basada en la ubicación de enteros para la selección por posición.
    DataFrame.lookup () Función de "indexación elegante" basada en etiquetas para DataFrame.
    Marco de datos .pop () Devuelve el elemento y lo suelta del marco.
    DataFrame.xs() Devuelve una sección transversal (fila(s) o columna(s)) del DataFrame.
    DataFrame.get () Obtener elemento del objeto para una clave dada (columna DataFrame, segmento de panel, etc.)
    DataFrame.isin () Devuelve el DataFrame booleano que muestra si cada elemento en el DataFrame está contenido en valores.
    DataFrame.where () Devuelve un objeto de la misma forma que self y cuyas entradas correspondientes son de self donde cond es True y de lo contrario son de other.< /td>