In [1]:
import pandas as pd
import numpy as np
from pandas import Series, DataFrame
In [2]:
df1 = DataFrame({'key':['a','b','c','f','g'],'value1':[1,2,4,54,43]})
df1
Out[2]:
In [3]:
df2 = DataFrame({'key':['a','c','g','e','j'],'value2':[1,4,47,7,1]})
df2
Out[3]:
In [4]:
#Ahora uniremos abos dataframe, como se puede aprecia en común tienen el campo key
#usaremo el metodo .merge de pandas
pd.merge(df1,df2)
#por defecto el tipo de union es inner join, usara la columna de nombre igual
Out[4]:
In [5]:
pd.merge(df1,df2, on='key') #Produce el mismo resultado que la línea anterior.
Out[5]:
In [6]:
pd.merge(df1,df2, on='key', how='left') #cambiando el tipo de union según teoría de conjunto, omite los valores de df2
Out[6]:
In [7]:
pd.merge(df1,df2, on='key', how='outer') #cambiando el tipo de union según teoría de conjunto, union general
Out[7]:
In [8]:
df3 = DataFrame({'key':['r','a','m','o','n'],'valor3':np.arange(5)})
In [9]:
df3
Out[9]:
In [10]:
df4 = DataFrame({'key':['m','a','n','u','e','l'],'valor4':np.arange(6)})
In [11]:
df4
Out[11]:
In [12]:
pd.merge(df3,df4)
Out[12]:
In [13]:
dfA = DataFrame({'lk':['a','b','e','g','i'],'value':np.arange(5)})
dfA
Out[13]:
In [14]:
dfB = DataFrame({'rk':['a','e','i','o','u'],'value':np.arange(5)+3})
dfB
Out[14]:
In [15]:
dfA.merge(dfB, left_on='lk', right_on='rk', how='inner') #Unión de dos df llaves diferentes
Out[15]:
In [16]:
pd.merge(dfA, dfB, left_on='lk', right_on='rk',how='outer')
Out[16]: