Como obter índice de todas as linhas cuja coluna específica satisfaz dada a condição em Pandas
- Operação simples de indexação para obter o índice de todas as linhas cuja coluna particular satisfaz a condição dada
-
np.where()
Método para obter índice de todas as linhas cuja coluna em particular satisfaz a condição dada -
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
.