python merge 使用

来源:互联网 发布:钻石小鸟知乎 编辑:程序博客网 时间:2024/05/22 17:28
# coding: utf-8# # 数据连接 merge# In[1]:import pandas as pdimport numpy as np# In[3]:df_obj1 = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],                        'data1' : np.random.randint(0,10,7)})df_obj2 = pd.DataFrame({'key': ['a', 'b', 'd'],                        'data2' : np.random.randint(0,10,3)})print(df_obj1)print(df_obj2)# In[4]:# 默认将重叠列的列名作为“外键”进行连接pd.merge(df_obj1, df_obj2)# In[5]:# on显示指定“外键”pd.merge(df_obj1, df_obj2, on='key')# In[6]:# left_on,right_on分别指定左侧数据和右侧数据的“外键”# 更改列名df_obj1 = df_obj1.rename(columns={'key':'key1'})df_obj2 = df_obj2.rename(columns={'key':'key2'})# In[7]:pd.merge(df_obj1, df_obj2, left_on='key1', right_on='key2')# In[8]:# “外连接”pd.merge(df_obj1, df_obj2, left_on='key1', right_on='key2', how='outer')# In[9]:# 左连接pd.merge(df_obj1, df_obj2, left_on='key1', right_on='key2', how='left')# In[10]:# 右连接pd.merge(df_obj1, df_obj2, left_on='key1', right_on='key2', how='right')# In[11]:# 处理重复列名df_obj1 = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],                        'data' : np.random.randint(0,10,7)})df_obj2 = pd.DataFrame({'key': ['a', 'b', 'd'],                        'data' : np.random.randint(0,10,3)})pd.merge(df_obj1, df_obj2, on='key', suffixes=('_left', '_right'))# In[12]:# 按索引连接df_obj1 = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],                        'data1' : np.random.randint(0,10,7)})df_obj2 = pd.DataFrame({'data2' : np.random.randint(0,10,3)}, index=['a', 'b', 'd'])# In[13]:pd.merge(df_obj1, df_obj2, left_on='key', right_index=True)# In[ ]:

原创粉丝点击