Python科学计算之Pandas merge函数操作

文章目录

    • Merge函数
      • Merge介绍
      • Merge操作

Merge函数

Merge介绍

  • pandas中的merge()函数类似于SQL中join的用法,可以将不同数据集依照某些字段(属性)进行合并操作,得到一个新的数据集。

Merge操作

  • 构建两张表
import pandas as pd
left = pd.DataFrame({
     'Name': ['张三', '李四', '王五', '陈二'],
                    'Address': ['北京', '南京', '上海', '广州'], 
                    'Job': ['IT', '金融', '医学', '教育']})
right = pd.DataFrame({
     'Name': ['张三', '李四', '王五', '陈二'],
                    'Age': ['25', '28', '31', '34'], 
                    'ID': ['01', '02', '03', '04']})
  • 两表合并
res = pd.merge(left, right)
#on表示以xxx键进行合并
res = pd.merge(left, right, on = 'Name')
res

Python科学计算之Pandas merge函数操作_第1张图片

  • 两个键合并
import pandas as pd
left = pd.DataFrame({
     'Name': ['张三', '李四', '王五', '陈二'],
                    'ID': ['01', '02', '03', '04'],
                     'Address': ['北京', '南京', '上海', '广州'], 
                    'Job': ['IT', '金融', '医学', '教育']})
right = pd.DataFrame({
     'Name': ['张三', '李四', '王五', '陈二'],
                    'Age': ['25', '28', '31', '34'], 
                    'ID': ['01', '02', '03', '04']})
res = pd.merge(left, right, on = ['Name', 'ID'])
res

Python科学计算之Pandas merge函数操作_第2张图片

#如果只以Name为键合并则会出现两个ID列
res = pd.merge(left, right, on = 'Name')
res

Python科学计算之Pandas merge函数操作_第3张图片

  • 如果有不一样的直接merge会被过滤掉默认为交集
left = pd.DataFrame({
     'Name': ['张三', '李四', '王五', '陈二'],
                    'ID': ['01', '02', '03', '04'],
                     'Address': ['北京', '南京', '上海', '广州'], 
                    'Job': ['IT', '金融', '医学', '教育']})
right = pd.DataFrame({
     'Name': ['张三', '李四', '王五', '陈二'],
                    'Age': ['25', '28', '31', '34'], 
                    'ID': ['01', '02', '03', '05']})
res = pd.merge(left, right, on = ['Name', 'ID'])
res

Python科学计算之Pandas merge函数操作_第4张图片

  • 求并集
#how指定outer为求并集
res = pd.merge(left, right, on = ['Name', 'ID'], how = 'outer')
res

Python科学计算之Pandas merge函数操作_第5张图片

#indicator = True显示指示器指标,是交集还是并集?
res = pd.merge(left, right, on = ['Name', 'ID'], how = 'outer', indicator = True)
res

Python科学计算之Pandas merge函数操作_第6张图片

  • 以左右表为基准
#左表
res = pd.merge(left, right, how = 'left')
#右表
res = pd.merge(left, right, how = 'right')

Python科学计算之Pandas merge函数操作_第7张图片
Python科学计算之Pandas merge函数操作_第8张图片

  • join连表操作
left = pd.DataFrame({
     'A': ['A0', 'A1', 'A2', 'A3'],
                     'B': ['B0', 'B1', 'B2', 'B3'],
                    'key': ['K0', 'K1', 'K0', 'K1']})
right = pd.DataFrame({
     'C': ['C0', 'C1'],
                       'D': ['D0', 'D1']},
                       index=['K0', 'K1'])
res = left.join(right, on='key')
res

Python科学计算之Pandas merge函数操作_第9张图片

你可能感兴趣的:(Python科学计算,python,人工智能)