Como obter índice de todas as linhas cuja coluna específica satisfaz dada a condição em Pandas

Suraj Joshi 30 janeiro 2023
  1. Operação simples de indexação para obter o índice de todas as linhas cuja coluna particular satisfaz a condição dada
  2. np.where() Método para obter índice de todas as linhas cuja coluna em particular satisfaz a condição dada
  3. pandas.DataFrame.query() para obter índices de todas as linhas cuja coluna em particular satisfaz a condição dada
Como obter índice de todas as linhas cuja coluna específica satisfaz dada a condição em Pandas

Podemos obter o índice de todas as linhas cuja coluna em particular satisfaz a condição dada em Pandas usando a operação de indexação simples. Também podemos encontrar seus índices utilizando o método where() do pacote NumPy e o método query() do objeto DataFrame.

Operação simples de indexação para obter o índice de todas as linhas cuja coluna particular satisfaz a condição dada

O uso de uma simples operação de indexação pode realizar a tarefa de obter o índice de linhas cuja coluna particular satisfaz a condição dada.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_Index = df[df["Sales"] >= 300].index.tolist()
print(reqd_Index)

Resultado:

[1, 2, 4, 5]

Aqui, df['Sales']>=300 dá séries de valores booleanos cujos elementos são True se sua coluna Vendas tem um valor maior ou igual a 300.

Podemos recuperar o índice de linhas cujo valor Vendas é maior ou igual a 300 utilizando df[df['Sales']>=300].index.

Finalmente, o método tolist() converte todos os índices em uma lista.

np.where() Método para obter índice de todas as linhas cuja coluna em particular satisfaz a condição dada

np.where() toma a condição como uma entrada e retorna os índices de elementos que satisfazem a condição dada. Portanto, poderíamos utilizar np.where() para obter índices de todas as linhas cuja coluna particular satisfaz a condição dada.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_Index = list(np.where(df["Sales"] >= 300))
print(reqd_Index)

Resultado:

[array([1, 2, 4, 5])]

Estes índices de saída de todas as linhas cujos valores na coluna Sales são maiores ou iguais a 300.

pandas.DataFrame.query() para obter índices de todas as linhas cuja coluna em particular satisfaz a condição dada

pandas.DataFrame.query() retorna DataFrame resultante da expressão de consulta fornecida. Agora, podemos utilizar o atributo index de DataFrame para retornar índices de todas as linhas cuja coluna específica satisfaça a condição dada.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_index = df.query("Sales == 300").index.tolist()
print(reqd_index)

Resultado:

[1, 4, 5]

Retorna a lista de índices de todas as linhas cuja coluna particular satisfaz a condição dada Sales == 300.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artigo relacionado - Pandas DataFrame

Artigo relacionado - Pandas DataFrame Row

Artigo relacionado - Pandas DataFrame Column