Cómo borrar una fila basada en el valor de la columna en Pandas DataFrame
-
El método
.droppara borrar filas en el valor de las columnas en el PandasDataFrame -
Método de
enmascaramiento booleanopara borrar filas en el PandasDataFrame
Introduciremos métodos para borrar filas del Pandas DataFrame basados en las condiciones de los valores de las columnas, usando .drop (con y sin loc) y máscara booleana.
El método .drop para borrar filas en el valor de las columnas en el Pandas DataFrame
El método .drop acepta un nombre o una lista de columnas y borra las filas o columnas. Para las filas establecemos el parámetro axis=0 y para las columnas establecemos axis=1 (por defecto axis es 0). También podemos obtener las series de True y False basadas en la condición que se aplica sobre el valor de la columna en el Pandas DataFrame.
Códigos de ejemplo:
# python 3.x
import pandas as pd
fruit_list = [
("Orange", 34, "Yes"),
("Mango", 24, "No"),
("banana", 14, "No"),
("Apple", 44, "Yes"),
("Pineapple", 64, "No"),
("Kiwi", 84, "Yes"),
]
# Create a DataFrame object
df = pd.DataFrame(fruit_list, columns=["Name", "Price", "Stock"])
# Get names of indexes for which column Stock has value No
indexNames = df[df["Stock"] == "No"].index
# Delete these row indexes from dataFrame
df.drop(indexNames, inplace=True)
print(df)
Producción :
Name Price Stock
0 Orange 34 Yes
3 Apple 44 Yes
5 Kiwi 84 Yes
También podemos obtener un resultado similar usando .loc dentro del método df.drop.
df.drop(df.loc[df["Stock"] == "Yes"].index, inplace=True)
También podemos soltar las filas basadas en múltiples valores de columna. En el ejemplo anterior podemos eliminar las filas que tienen un precio >= 30 y un precio <=70.
Código de ejemplo:
# python 3.x
import pandas as pd
# List of Tuples
fruit_list = [
("Orange", 34, "Yes"),
("Mango", 24, "No"),
("banana", 14, "No"),
("Apple", 44, "Yes"),
("Pineapple", 64, "No"),
("Kiwi", 84, "Yes"),
]
# Create a DataFrame object
df = pd.DataFrame(fruit_list, columns=["Name", "Price", "Stock"])
indexNames = df[(df["Price"] >= 30) & (df["Price"] <= 70)].index
df.drop(indexNames, inplace=True)
print(df)
Producción :
Name Price Stock
1 Mango 24 No
2 banana 14 No
5 Kiwi 84 Yes
Se han eliminado las filas con precio >30 y menos <70.
Método de enmascaramiento booleano para borrar filas en el Pandas DataFrame
El enmascaramiento booleano es la mejor y más simple manera de borrar una fila en el Pandas DataFrame basado en el valor de la columna.
Códigos de ejemplo:
# python 3.x
import pandas as pd
# List of Tuples
fruit_list = [
("Orange", 34, "Yes"),
("Mango", 24, "No"),
("banana", 14, "No"),
("Apple", 44, "Yes"),
("Pineapple", 64, "No"),
("Kiwi", 84, "Yes"),
]
# Create a DataFrame object
df = pd.DataFrame(fruit_list, columns=["Name", "Price", "Stock"])
print(df[df.Price > 40])
print("............................")
print(df[(df.Price > 40) & (df.Stock == "Yes")])
Producción :
Name Price Stock
3 Apple 44 Yes
4 Pineapple 64 No
5 Kiwi 84 Yes
............................
Name Price Stock
3 Apple 44 Yes
5 Kiwi 84 Yes
Artículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma