Como excluir uma linha com base no valor da coluna em Pandas DataFrame
-
Método para excluir linha no valor da coluna em Pandas
DataFrame
-
Máscara booleana
Método para excluir filas em PandasDataFrame
Introduziremos métodos para excluir linhas de Pandas DataFrame
com base nas condições dos valores das colunas, utilizando .drop
(com e sem loc
) e máscara booleana
.
Método para excluir linha no valor da coluna em Pandas DataFrame
O método .drop
aceita um único ou lista de nomes de colunas e apaga as linhas ou colunas. Para linhas definimos o parâmetro axis=0
e para coluna definimos axis=1
(por padrão axis
é 0
). Também podemos obter as séries de Verdade
e False
com base na condição de aplicação do valor da coluna em Pandas DataFrame
.
Códigos de exemplo:
# 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)
Resultado:
Name Price Stock
0 Orange 34 Yes
3 Apple 44 Yes
5 Kiwi 84 Yes
Também podemos obter um resultado semelhante utilizando o método .loc
dentro do método df.drop
.
df.drop(df.loc[df["Stock"] == "Yes"].index, inplace=True)
Também podemos soltar as linhas com base em valores de múltiplas colunas. No exemplo acima, podemos excluir linhas que tenham preço >= 30 e preço <=70.
Exemplo de código:
# 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)
Resultado:
Name Price Stock
1 Mango 24 No
2 banana 14 No
5 Kiwi 84 Yes
Linhas com preço > 30 e menos < 70 foram eliminadas.
Máscara booleana
Método para excluir filas em Pandas DataFrame
A máscara booleana
é a melhor e mais simples maneira de eliminar filas em Pandas DataFrame
com base no valor da coluna.
Exemplos de códigos:
# 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")])
Resultado:
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
Artigo relacionado - Pandas DataFrame
- Como obter os cabeçalhos da coluna Pandas DataFrame como uma lista
- Como eliminar a coluna Pandas DataFrame
- Como Converter a Coluna DataFrame para DataTempo em Pandas
- Como Converter um Flutuador em um Inteiro em Pandas DataFrame
- Como Classificar Pandas DataFrame pelos Valores de uma Coluna
- Como Obter o Agregado de Pandas Group-By e Sum