Dado que Felipe quer fazer a junção entre dois conjuntos de dados e escreveu o seguinte código: import pandas as pd df1 = pd.DataFrame({'lkey': ['foo', 'bar', 'baz', 'foo'], 'value': [1, 2, 3, 5]}) df2 = pd.DataFrame({'rkey': ['foo', 'bar', 'baz', 'foo'], 'value': [5, 6, 7, 8]}) df1.merge(df2, left_on='lkey', right_on='rkey') Qual destas alternativas descreve as saídas do código? I. O conjunto resultante terá colunas lkey, value_x, rkey, value_y II. O código não executará, pois Filipe não definiu os sufixos de coluna III. O resultado do código em questão retornará um pd.Series juntando os conjuntos pela lkey e rkey

Questão

Dado que Felipe quer fazer a junção entre dois conjuntos de dados e escreveu o seguinte código: import pandas as pd df1 = pd.DataFrame({'lkey': ['foo', 'bar', 'baz', 'foo'], 'value': [1, 2, 3, 5]}) df2 = pd.DataFrame({'rkey': ['foo', 'bar', 'baz', 'foo'], 'value': [5, 6, 7, 8]}) df1.merge(df2, left_on='lkey', right_on='rkey') Qual destas alternativas descreve as saídas do código? I. O conjunto resultante terá colunas lkey, value_x, rkey, value_y II. O código não executará, pois Filipe não definiu os sufixos de coluna III. O resultado do código em questão retornará um pd.Series juntando os conjuntos pela lkey e rkey

Imagem 1

import pandas as pd df1 = pd.DataFrame({'lkey': ['foo', 'bar', 'baz', 'foo'], 'value': [1, 2, 3, 5]}) df2 = pd.DataFrame({'rkey': ['foo', 'bar', 'baz', 'foo'], 'value': [5, 6, 7, 8]}) df1.merge(df2, left_on='lkey', right_on='rkey')

Alternativas

A) Apenas a opção I está correta.

95%

B) Apenas a opção II está correta.

C) Apenas a opção III está correta.

D) Apenas as opções II e III estão corretas.

E) Apenas as opções I e III estão corretas.

Explicação

Vamos analisar o que acontece com df1.merge(df2, left_on='lkey', right_on='rkey'):

  1. Tipo do retorno do merge
  • DataFrame.merge(...) retorna um pd.DataFrame, não um pd.Series.
  • Portanto, a afirmação III é falsa.
  1. Colunas repetidas (value em ambos os DataFrames)
  • Como df1 e df2 possuem uma coluna com o mesmo nome (value) e ela não é chave de junção, o pandas resolve o conflito automaticamente criando sufixos padrão:
    • value_x (vindo do df1)
    • value_y (vindo do df2)
  • Além disso, como as chaves têm nomes diferentes (lkey e rkey), ambas aparecem no resultado.
  • Logo, o resultado terá as colunas: lkey, value_x, rkey, value_y.
  • Portanto, a afirmação I é verdadeira.
  1. Necessidade de definir sufixos
  • Não é obrigatório definir suffixes=..., pois o pandas usa os padrões ('_x','_y') quando há colisão de nomes.
  • Então, a afirmação II é falsa.

Conclusão: apenas a afirmação I está correta.

Alternativa correta: (A).

Questões relacionadas

Ver últimas questões

Comece a estudar de forma inteligente hoje mesmo

Resolva questões de concursos e vestibulares com IA, gere simulados personalizados e domine os conteúdos que mais caem nas provas.

Cancele quando quiser.