Cómo borrar una fila basada en el valor de la columna en Pandas DataFrame
-
El método
.drop
para borrar filas en el valor de las columnas en el PandasDataFrame
-
Método de
enmascaramiento booleano
para 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