HOWTO · Pandas
Como obter índice de todas as linhas cuja coluna específica satisfaz dada a condição em Pandas
Podemos obter índices de todas as linhas cuja coluna específica satisfaz a condição dada em Pandas usando uma simples operação de indexação, função np.where(), e método de query().
Nesta página
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.