pandas-数据连接 merge

在这里插入图片描述

import pandas as pd
import numpy as np
# 创建dataframe
staff_df = pd.DataFrame([{
    
    '姓名': '张三', '部门': '研发部'},
                        {
    
    '姓名': '李四', '部门': '财务部'},
                        {
    
    '姓名': '赵六', '部门': '市场部'}])


student_df = pd.DataFrame([{
    
    '姓名': '张三', '专业': '计算机'},
                        {
    
    '姓名': '李四', '专业': '会计'},
                        {
    
    '姓名': '王五', '专业': '市场营销'}])

staff_df

# 外连接
pd.merge(staff_df, student_df, how='outer', on='姓名')
# 或者
# staff_df.merge(student_df, how='outer', on='姓名')

在这里插入图片描述

# 内连接
pd.merge(staff_df, student_df, how='inner', on='姓名')
# 或者
# staff_df.merge(student_df, how='inner', on='姓名')

在这里插入图片描述

# 左连接
pd.merge(staff_df, student_df, how='left', on='姓名')
# 或者
# staff_df.merge(student_df, how='left', on='姓名')

在这里插入图片描述

# 右连接
pd.merge(staff_df, student_df, how='right', on='姓名')
# 或者
# staff_df.merge(student_df, how='right', on='姓名')

在这里插入图片描述

# 添加新的数据列
staff_df['地址'] = ['天津', '北京', '上海']
student_df['地址'] = ['天津', '上海', '广州']

在这里插入图片描述

# 处理重复列名
# 如果两个数据中包含有相同的列名(不是要合并的列)时,merge会自动加后缀作为区别
pd.merge(staff_df, student_df, how='left', left_on='姓名', right_on='姓名')

在这里插入图片描述

# 设置"姓名"为索引
staff_df.set_index('姓名', inplace=True)
student_df.set_index('姓名', inplace=True)

pd.merge(staff_df, student_df, how='left', left_index=True, right_index=True)
# 或者
# staff_df.merge(student_df, how='left', left_index=True, right_index=True)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lildn/article/details/114643491