É possível mesclar apenas algumas colunas? Eu tenho um DataFrame df1 com colunas x, y, z e df2 com colunas x, a, b, c, d, e, f, etc.
Quero mesclar os dois DataFrames em x, mas só quero mesclar as colunas df2.a, df2.b - não o DataFrame inteiro.
O resultado seria um DataFrame com x, y, z, a, b.
Eu poderia mesclar e excluir as colunas indesejadas, mas parece que existe um método melhor.
Respostas:
Você pode mesclar o sub-DataFrame (apenas com essas colunas):
fonte
list('xab')
pega cada elemento (letra) da string 'xab' e converte em um elemento de lista paralist('xab')
retornar['x', 'a', 'b']
. Isso funciona se cada coluna tiver uma única letra como nome. No seu caso, acho que você precisa fazer df1.merge (df2 ['Unique_External_Users'], * other_arguments). ... Provavelmente você já resolveu agora, apenas deixando isso para novatos por aí, como euVocê deseja usar DOIS colchetes, então, se estiver fazendo um tipo de ação VLOOKUP:
Isso lhe dará tudo no df + add original aquela coluna correspondente no df2 que você deseja unir.
fonte
Se você deseja descartar coluna (s) do quadro de dados de destino, mas as colunas são necessárias para a junção, você pode fazer o seguinte:
A
.drop('key1')
parte impedirá 'key1' de ser mantida no quadro de dados resultante, apesar de ser necessária a junção em primeiro lugar.fonte
KeyError: "['key1'] not found in axis"
Você pode usar
.loc
para selecionar as colunas específicas com todas as linhas e puxar isso. Um exemplo está abaixo:Neste exemplo, você está mesclando dataframe1 e dataframe2. Você optou por fazer uma junção externa à esquerda na 'chave'. No entanto, para dataframe2 você especificou, o
.iloc
que permite especificar as linhas e colunas que deseja em um formato numérico. Usando:
, você seleciona todas as linhas, mas[0:5]
seleciona as 5 primeiras colunas. Você poderia usar.loc
para especificar por nome, mas se estiver lidando com nomes de coluna longos,.iloc
talvez seja melhor.fonte
.loc
isso fará uma cópia , e em um grande df isso pode ser doloroso. Pode ser melhor mesclar, em seguida, tomar imediatamente uma fatia de coluna na mesma expressão.Isso serve para mesclar colunas selecionadas de duas tabelas.
Se
table_1
contémt1_a,t1_b,t1_c..,id,..t1_z
colunas etable_2
contémt2_a, t2_b, t2_c..., id,..t2_z
colunas, e apenas t1_a, id, t2_a são necessários na tabela final, entãofonte