Curso
Neste artigo, eu compilei as perguntas mais frequentes em entrevistas sobre Pandas e suas respostas. Algumas das perguntas são da minha própria experiência em entrevistas na Target, no cargo de cientista de dados. Vamos começar!
Perguntas básicas sobre Pandas em entrevistas
Vamos dar uma olhada em algumas perguntas básicas de entrevista sobre pandas. Entrevistadores legais podem começar com essas perguntas simples pra te deixar à vontade no começo, enquanto outros podem fazer essas perguntas pra avaliar seu conhecimento básico sobre a biblioteca.
1. O que é pandas em Python?
pandas é uma biblioteca Python de código aberto com métodos poderosos e integrados para limpar, analisar e manipular conjuntos de dados de forma eficiente. Desenvolvido por Wes McKinney em 2008, esse pacote poderoso pode ser facilmente combinado com vários outros módulos de ciência de dados em Python.
Embora originalmente construído sobre o NumPy, o moderno pandas (v2.0+) também suporta o backend PyArrow. Isso permite operações significativamente mais rápidas, tipos de dados de string verdadeiros e melhor tratamento de valores ausentes (tipos nulos) em comparação com a arquitetura legada apenas de NumPy.
2. Como acessar rapidinho as 5 primeiras e as 5 últimas linhas de um DataFrame do pandas?
O método ` head() ` em ` pandas ` é usado para acessar as primeiras 5 linhas de um DataFrame, e o método ` tail() ` é usado para acessar as últimas 5 linhas.
-
Para acessar as 5 primeiras linhas:
dataframe_name.head() -
Pra acessar as últimas 5 linhas:
dataframe_name.tail()
3. Por que o DataFrame.shape não tem parênteses?
Em pandas, shape é um atributo e não um método. Então, você deve acessá-lo sem parênteses.
DataFrame.shape retorna uma tupla com o número de linhas e colunas em um DataFrame.
4. Qual é a diferença entre uma Série e um DataFrame?
-
DataFrame: O DataFrame “
pandas” vai estar em formato tabular, com várias linhas e colunas, onde cada coluna pode ter tipos de dados diferentes. -
Série: A Série é uma matriz rotulada unidimensional que pode guardar qualquer tipo de dados, mas todos os seus valores devem ser do mesmo tipo de dados. A estrutura de dados da Série é mais parecida com uma única coluna de um DataFrame.
A estrutura de dados Series usa menos memória do que um DataFrame. Então, algumas tarefas de manipulação de dados são mais rápidas nele.
Mas, um DataFrame pode guardar conjuntos de dados grandes e complexos, enquanto uma Série só consegue lidar com dados homogêneos. Então, o conjunto de operações que você pode fazer em um DataFrame é bem maior do que em uma estrutura de dados Series.
5. O que é um índice no pandas?
O índice é uma série de rótulos que podem identificar de forma única cada linha de um DataFrame. O índice pode ser de qualquer tipo de dados (como inteiro, string, hash, etc.).
df.index imprime os índices das linhas atuais do DataFrame df.
Perguntas intermediárias sobre Pandas para entrevistas
Essas perguntas vão ser um pouco mais desafiadoras, e é mais provável que você as encontre em funções que exigem experiência prévia com pandas.
6. O que é multi-indexação no pandas?
O índice em pandas identifica de forma única cada linha de um DataFrame. Normalmente, escolhemos a coluna que pode identificar de forma única cada linha de um DataFrame e a definimos como índice. Mas e se você não tiver uma única coluna que possa fazer isso?
Por exemplo, você tem as colunas “nome”, “idade”, “endereço” e “notas” em um DataFrame. Qualquer uma das colunas acima pode não ter valores únicos para todas as diferentes linhas e não servir como índice.
Mas, as colunas “nome” e “endereço” juntas podem identificar cada linha do DataFrame de forma única. Então, você pode definir as duas colunas como índice. Agora, seu DataFrame tem um índice múltiplo ou hierárquico.
7. Explique a reindexação do Pandas. Dá um exemplo.
A reindexação é usada para ajustar um DataFrame a um novo índice. É mais comumente usado para preencher lacunas em dados de séries temporais ou para garantir que um relatório inclua todas as categorias, mesmo aquelas com valores zero.
Se o novo índice tiver rótulos que não estão no DataFrame original, o ` pandas ` vai colocar um ` NaN ` (ou um valor de preenchimento específico) nessas linhas.
Exemplo: Imagina que você tem os dados de vendas do primeiro e terceiro trimestres, mas o segundo e quarto trimestres estão faltando porque não houve vendas. Um gráfico padrão poderia parecer enganador. O comando ` reindex() ` resolve isso forçando os trimestres ausentes a entrarem no DataFrame.
import pandas as pd
# Original data (Note: Q2 and Q4 are missing)
data = {'Quarter': ['Q1', 'Q3'], 'Sales': [15000, 18000]}
df = pd.read_json(pd.DataFrame(data).to_json()) # Simulating loaded data
df = df.set_index('Quarter')
# The complete index we REQUIRE for the report
all_quarters = ['Q1', 'Q2', 'Q3', 'Q4']
# Reindex forces Q2 and Q4 to appear, filling them with 0 instead of NaN
df_full = df.reindex(all_quarters, fill_value=0)
8. Qual é a diferença entre loc e iloc?
Os métodos ` .loc() ` e ` .iloc() ` no pandas são usados para selecionar subconjuntos de um DataFrame. Na prática, eles são muito usados pra filtrar um DataFrame com base em condições.
Devemos usar o método ` .loc() ` para selecionar dados usando rótulos reais de linhas e colunas, enquanto o método ` .iloc() ` é usado para extrair dados com base em índices inteiros de linhas e colunas.
9. Mostre duas maneiras diferentes de criar um DataFrame do pandas.
Do dicionário:
import pandas as pd
data = {'Name': ['John', 'Cataline', 'Matt'],
'Age': [50, 45, 30],
'City': ['Austin', 'San Francisco', 'Boston'],
'Marks' : [70, 80, 95]}
df = pd.DataFrame(data)
De uma lista de listas:
import pandas as pd
data = [['John', 25, 'Austin',70],
['Cataline', 30, 'San Francisco',80],
['Matt', 35, 'Boston',90]]
columns = ['Name', 'Age', 'City', 'Marks']
df = pd.DataFrame(data, columns=columns)
10. Como você consegue a contagem de todos os valores únicos de uma coluna categórica em um DataFrame?
A função Series.value_counts() mostra quantas vezes cada valor único aparece numa série ou coluna.
Exemplo:
Criamos um DataFrame df que tem uma coluna categórica chamada “ Sex ” e usamos a função “ .value_counts() ” pra ver a contagem de cada valor único nessa coluna.
import pandas as pd
data = [['John', 50, 'Male', 'Austin', 70],
['Cataline', 45 ,'Female', 'San Francisco', 80],
['Matt', 30 ,'Male','Boston', 95]]
# Column labels of the DataFrame
columns = ['Name','Age','Sex', 'City', 'Marks']
# Create a DataFrame df
df = pd.DataFrame(data, columns=columns)
df['Sex'].value_counts()
Se você quiser ver a distribuição percentual em vez de apenas contagens brutas, use normalize=True como argumento em .value_counts().
11. O que é o tipo de dados de categoria e por que usá-lo?
O tipo de dados ` category ` é usado para colunas com um número limitado de valores de string exclusivos (baixa cardinalidade). Isso economiza uma quantidade enorme de memória e acelera operações como classificação e agrupamento, porque o Pandas armazena as strings uma vez em uma tabela de pesquisa e usa inteiros leves para a coluna de dados real.
Perguntas da entrevista sobre Pandas para profissionais experientes
Quem já tem bastante experiência em pandas e está se candidatando a cargos mais altos pode se deparar com algumas dessas perguntas:
12. Como você otimiza o desempenho com grandes conjuntos de dados no pandas?
-
Use o PyArrow: Carregue os dados com
engine="pyarrow"edtype_backend="pyarrow". Isso é mais rápido e muito mais eficiente em termos de memória do que os tipos padrãoNumPy. -
Vetorização em vez de loops: Loops e iterações são caros, principalmente quando se trabalha com grandes conjuntos de dados. Em vez disso, opte por operações vetorizadas, pois elas são aplicadas em uma coluna inteira de uma só vez, tornando-as mais rápidas do que iterações por linha.
-
Carregue só o que você precisa: Use o parâmetro
usecolsemread_csv()ouread_parquet()para limitar a quantidade de dados carregados. -
Tipos eficientes em termos de memória: Os tipos de dados padrão no
pandasnão são eficientes em termos de memória. Por exemplo, valores inteiros usam o tipo de dados padrãoint64, mas se seus valores cabem emint32, ajustar o tipo de dados paraint32pode otimizar o uso da memória. Converter strings de baixa cardinalidade para o tipcategorytambém é uma boa ideia. -
Use a agregação de dados: Tente juntar os dados e fazer operações estatísticas, porque as operações em dados agregados são mais eficientes do que em todo o conjunto de dados.
-
Processamento paralelo: O Native
pandasé single-threaded. Para paralelismo em uma única máquina, a melhor opção é usarPolars(que é multithread por padrão) ou bibliotecas comoModinque funcionam como um substituto paralelo direto parapandas.
13. Qual é a diferença entre os métodos .join() e .merge() no pandas?
-
Participe: Junta dois DataFrames com base no seu índice. Mas tem um argumento opcional, o `
on`, pra dizer se você quer juntar as colunas de forma explícita. Por padrão, essa função faz uma junção à esquerda. A sintaxe édf1.join(df2). -
Mesclar: A função `
merge()` é mais versátil, permitindo que você especifique as colunas nas quais deseja unir os DataFrame. Ele aplica uma junção interna por padrão, mas pode ser personalizado para usar diferentes tipos de junção, como esquerda, direita, externa, interna e cruzada. A sintaxe épd.merge(df1, df2, on=”column_names”).
14. O que é Timedelta?
Timedelta é a duração, ou seja, a diferença entre duas datas ou horas, medida em dias, horas, minutos e segundos.
15. O método .append() foi removido. Como você combina DataFrames agora?
Se você tentar usar .append() em um ambiente Pandas moderno (versão 2.0 ou posterior), vai aparecer um erro porque o método foi removido para incentivar práticas de codificação mais eficientes.
Em vez disso, você deve juntar todos os seus DataFrame ou linhas em uma lista e, em seguida, chamar o método ` pd.concat() ` uma vez:
new_df = pd.concat([df1, df2], ignore_index=True)
16. Quando você deve usar Polars em vez de pandas?
Você deve pensar em usar o Polars (uma biblioteca DataFrame baseada em Rust) quando:
-
O conjunto de dados é bem maior do que a RAM disponível:
Polarstem avaliação/streaming preguiçoso. -
Você precisa de desempenho multithread: as operações do
pandassão, em grande parte, single-threaded. -
Cada milésimo de segundo conta: Você está criando um pipeline de dados de alto desempenho.
Perguntas de entrevista sobre programação em Pandas
As habilidades práticas são tão importantes quanto o conhecimento teórico quando se trata de se sair bem em uma entrevista técnica. Então, aqui estão algumas das perguntas de entrevista da Pandas sobre programação que você precisa saber antes de enfrentar o seu entrevistador.
17. Como você lê arquivos Excel para CSV usando pandas?
Primeiro, devemos usar a função .read_excel() para importar os dados do Excel para uma variável. Depois, é só usar a função .to_csv() pra uma conversão perfeita.
Aqui está o código de exemplo:
import pandas as pd
#input your excel file path into the read_excel() function.
excel_data = pd.read_excel("/content/sample_data/california_housing_test.xlsx")
excel_data.to_csv("CSV_data.csv", index = None, header=True)
Observação: Em uma entrevista recente, mencionei que preservar os tipos de dados no formato parquet (com .to_parquet() em vez de .to_csv()) costuma ser melhor quando se lida com grandes conjuntos de dados.
18. Como você organiza um DataFrame com base nas colunas?
Chamamos o método ` .sort_values() ` para ordenar o DataFrame com base em uma única coluna ou em várias colunas.
A sintaxe é assim:df.sort_values(by=[“column_names”]), como mostra o exemplo a seguir:
import pandas as pd
data = [['John', 50, 'Male', 'Austin', 70],
['Cataline', 45 ,'Female', 'San Francisco', 80],
['Matt', 30 ,'Male', 'Boston', 95],
['Oliver',35,'Male', 'New york', 65]]
# Column labels of the DataFrame
columns = ['Name','Age','Sex', 'City', 'Marks']
# Create a DataFrame df
df = pd.DataFrame(data, columns=columns)
# Sort values based on ‘Age’ column
df.sort_values(by=['Age'])
df.head()`
19. Mostre duas maneiras diferentes de filtrar dados
Vamos mostrar como filtrar o seguinte DataFrame:
import pandas as pd
data = {'Name': ['John', 'Cataline', 'Matt'],
'Age': [50, 45, 30],
'City': ['Austin', 'San Francisco', 'Boston'],
'Marks' : [70, 80, 95]}
# Create a DataFrame df
df = pd.DataFrame(data)
Método 1: Indexação booleana
new_df = df[(df.Name == "John") | (df.Marks > 90)]
print (new_df)
Método 2: Usando o método .query()
df.query('Name == "John" or Marks > 90')
print (new_df)
20. Como você junta os dados (por exemplo, média ou soma)?
A função ` .groupby() ` permite agregar dados com base em determinadas colunas e realizar operações nos dados agrupados. Combine isso com o método “ .agg() ” para melhorar a clareza.
No código a seguir, os dados são agrupados pela coluna Name e a média Grades de cada grupo é calculada:
import pandas as pd
# Create a DataFrame
data = {
'Name': ['John', 'Matt', 'John', 'Matt', 'Matt', 'Matt'],
'Grades': [10, 20, 30, 15, 25, 18]
}
# Create a DataFrame df
df = pd.DataFrame(data)
# mean marks of John and Matt
print(df.groupby('Name').agg(
avg_grade=('Grades', 'mean'),
)
21. Como você pode criar uma nova coluna a partir das colunas que já existem?
Tem duas maneiras de criar novas colunas a partir das que já existem:
-
Atribuição direta: Atribuir uma coluna com um novo nome a uma transformação de colunas existentes:
df['Total'] = df['Math'] + df['Science'] -
Encadeamento de métodos: Usando uma função lambda com um
.assign():df = df.assign(Total=lambda x: x['Math'] + x['Science'])
O encadeamento de métodos é a escolha preferida hoje em dia, pois melhora a legibilidade do código, eliminando a necessidade de variáveis intermediárias. Ter toda a transformação de dados como um único pipeline lógico reduz bastante os erros, já que você não corre mais o risco de usar por engano uma versão desatualizada ou errada do seu DataFrame durante a análise.
Perguntas da entrevista sobre Pandas para cientistas de dados
Agora que já falamos sobre todas as perguntas gerais e de codificação para uma entrevista na pandas, vamos dar uma olhada nas perguntas de entrevista sobre ciência de dados da pandas.
22. Como você lida com valores nulos ou ausentes no pandas?
Você pode usar qualquer um dos três métodos a seguir para lidar com valores ausentes em pandas:
-
dropna(): tira as linhas ou colunas que estão faltando do DataFrame. -
fillna(): preenche os valores que faltam com um valor específico usando essa função. -
interpolate(): preenche os valores que faltam com valores de interpolação calculados.
Com o backend PyArrow , os inteiros agora podem guardar valores NA sem precisar converter para float, o que mantém a fidelidade dos dados em fluxos de trabalho científicos.
23. Diferença entre os métodos fillna() e interpolate()
-
fillna(): Preenche com um valor estático (por exemplo, 0 ou “Desconhecido”). O preenchimento direto usando o argumento `method='ffill'` dentro de `.fillna()` está obsoleto; use `.ffill()` diretamente. -
interpolate(): Preenche usando estimativa matemática (linear, polinomial, spline) entre pontos. É essencial para dados de séries temporais em que você quer “ligar os pontos”.
24. O que é reamostragem?
A reamostragem é usada para alterar a frequência com que os dados da série temporal são relatados. Imagina que você tem dados de séries temporais mensais e quer transformá-los em dados semanais ou anuais; é aí que entra a reamostragem.
Converter dados mensais em dados semanais ou diários é basicamente fazer um upsampling. Técnicas de interpolação são usadas para aumentar as frequências aqui.
Por outro lado, converter dados mensais em anuais é chamado de redução de amostragem, onde se usam técnicas de agregação de dados.
25. Como você faz a codificação one-hot usando pandas?
Fazemos uma codificação one-hot pra transformar valores categóricos em numéricos, permitindo que eles sejam inseridos no algoritmo de machine learning.
import pandas as pd
data = {'Name': ['John', 'Cateline', 'Matt', 'Oliver'],
'ID': [1, 22, 23, 36],
'Category': ['A', 'B', 'A', 'B']}
df = pd.DataFrame(data)
#one hot encoding
new_df = pd.get_dummies(df, columns=['Category'])
new_df.head()
Para produção, usar o OneHotEncoder da Scikit-learn é a melhor opção, porque mantém o esquema.
26. Como você faz um gráfico de linha no pandas?
Para criar um gráfico de linhas, usamos a função plot em pandas.
import pandas as pd
data = {'units': [1, 2, 3, 4, 5],
'price': [7, 12, 8, 13, 16]}
# Create a DataFrame df
df = pd.DataFrame(data)
df.plot(kind='line', x='units', y='price')
Observação: Agora você pode mudar o backend para Plotly para gráficos interativos: pd.options.plotting.backend = "plotly".
27. Qual é o método do pandas para obter o resumo estatístico de todas as colunas em um DataFrame?
df.describe() retorna estatísticas como média, valores percentuais, mínimo, máximo, etc., de cada coluna no DataFrame.
28. O que é a média móvel?
A média móvel também é chamada de média deslizante porque a ideia é calcular a média dos pontos de dados para uma janela específica e deslizar a janela por todos os dados. Isso vai diminuir as flutuações e destacar as tendências de longo prazo nos dados das séries temporais.
A sintaxe é assim: df['column_name'].rolling(window=n).mean()
29. O que é o SettingWithCopyWarning e como você pode corrigi-lo?
Esse aviso apareceu porque o pandas não sabia se você estava modificando uma visualização ou uma cópia. Nos modernos sistemas operacionais de código aberto ( pandas, contexto 3.0+), o Copy-on-Write (CoW) é padrão. O CoW separa bem as visualizações das cópias, garantindo que modificar um subconjunto nunca altere o quadro original sem avisar, a menos que seja pedido explicitamente. Isso elimina em grande parte a ambiguidade que causou o aviso.
Para corrigir isso em versões mais antigas do pandas, use .loc[] para indexação explícita ou atribua a fatia a uma nova variável antes de fazer alterações para garantir clareza e evitar comportamentos indesejados. Leia mais neste blog: Como resolver o erro SettingWithCopyWarning.
30. Como você valida esquemas de DataFrame em produção?
O padrão da indústria é usar o pandera, uma biblioteca que faz verificações rigorosas da qualidade dos dados durante a execução. O pandera permite definir um esquema que valida os tipos de dados das colunas e aplica lógica estatística, como garantir que os valores estejam dentro de um intervalo específico ou que uma coluna seja única.
Você pode usar seus decoradores (por exemplo, @pa.check_types) para validar automaticamente as entradas e saídas das suas funções, evitando que “dados sujos” danifiquem silenciosamente seus pipelines a jusante. Isso funciona como um teste unitário para os seus próprios dados.
Preparando-se para a entrevista
É provável que te façam pelo menos algumas das perguntas mais frequentes em entrevistas, por isso é uma boa ideia usá-las para se preparar para a entrevista. Além do pandas, um trabalho focado em dados exige várias outras habilidades. Aqui está a lista de verificação para ter sucesso em todo o processo de entrevista:
Entendendo os requisitos do trabalho
Dá uma olhada na descrição do cargo e nas responsabilidades e vê se suas habilidades e seu currículo estão de acordo com elas. Além disso, conhecer a empresa e saber como sua função a afeta é uma vantagem.
Programação em Python
O entrevistador primeiro verifica suas habilidades em Python antes de perguntar sobre sua biblioteca (pandas). Então, aprenda Python direitinho.
Para funções de analista, só a linguagem Python dá conta do recado. Mas se você está se candidatando a vagas de cientista de dados ou engenheiro de ML, é importante resolver desafios de programação em Python.
Projetos de dados
Certifique-se de que você tenha alguns problemas reais de dados resolvidos no seu currículo. Se você já tem experiência, pode falar sobre seus projetos anteriores. Se você é novo na área, tente terminar alguns projetos do Kaggle.
Outros conceitos
Além dessas perguntas básicas, as perguntas adicionais vão depender da função.
Para analistas, as perguntas podem ser sobre Excel, painéis de visualização de dados, estatística e probabilidade.
Além disso, o entrevistador pode aprofundar-se em assuntos relacionados com machine learning e aprendizado profundo se você estiver se candidatando a vagas de cientista de dados ou engenheiro de ML.
Se você estiver se candidatando a cargos altamente técnicos ou que exijam muita experiência, espere perguntas sobre design de sistemas. Dá uma olhada nas dúvidas comuns sobre design e treina em problemas de design de sistemas de ML do começo ao fim.
Conclusão
Conseguir um emprego na indústria de dados geralmente exige um bom domínio do Pandas. A lista acima de perguntas teóricas e práticas para entrevistas deve te ajudar a arrasar na parte sobre pandas da sua entrevista. Além disso, as dicas no final garantem que toda a sua entrevista corra bem.
Você pode usar os recursos a seguir para se preparar para sua entrevista sobre pandas:
- Manipulação de dados com pandas: Um curso para iniciantes que aborda os fundamentos do pandas, manipulação de dados e técnicas de visualização usando conjuntos de dados do mundo real.
- Preparação de dados com pandas: Este tutorial ensina habilidades práticas para lidar com dados ausentes usando pandas, mostrando funções como isnull(), dropna() e fillna().
- Praticando perguntas de entrevista sobre programação em Python: Ideal pra se preparar pra entrevistas de programação, esse curso fala sobre estruturas de dados em Python, como mexer com strings e outras áreas importantes pra entrevistas de ciência de dados.
- Preparação para entrevistas na área de ciência de dados: Dá dicas completas de preparação para vários tipos de entrevista e fala sobre habilidades técnicas em Python, R, SQL e muito mais.
Srujana é redatora freelancer de tecnologia e tem um diploma de quatro anos em Ciência da Computação. Escrever sobre vários tópicos, incluindo ciência de dados, computação em nuvem, desenvolvimento, programação, segurança e muitos outros, é algo natural para ela. Ela gosta de literatura clássica e de explorar novos destinos.


