Como filtrar linhas em um DataFrame do Pandas com base nos valores das colunas

Temp mail SuperHeros
Como filtrar linhas em um DataFrame do Pandas com base nos valores das colunas
Como filtrar linhas em um DataFrame do Pandas com base nos valores das colunas

Filtrando linhas em DataFrames do Pandas

Pandas é uma biblioteca poderosa em Python para manipulação e análise de dados. Uma tarefa comum é selecionar linhas de um DataFrame com base nos valores das colunas, semelhante ao SELECT * FROM table WHERE column_name = some_value do SQL.

Este guia orientará você através de vários métodos para conseguir isso no Pandas, facilitando a filtragem eficiente de seus dados. Quer você seja um usuário iniciante ou experiente, essas dicas irão aprimorar suas habilidades de manipulação de dados.

Comando Descrição
pd.DataFrame(data) Cria um DataFrame a partir de um dicionário de dados.
df[column_name] Acessa uma coluna no DataFrame por nome.
df[condition] Filtra o DataFrame com base numa condição aplicada a uma coluna.
print(selected_rows) Imprime o DataFrame ou um subconjunto dele no console.
df[df['Age'] >df[df['Age'] > 25] Seleciona linhas onde os valores da coluna 'Idade' são maiores que 25.
df[df['City'] == 'Chicago'] Seleciona linhas onde os valores da coluna 'Cidade' são iguais a 'Chicago'.

Compreendendo a seleção de linhas do DataFrame no Pandas

Os scripts fornecidos demonstram como selecionar linhas de um DataFrame com base nos valores das colunas usando a biblioteca Pandas em Python. O primeiro script começa importando a biblioteca Pandas com o import pandas as pd comando. Em seguida, ele cria um DataFrame de amostra usando um dicionário de dados, que é convertido em um DataFrame com o pd.DataFrame(data) comando. O script ilustra então dois métodos para seleção de linha: selecionar linhas onde o valor da coluna 'Idade' é maior que 25 usando df[df['Age'] > 25]e selecionando linhas onde o valor da coluna 'Cidade' é 'Chicago' usando df[df['City'] == 'Chicago']. Esses DataFrames filtrados são impressos usando o print() função para exibir as linhas selecionadas.

O segundo script segue uma estrutura semelhante, mas utiliza dados e critérios de seleção diferentes. Ele cria um DataFrame com informações do produto, incluindo colunas ‘Produto’, ‘Preço’ e ‘Estoque’. As linhas são selecionadas onde o 'Preço' é menor ou igual a 200 com df[df['Price'] <= 200], e onde o 'Estoque' for superior a 40 usando df[df['Stock'] > 40]. O objetivo destes scripts é mostrar como filtrar linhas do DataFrame com base em condições específicas, semelhante a como você usaria uma consulta SQL para selecionar linhas de uma tabela com base em um valor de coluna. Ao compreender e aplicar esses comandos, você pode manipular e analisar dados com eficiência em seus DataFrames.

Selecionando linhas em um DataFrame usando valores de coluna no Pandas

Biblioteca Python com Pandas

# Importing the necessary library
import pandas as pd

# Creating a sample DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'Age': [24, 27, 22, 32, 29],
    'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)

# Selecting rows where Age is greater than 25
selected_rows = df[df['Age'] > 25]
print(selected_rows)

# Selecting rows where City is 'Chicago'
chicago_rows = df[df['City'] == 'Chicago']
print(chicago_rows)

Filtrando dados em um DataFrame com base em critérios de coluna

Biblioteca Python com Pandas

# Importing pandas library
import pandas as pd

# Creating a sample DataFrame
data = {'Product': ['A', 'B', 'C', 'D', 'E'],
        'Price': [100, 150, 200, 250, 300],
        'Stock': [30, 60, 90, 20, 50]}
df = pd.DataFrame(data)

# Selecting rows where Price is less than or equal to 200
affordable_products = df[df['Price'] <= 200]
print(affordable_products)

# Selecting rows where Stock is more than 40
in_stock = df[df['Stock'] > 40]
print(in_stock)

Técnicas avançadas para selecionar linhas de DataFrame em Pandas

Além da filtragem básica usando indexação booleana, o Pandas oferece técnicas avançadas para selecionar linhas com base nos valores das colunas. Um método poderoso é usar o query() função, que permite filtrar linhas com uma expressão de consulta, tornando a sintaxe mais limpa e muitas vezes mais intuitiva. Por exemplo, em vez de usar df[df['Age'] > 25], você pode escrever df.query('Age > 25'). Este método é particularmente útil ao lidar com condições mais complexas ou quando os nomes das colunas contêm espaços. Além disso, o isin() A função é benéfica quando você deseja filtrar linhas com base em uma lista de valores. Por exemplo, para selecionar linhas onde o valor da coluna 'Cidade' é 'Chicago' ou 'Nova York', você pode usar df[df['City'].isin(['Chicago', 'New York'])].

Outra técnica envolve a loc e iloc indexadores. O loc indexador é baseado em rótulos, permitindo selecionar linhas com base em rótulos de linhas e nomes de colunas, enquanto iloc é baseado em localização inteira, permitindo a seleção por números de linha e coluna. Esta flexibilidade é particularmente útil para selecionar linhas com base em uma condição aplicada a uma coluna diferente. Por exemplo, df.loc[df['Age'] > 25, 'Name'] retornará os nomes de indivíduos com mais de 25 anos. Esses métodos expandem seu kit de ferramentas para manipulação e análise eficiente de dados no Pandas, oferecendo código mais legível e de fácil manutenção.

Perguntas e respostas comuns sobre a seleção de linhas do DataFrame

  1. Como posso selecionar linhas com base em múltiplas condições?
  2. Você pode usar o query() funcionar ou combinar condições com operadores lógicos como & e |. Por exemplo, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
  3. Posso filtrar linhas com base em uma lista de valores?
  4. Sim, use o isin() função. Por exemplo, df[df['City'].isin(['Chicago', 'New York'])].
  5. Qual é a diferença entre loc e iloc?
  6. loc é baseado em rótulo, enquanto iloc é baseado em localização inteira. Usar loc com rótulos de linha/coluna e iloc com índices de linha/coluna.
  7. Como posso selecionar colunas específicas ao filtrar linhas?
  8. Você pode usar loc. Por exemplo, df.loc[df['Age'] > 25, ['Name', 'City']].
  9. Como lidar com valores ausentes ao selecionar linhas?
  10. Use o dropna() função para remover linhas com valores ausentes ou fillna() para substituí-los por um valor especificado.
  11. Posso usar expressões regulares para filtrar linhas?
  12. Sim o str.contains() funcionar com o regex=True O parâmetro permite filtrar linhas com base em padrões regex. Por exemplo, df[df['Name'].str.contains('^A', regex=True)].
  13. Como posso filtrar linhas com base no índice?
  14. Você pode usar loc com o nome do índice. Por exemplo, df.loc[df.index == 'some_index'].
  15. E se os nomes das minhas colunas contiverem espaços ou caracteres especiais?
  16. Use o query() função que pode lidar com esses nomes de colunas com crases. Por exemplo, df.query('`column name` == value').

Considerações finais sobre técnicas de seleção de linhas do DataFrame

Selecionar linhas de um DataFrame com base nos valores das colunas no Pandas é uma habilidade crucial para manipulação de dados. Os vários métodos discutidos, incluindo indexação booleana, query(), isin()e indexação baseada em rótulo e em localização de número inteiro com loc e iloc, fornecem ferramentas poderosas para filtrar dados com eficiência. O domínio dessas técnicas permite uma melhor análise de dados e um código mais limpo e de fácil manutenção.