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

  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

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.

Artigo relacionado - Pandas DataFrame

  • Como eliminar a coluna Pandas DataFrame
  • Aplicar uma função a múltiplas colunas em Pandas DataFrame
  • Artigo relacionado - Pandas Row Index

  • Como Iterar Através de Linhas de um DataFrame em Pandas
  • Carregar ficheiro JSON em Pandas
  • Artigo relacionado - Pandas DataFrame Column

  • Combinar duas colunas de texto em DataFrame em Pandas
  • Escrever um Pandas DataFrame para CSV