Pandas DataFrame Python: Construir e Filtrar Linhas

Crie um pandas DataFrame em Python com pd.DataFrame(data), usando um dicionário de listas de comprimento igual para colunas e valores. Use um DataFrame quando os registros precisarem de linhas e colunas rotuladas, seleção de colunas ou filtragem vetorizada. Uma máscara booleana filtra dados tabulares sem escrever um laço Python. O resultado mantém os rótulos de índice originais a menos que você os redefina explicitamente.

Exemplo Python Pandas DataFrame Para Filtrar Linhas

Saída:

A saída aparecerá aqui...

Saída:

product  units
Keyboard     12
 Monitor     15

Como Este Exemplo Funciona

  1. import pandas as pd dá ao pacote seu alias convencional pd.
  2. O construtor pandas DataFrame transforma cada chave de dicionário em um rótulo de coluna. Como ambas as listas contêm três valores, o pandas cria três linhas e atribui um RangeIndex padrão com 0, 1 e 2.
  3. sales["units"] >= 10 produz uma Series booleana alinhada com esse índice. Passar a máscara de volta para sales[...] mantém apenas as linhas cujo valor é True.
  4. to_string(index=False) oculta o índice na tabela impressa; não remove nem renumera os rótulos armazenados.

Provar o que a Execução do DataFrame Realmente Fez

Execute o programa duas vezes na mesma página, abrindo o Run Details após cada conclusão. Isso transforma o painel em um experimento de dependências em vez de confundir a duração da execução a frio com um benchmark do DataFrame.

ObservaçãoRuntime a frioRuntime quente na mesma página
Requests00
Pacotes recém-disponíveispandas 1.5.3, numpy 1.26.1, python-dateutil 2.8.2, six 1.16.0, pytz 2023.30
O que mudoupandas e suas dependências ficaram disponíveiso runtime já os tinha

O web.run detecta import pandas e carrega os pacotes compatíveis antes de o Python do usuário iniciar. O Run Details reporta a diferença entre os pacotes disponíveis antes e depois dessa execução; uma lista de Packages vazia na execução quente significa “nada carregado de novo”, não “pandas não foi usado.”

A duração total da primeira execução inclui o bootstrap do pacote e a execução do Python. Compare-a com a execução quente antes de culpar pd.DataFrame(...); os tempos variam por máquina e estado de cache, então use a lista de Packages para identificar o trabalho de bootstrap.

Ambas as execuções reportam zero requisições de usuário porque o dicionário e a filtragem permanecem locais. A execução a frio ainda baixa arquivos de pacote como atividade de runtime. Portanto, “sem requisições de usuário” prova que o trecho não fez requisições externas, não que o navegador transferiu zero bytes.

A Armadilha do Índice Filtrado: loc Não É iloc

Filtrar preserva os rótulos. Aqui ready.index.tolist() é [0, 2], embora index=False faça a saída parecer uma tabela nova de duas linhas. O código que trata a segunda linha exibida como o rótulo 1 falha:

Incorreto:

second_product = ready.loc[1, "product"]  # KeyError: 1

Correto para a segunda linha por posição:

second_product = ready.iloc[1]["product"]

Correto quando o código posterior precisa de rótulos sequenciais:

ready = ready.reset_index(drop=True)
second_product = ready.loc[1, "product"]

Use .loc para rótulos de índice e .iloc para posições com base zero. Redefina o índice apenas quando os novos rótulos forem parte do resultado pretendido; caso contrário, preservar os rótulos de origem ajuda a rastrear as linhas filtradas de volta aos dados originais.

Erros de Comprimento no Construtor DataFrame

Um dicionário de listas deve descrever uma tabela retangular. O pandas lança ValueError: All arrays must be of the same length em vez de adivinhar como preencher uma coluna curta.

Incorreto:

pd.DataFrame({"product": ["Keyboard", "Mouse"], "units": [12]})

Correto:

pd.DataFrame({"product": ["Keyboard", "Mouse"], "units": [12, None]})

Adicione um valor ausente explícito apenas quando ele representar os dados honestamente; caso contrário, corrija os registros de origem antes de construir a tabela.

Quando um DataFrame É o Contêiner Certo

EscolhaQuando se encaixa
DataFrameVárias colunas rotuladas precisam de indexação booleana, operações de coluna ou análise tabular
SeriesUma dimensão rotulada é suficiente
Lista de dicionáriosUma pequena coleção de registros precisa de iteração mas não de operações de coluna
Array NumPyDados numéricos homogêneos precisam de operações matriciais sem rótulos de linha ou coluna

Um DataFrame justifica seu custo em pacote e memória quando rótulos e operações vetorizadas simplificam transformações reais. Use uma lista de dicionários quando os registros são pequenos e precisam apenas de iteração Python comum.