Pandas DataFrame DataFrame.merge() Função
-
Sintaxe de
pandas.DataFrame.merge()
: -
Códigos de exemplo:
DataFrame.merge()
Função para fundir doisDataFrames
-
Códigos de exemplo: Definir o parâmetro
how
no métodomerge
para fundir DataFrames utilizando várias técnicas -
Códigos de exemplo: fundir apenas colunas específicas utilizando
DataFrame.merge()
Função em Pandas -
Exemplo de Códigos:Utilizar Índice como as Chaves de Junção para Fundir DataFrames
DataFrame.merge()
Função
Python Pandas DataFrame.merge()
função funde DataFrame
ou objectos de série nomeados.
Sintaxe de pandas.DataFrame.merge()
:
DataFrame.merge(
right,
how="inner",
on=None,
left_on=None,
right_on=None,
left_index=False,
right_index=False,
sort=False,
suffixes="_x",
"_y",
copy=True,
indicator=False,
validate=None,
)
Parâmetros
right |
DataFrame ou série nomeada. Objecto a fundir com |
how |
left , right , inner ou outer . Como realizar a operação de fusão |
on |
rótulo ou lista. Nomes de colunas ou índices a fundir |
left_on |
rótulo ou lista. Nomes de colunas ou índices a fundir à esquerda DataFrame . |
right_on |
rótulo ou lista. Nomes de colunas ou índices a fundir no DataFrame direito. |
left_index |
Booleano. Utilize o índice da esquerda DataFrame como a chave de junção(left_index=True ) |
right_index |
Booleano. Utilize o índice da direita DataFrame como a chave de junção(right_index=True ) |
sort |
Booleano. Ordenar as teclas de união alfabeticamente na saída(sort=True ) |
suffixes |
Sufixo a ser aplicado a nomes de colunas sobrepostas no lado esquerdo e direito, respectivamente |
copy |
Booleano. Evitar cópia para copy=False . |
indicator |
adicionar uma coluna à saída DataFrame chamada _merge com informação sobre a origem de cada linha(indicator=True ) e uma coluna chamada string será adicionada à saída DataFrame (indicator=string ) |
validate |
para verificar se a fusão é de um tipo especificado. |
Devolver
Retorna um DataFrame
que funde os objectos dados.
Códigos de exemplo: DataFrame.merge()
Função para fundir dois DataFrames
import pandas as pd
df1 = pd.DataFrame(
{"Name": ["Suraj", "Zeppy", "Alish", "Sarah"], "Working Hours": [1, 2, 3, 5]}
)
df2 = pd.DataFrame({"Name": ["Suraj", "Zack", "Alish", "Raphel"], "Pay": [5, 6, 7, 8]})
print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)
merged_df = df1.merge(df2)
print("Merged DataFrame:")
print(merged_df)
Resultado:
1st DataFrame:
Name Working Hours
0 Suraj 1
1 Zeppy 2
2 Alish 3
3 Sarah 5
2nd DataFrame:
Name Pay
0 Suraj 5
1 Zack 6
2 Alish 7
3 Raphel 8
Merged DataFrame:
Name Working Hours Pay
0 Suraj 1 5
1 Alish 3 7
Funde df1
e df2
a um único DataFrame
utilizando a técnica inner-join
de SQL
.
Para o método inner-join
, temos de assegurar que existe pelo menos uma coluna comum a ambos os DataFrames
.
Aqui, a função merge()
irá juntar as linhas com os mesmos valores da coluna comum a ambos os DataFrames
.
Códigos de exemplo: Definir o parâmetro how
no método merge
para fundir DataFrames utilizando várias técnicas
import pandas as pd
df1 = pd.DataFrame(
{"Name": ["Suraj", "Zeppy", "Alish", "Sarah"], "Working Hours": [1, 2, 3, 5]}
)
df2 = pd.DataFrame({"Name": ["Suraj", "Zack", "Alish", "Raphel"], "Pay": [5, 6, 7, 8]})
print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)
merged_df = df1.merge(df2, how="right")
print("Merged DataFrame:")
print(merged_df)
Resultado:
1st DataFrame:
Name Working Hours
0 Suraj 1
1 Zeppy 2
2 Alish 3
3 Sarah 5
2nd DataFrame:
Name Pay
0 Suraj 5
1 Zack 6
2 Alish 7
3 Raphel 8
Merged DataFrame:
Name Working Hours Pay
0 Suraj 1.0 5
1 Alish 3.0 7
2 Zack NaN 6
3 Raphel NaN 8
Funde df1
e df2
a um único DataFrame
utilizando a técnica right-join
de SQL.
Aqui, a função merge()
devolve todas as filas da direita DataFrame
. No entanto, as linhas apenas presentes no DataFrame
da esquerda irão obter o valor NaN
.
Da mesma forma, também podemos utilizar os valores left
e outer
do parâmetro how
.
Códigos de exemplo: fundir apenas colunas específicas utilizando DataFrame.merge()
Função em Pandas
import pandas as pd
df1 = pd.DataFrame(
{
"Name": ["Suraj", "Zeppy", "Alish", "Sarah"],
"Working Hours": [1, 2, 3, 5],
"Position": ["Salesman", "CEO", "Manager", "Sales Head"],
}
)
df2 = pd.DataFrame(
{
"Name": ["Suraj", "Zack", "Alish", "Raphel"],
"Pay": [5, 6, 7, 8],
"Position": ["Salesman", "CEO", "Manager", "Sales Head"],
}
)
print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)
merged_df = df1.merge(df2, on="Name")
print("Merged DataFrame:")
print(merged_df)
Resultado:
1st DataFrame:
Name Working Hours Position
0 Suraj 1 Salesman
1 Zeppy 2 CEO
2 Alish 3 Manager
3 Sarah 5 Sales Head
2nd DataFrame:
Name Pay Position
0 Suraj 5 Salesman
1 Zack 6 CEO
2 Alish 7 Manager
3 Raphel 8 Sales Head
Merged DataFrame:
Name Working Hours Position_x Pay Position_y
0 Suraj 1 Salesman 5 Salesman
1 Alish 3 Manager 7 Manager
Funde apenas a coluna Name
de df1
e df2
. Uma vez que o método de junção padrão é inner-join
, apenas as linhas comuns a ambos DataFrame
serão unidas. A coluna Position
é comum a ambas as colunas DataFrames
e, portanto, a duas colunas de posição, a saber, Position_x
e Position_y
.
Por defeito, os sufixos _x
e _y
são anexados ao nome da coluna que se sobrepõe. Podemos especificar os sufixos utilizando o parâmetro suffixes
.
df1 = pd.DataFrame(
{
"Name": ["Suraj", "Zeppy", "Alish", "Sarah"],
"Working Hours": [1, 2, 3, 5],
"Position": ["Salesman", "CEO", "Manager", "Sales Head"],
}
)
df2 = pd.DataFrame(
{
"Name": ["Suraj", "Zack", "Alish", "Raphel"],
"Pay": [5, 6, 7, 8],
"Position": ["Salesman", "CEO", "Manager", "Sales Head"],
}
)
print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)
merged_df = df1.merge(df2, on="Name", suffixes=("_left", "_right"))
print("Merged DataFrame:")
print(merged_df)
Resultado:
1st DataFrame:
Name Working Hours Position
0 Suraj 1 Salesman
1 Zeppy 2 CEO
2 Alish 3 Manager
3 Sarah 5 Sales Head
2nd DataFrame:
Name Pay Position
0 Suraj 5 Salesman
1 Zack 6 CEO
2 Alish 7 Manager
3 Raphel 8 Sales Head
Merged DataFrame:
Name Working Hours Position_left Pay Position_right
0 Suraj 1 Salesman 5 Salesman
1 Alish 3 Manager 7 Manager
Exemplo de Códigos:Utilizar Índice como as Chaves de Junção para Fundir DataFrames DataFrame.merge()
Função
import pandas as pd
df1 = pd.DataFrame(
{
"Name": ["Suraj", "Zeppy", "Alish", "Sarah"],
"Working Hours": [1, 2, 3, 5],
"Position": ["Salesman", "CEO", "Manager", "Sales Head"],
}
)
df2 = pd.DataFrame(
{
"Name": ["Suraj", "Zack", "Alish", "Raphel"],
"Pay": [5, 6, 7, 8],
"Position": ["Salesman", "CEO", "Manager", "Sales Head"],
}
)
print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)
merged_df = df1.merge(
df2, left_index=True, right_index=True, suffixes=("_left", "_right")
)
print("Merged DataFrame:")
print(merged_df)
Resultado:
1st DataFrame:
Name Working Hours Position
0 Suraj 1 Salesman
1 Zeppy 2 CEO
2 Alish 3 Manager
3 Sarah 5 Sales Head
2nd DataFrame:
Name Pay Position
0 Suraj 5 Salesman
1 Zack 6 CEO
2 Alish 7 Manager
3 Raphel 8 Sales Head
Merged DataFrame:
Name_left Working Hours Position_left Name_right Pay Position_right
0 Suraj 1 Salesman Suraj 5 Salesman
1 Zeppy 2 CEO Zack 6 CEO
2 Alish 3 Manager Alish 7 Manager
3 Sarah 5 Sales Head Raphel 8 Sales Head
Funde as linhas correspondentes de dois DataFrames
sem considerar as semelhanças de colunas. Se o mesmo nome de coluna aparecer em ambos os DataFrame
, os sufixos são anexados aos nomes das colunas e fazem colunas diferentes após a fusão.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn