Como você lida com valores ausentes (NaN) em um DataFrame do Pandas?
Resposta:
Valores ausentes podem ser tratados usando df.dropna() para remover linhas/colunas com NaNs, ou df.fillna() para substituir NaNs por um valor específico (por exemplo, 0, média, mediana ou preenchimento para frente/para trás). A escolha depende dos dados e dos objetivos da análise.
Explique a diferença entre loc e iloc para indexação de DataFrame.
Resposta:
loc é principalmente indexação baseada em rótulos, o que significa que você usa rótulos de linha/coluna para selecionar dados. iloc é indexação baseada em localização inteira, o que significa que você usa posições inteiras (de 0 a comprimento-1) para selecionar dados. Ambos podem ser usados para seleções únicas ou fatiamento (slicing).
Como você realiza uma operação de JOIN estilo SQL entre dois DataFrames no Pandas?
Resposta:
JOINs estilo SQL são realizados usando a função pd.merge(). Você especifica os DataFrames, o argumento on para colunas comuns e o argumento how para o tipo de join (por exemplo, 'inner', 'left', 'right', 'outer').
Descreva como agrupar dados em um DataFrame e aplicar uma função de agregação.
Resposta:
Os dados são agrupados usando o método df.groupby(), especificando a(s) coluna(s) para agrupar. Após o agrupamento, uma função de agregação como sum(), mean(), count(), min() ou max() pode ser aplicada ao objeto agrupado para resumir os dados.
Como você pode aplicar uma função personalizada a uma coluna ou linha de um DataFrame?
Resposta:
Para operações por coluna, use df['coluna'].apply(funcao_personalizada). Para operações por linha ou elemento em várias colunas, use df.apply(funcao_personalizada, axis=1) para linhas ou df.apply(funcao_personalizada, axis=0) para colunas. Operações vetorizadas são geralmente preferidas para desempenho.
Para que serve pivot_table e como ele difere de groupby?
Resposta:
pivot_table é usado para criar uma tabela dinâmica estilo planilha como um DataFrame, resumindo dados por uma ou mais colunas chave. Enquanto groupby agrega dados com base em uma ou mais chaves, pivot_table também permite "desempilhar" (unstack) e remodelar os dados em um novo formato tabular com índice, colunas e valores especificados.
Como você altera o tipo de dado de uma coluna em um DataFrame do Pandas?
Resposta:
O tipo de dado de uma coluna pode ser alterado usando o método astype(), por exemplo, df['coluna'] = df['coluna'].astype('int') ou df['coluna'] = pd.to_datetime(df['coluna']) para datas. Isso é crucial para manipulação e análise de dados corretas.
Explique como remover linhas duplicadas de um DataFrame.
Resposta:
Linhas duplicadas podem ser removidas usando o método df.drop_duplicates(). Por padrão, ele considera todas as colunas e mantém a primeira ocorrência. Você pode especificar um subconjunto de colunas usando o argumento subset e se deve manter os duplicados 'first' (primeiro), 'last' (último) ou False (todos).
Como você criaria novas colunas com base em colunas existentes em um DataFrame?
Resposta:
Novas colunas podem ser criadas realizando operações em colunas existentes, por exemplo, df['nova_col'] = df['col1'] + df['col2']. Para lógica mais complexa, o método apply() com uma função lambda ou uma função definida pode ser usado, ou np.where() para atribuições condicionais.
Qual é o propósito de stack() e unstack() no Pandas?
Resposta:
stack() transforma um DataFrame (ou Series) do formato largo (wide) para o formato longo (long), pivotando o índice de coluna mais interno para se tornar o índice de linha mais interno. unstack() realiza a operação inversa, pivotando o índice de linha mais interno para se tornar o índice de coluna mais interno, transformando do formato longo para o formato largo.
Como você ordena um DataFrame por uma ou mais colunas?
Resposta:
Um DataFrame pode ser ordenado usando o método df.sort_values(). Você especifica o argumento by com um nome de coluna ou uma lista de nomes de colunas. O argumento ascending (padrão True) controla a ordem de classificação, e inplace=True pode modificar o DataFrame diretamente.
Quando você usaria pd.concat() versus pd.merge()?
Resposta:
pd.concat() é usado para combinar DataFrames ao longo de um eixo (por linha ou por coluna) quando eles têm estruturas semelhantes ou você deseja empilhá-los. pd.merge() é usado para combinar DataFrames com base em colunas comuns (chaves), semelhante a joins SQL, quando você deseja combinar dados relacionados de diferentes fontes.