Dado un marco de datos, devuelve todas aquellas etiquetas de índice para las que se cumple alguna condición sobre una columna específica.
Solución #1: Podemos usar una operación de indexación simple para seleccionar todos esos valores en la columna que satisface la condición dada.
# importing pandas as pd import pandas as pd # Create the dataframe df = pd.DataFrame({'Date':['10/2/2011', '11/2/2011', '12/2/2011', '13/2/2011'], 'Product':['Umbrella', 'Matress', 'Badminton', 'Shuttle'], 'Last_Price':[1200, 1500, 1600, 352], 'Updated_Price':[1250, 1450, 1550, 400], 'Discount':[10, 10, 10, 10]}) # Create the indexes df.index =['Item 1', 'Item 2', 'Item 3', 'Item 4'] # Print the dataframe print(df)
Producción :
Ahora, queremos averiguar las etiquetas de índice de todos los artículos cuyo ‘Precio_actualizado’ es mayor que 1000.
# Select all the rows which satisfies the criteria # convert the collection of index labels to list. Index_label = df[df['Updated Price']>1000].index.tolist() # Print all the labels print(Index_label)
Salida:
como podemos ver en la salida, la operación anterior ha evaluado correctamente todos los valores y ha devuelto una lista que contiene las etiquetas de índice.
Solución #2: Podemos usar Dataframe.query()
la función Pandas para seleccionar todas las filas que cumplan alguna condición sobre una columna determinada.
# importing pandas as pd import pandas as pd # Create the dataframe df = pd.DataFrame({'Date':['10/2/2011', '11/2/2011', '12/2/2011', '13/2/2011'], 'Product':['Umbrella', 'Matress', 'Badminton', 'Shuttle'], 'Last_Price':[1200, 1500, 1600, 352], 'Updated_Price':[1250, 1450, 1550, 400], 'Discount':[10, 10, 10, 10]}) # Create the indexes df.index =['Item 1', 'Item 2', 'Item 3', 'Item 4'] # Print the dataframe print(df)
Producción :
Ahora, queremos averiguar las etiquetas de índice de todos los artículos cuyo ‘Precio_actualizado’ es mayor que 1000.
# Select all the rows which satisfies the criteria # convert the collection of index labels to list. Index_label = df.query('Updated_Price > 1000').index.tolist() # Print all the labels print(Index_label)
Producción :
Publicación traducida automáticamente
Artículo escrito por Shubham__Ranjan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA