Para reproduzir a transformação ilustrada na figura abaixo,...

Próximas questões
Com base no mesmo assunto
Q3331528 Programação
Para reproduzir a transformação ilustrada na figura abaixo, o código Python que faz uso da bilblioteca Pandas (pd) e pode ser utilizado para para unir dois dataframes (df1 e df2), criando o dataframe (df3), é:

Imagem associada para resolução da questão
Alternativas

Comentários

Veja os comentários dos nossos alunos

Das funções listadas nas alternativas (join, union, sum, concat, merge), somente são válidas no Pandas:

  • merge()
  • concat()

Assim, já podemos eliminar as alternativas A,B, E e ficarmos somente com C ou D como resposta.

Porém, segundo a documentação, o merge() é para mesclar objetos DataFrame ou Series nomeados com uma junção no estilo de banco de dados. A junção é feita em colunas ou índices. Se forem unidas colunas sobre colunas, os índices do DataFrame serão ignorados . Caso contrário, se forem unidos índices sobre índices ou índices sobre uma ou mais colunas, o índice será passado adiante. Ao realizar uma mesclagem cruzada, não são permitidas especificações de coluna para mesclagem. Além disso para fazer uma chamada válida do método merge() é necessário fornecer mais parâmetros, pois se for chamado como exibido na alternativa D, receberemos o erro:

TypeError: merge() missing 1 required positional argument: 'right'

Assim descartamos esta alternativa D (merge) e concluímos, então, que somente é válida a alternativa C, referente ao método concat(); segue um código de teste.

import pandas as pd

df1 = pd.DataFrame({"CNES":[6624111,2001454,2000636],"CODUFMUN":[120040,120010,120030]})

df2 = pd.DataFrame({"CNES":[5414938,3704017,6091822],"CODUFMUN":[120020,120040,120040]}, index=[3,4,5])

df3 = pd.concat([df1,df2])

print(df3)

será exibido:

   CNES CODUFMUN

0 6624111   120040

1 2001454   120010

2 2000636   120030

3 5414938   120020

4 3704017   120040

5 6091822   120040

c-

import pandas as pd

dataset = {"CNES": [6624111, 2001454, 2000636],

          "codefun": [120040, 120010, 120030]

          }

df1 = pd.DataFrame(dataset)

dataset1 = {"CNES": [1488, 13, 666],

          "codefun": [1, 2, 187]

          }

df2 = pd.DataFrame(dataset1)

#df3 = pd.concat([df1, df2])

SIM. MERGE ADOTA LOGICA SQL PARA OPERAÇÕES ESTILO JOIN. como o colega colocou, a documentação especifica q se nenhum parametro for especificado, vai cair no default, que é how="inner". como os dataframes nao têm nenhum campo em comum, vai retornar um dataframe vazio. o merge é semelhante ao join; em vez de uma tabela fazer join em outra, pega-se um dataframe e faz o merge com outro: df1.merge(df2). claro q assim como em sql join, é necessario um criterio, especificado pelo parametro 'how'. oara se ter o mesmo resultado, basta substituir o pd.concat por

df3 = df1.merge(df2, how="outer")

print(df3)

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo