La indexación juega un papel importante en los marcos de datos. A veces necesitamos dar una «indexación elegante» basada en etiquetas al marco de datos de Pandas. Para esto, tenemos una función en pandas conocida como pandas.DataFrame.lookup(). El concepto de Fancy Indexing es simple, lo que significa que tenemos que pasar una array de índices para acceder a varios elementos de la array a la vez.
La función pandas.DataFrame.lookup() toma arrays de igual longitud de etiquetas de fila y columna como sus atributos y devuelve una array de los valores correspondientes a cada par (fila, columna).
Sintaxis: DataFrame.lookup(row_labels, col_labels)
Parámetros:
row_labels: las etiquetas de fila que se utilizarán para la búsqueda.
col_labels: las etiquetas de columna que se usarán para la búsqueda.Devoluciones:
numpy.ndarray
Ejemplo 1:
Python3
# importing pandas library import pandas as pd # Creating a Data frame df = pd.DataFrame([['1993', 'x', 5, 4, 7, 2], ['1994', 'v', 10, 1, 2, 0], ['1995', 'z', 2, 1, 4, 12], ['1996', 'y', 2, 1, 10, 1], ['1998', 'x', 2, 10, 40, 12], ['1999', 'x', 5, 8, 11, 6]], columns=('Year', 'Alpha', 'x', 'y', 'z', 'v')) # Display Data frame df
Producción:
Python3
# Use concept of fancy indexing to make new # column 'Value' in data frame # with help of dataframe.lookup() function df['Value'] = df.lookup(df.index, df['Alpha']) # Modified Data frame df
Producción:
En el ejemplo anterior, usamos el concepto de indexación elegante basada en etiquetas para acceder a múltiples elementos del marco de datos a la vez y, por lo tanto, creamos una nueva columna ‘ Valor ‘ usando la función dataframe.lookup()
Ejemplo 2:
Python3
# importing pandas library import pandas as pd # Creating a Data frame df = pd.DataFrame([['1993', 'Avi', 5, 41, 70, 'Bob'], ['1994', 'Cathy', 10, 1, 22, 'Cathy'], ['1995', 'Cathy', 24, 11, 44, 'Bob'], ['1996', 'Bob', 2, 11, 10, 'Avi'], ['1998', 'Avi', 20, 10, 40, 'Avi'], ['1999', 'Avi', 50, 8, 11, 'Cathy']], columns=('Patients', 'Name', 'Avi', 'Bob', 'Cathy', 'Aname')) # Display Data frame df
Producción:
Python3
# Use concept of fancy indexing to make two # new columns in data frame with help of # dataframe.lookup() function df['Age'] = df.lookup(df.index, df['Name']) df['Marks'] = df.lookup(df.index, df['Aname']) # Modified Data frame df
Producción:
En el ejemplo anterior, usamos el concepto de indexación elegante basada en etiquetas para acceder a múltiples elementos del marco de datos a la vez y, por lo tanto, creamos dos nuevas columnas ‘ Edad ‘ y ‘ Marcas ‘ usando la función dataframe.lookup()
Ejemplo 3:
Python3
# importing pandas library import pandas as pd # Creating a Data frame df = pd.DataFrame([['Date1', 1850, 1992,'Avi', 5, 41, 70, 'Avi'], ['Date2', 1896, 1950, 'Cathy', 10, 1, 22, 'Avi'], ['Date2', 1900, 1920, 'Cathy', 24, 11, 44, 'Cathy'], ['Date1', 1889, 1960, 'Bob', 2, 11, 10, 'Bob'], ['Date2', 1910, 1952, 'Avi', 20, 10, 40, 'Bob'], ['Date1', 1999, 1929, 'Avi', 50, 8, 11, 'Cathy']], columns=('Year', 'Date1', 'Date2', 'Name', 'Avi', 'Bob', 'Cathy', 'Alpha')) # Display Data frame df
Producción:
Python3
# Use concept of fancy indexing to make two # three columns in data frame with help of # dataframe.lookup() function df['Age'] = df.lookup(df.index, df['Name']) df['Height'] = df.lookup(df.index, df['Alpha']) df['Date_of_Birth'] = df.lookup(df.index, df['Year']) # Modified Data frame df
Producción:
En el ejemplo anterior, usamos el concepto de indexación elegante basada en etiquetas para acceder a múltiples elementos del marco de datos a la vez y, por lo tanto, creamos dos nuevas columnas ‘ Edad ‘, ‘ Altura ‘ y ‘ Fecha_de_nacimiento ‘ usando la función dataframe.lookup()
Los tres ejemplos muestran cómo funciona la indexación elegante y cómo podemos crear nuevas columnas usando la indexación elegante junto con la función dataframe.lookup().
Publicación traducida automáticamente
Artículo escrito por vanshgaur14866 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA