In [1]:
import pandas as pd
In [2]:
df_ab = pd.DataFrame({'a': ['a_1', 'a_2', 'a_3'], 'b': ['b_1', 'b_2', 'b_3']})
df_ac = pd.DataFrame({'a': ['a_1', 'a_2', 'a_4'], 'c': ['c_1', 'c_2', 'c_4']})
In [3]:
print(df_ab)
In [4]:
print(df_ac)
In [5]:
print(pd.merge(df_ab, df_ac))
In [6]:
print(df_ab.merge(df_ac))
In [7]:
print(pd.merge(df_ab, df_ac, on='a'))
In [8]:
df_ac_ = df_ac.rename(columns={'a': 'a_'})
print(df_ac_)
In [9]:
print(pd.merge(df_ab, df_ac_, left_on='a', right_on='a_'))
In [10]:
print(pd.merge(df_ab, df_ac_, left_on='a', right_on='a_').drop(columns='a_'))
In [11]:
print(pd.merge(df_ab, df_ac, on='a', how='inner'))
In [12]:
print(pd.merge(df_ab, df_ac, on='a', how='left'))
In [13]:
print(pd.merge(df_ab, df_ac, on='a', how='right'))
In [14]:
print(pd.merge(df_ab, df_ac, on='a', how='outer'))
In [15]:
print(pd.merge(df_ab, df_ac, on='a', how='inner', indicator=True))
In [16]:
print(pd.merge(df_ab, df_ac, on='a', how='outer', indicator=True))
In [17]:
print(pd.merge(df_ab, df_ac, on='a', how='outer', indicator='indicator'))
In [18]:
df_ac_b = df_ac.rename(columns={'c': 'b'})
print(df_ac_b)
In [19]:
print(pd.merge(df_ab, df_ac_b, on='a'))
In [20]:
print(pd.merge(df_ab, df_ac_b, on='a', suffixes=['_left', '_right']))
In [21]:
df_abx = df_ab.assign(x=['x_2', 'x_2', 'x_3'])
df_acx = df_ac.assign(x=['x_1', 'x_2', 'x_2'])
In [22]:
print(df_abx)
In [23]:
print(df_acx)
In [24]:
print(pd.merge(df_abx, df_acx))
In [25]:
print(pd.merge(df_abx, df_acx, on=['a', 'x']))
In [26]:
print(pd.merge(df_abx, df_acx, on='a'))
In [27]:
df_acx_ = df_acx.rename(columns={'x': 'x_'})
print(df_acx_)
In [28]:
print(pd.merge(df_abx, df_acx_, left_on=['a', 'x'], right_on=['a', 'x_']))
In [29]:
print(pd.merge(df_abx, df_acx, on=['a', 'x'], how='inner'))
In [30]:
print(pd.merge(df_abx, df_acx, on=['a', 'x'], how='left'))
In [31]:
print(pd.merge(df_abx, df_acx, on=['a', 'x'], how='right'))
In [32]:
print(pd.merge(df_abx, df_acx, on=['a', 'x'], how='outer'))
In [33]:
print(pd.merge(df_abx, df_acx, on=['a', 'x'], how='outer', sort=True))
In [34]:
df_ac_i = df_ac.set_index('a')
print(df_ac_i)
In [35]:
print(pd.merge(df_ab, df_ac_i, left_on='a', right_index=True))
In [36]:
df_ab_i = df_ab.set_index('a')
print(df_ab_i)
In [37]:
print(pd.merge(df_ab_i, df_ac_i, left_index=True, right_index=True))
In [38]:
print(df_ab_i)
In [39]:
print(df_ac_i)
In [40]:
print(df_ab_i.join(df_ac_i))
In [41]:
print(df_ab_i.join(df_ac_i, how='inner'))
In [42]:
print(df_ab)
In [43]:
print(df_ab.join(df_ac_i, on='a'))
In [44]:
df_ad_i = pd.DataFrame({'a': ['a_1', 'a_4', 'a_5'], 'd': ['d_1', 'd_4', 'd_5']}).set_index('a')
print(df_ad_i)
In [45]:
print(df_ab_i.join([df_ac_i, df_ad_i]))
In [46]:
print(df_ac_i.join([df_ad_i, df_ab_i]))