python -- 数据合并,pandas里的merge函数

又发现了pandas包里面的一个好用的函数——merge函数!!!!!!!

【描述】

merge函数类似于mysql等数据库语言中的join函数,可以实现对两个DataFrame的条件合并。

【准备】

import pandas as pd
import numpy as np

【语法】

(1)当两个DataFrame的关联列名称相同时:

merge(DataFrame_A,DataFrame_B,on = [],how = [],...)

DataFrame_A和DataFrame_B就是要合并的两个DataFrame,on代表以哪个key作为合并条件,当然可以取多个关联列,此时  可以以list的形式为on赋值(例如 on = [student_id,student_name]时,那么两个表中相同student_id和student_name的数据就会合并成一行哈,不严谨,但是可以这么理解~~),how代表那种连接方式(可选择left,right,outer,默认为inner),当然还有其他参数,但这三个是最关键的!

(2)当两个DataFrame的关联列名称不同时:

merge(DataFrame_A,DataFrame_B,left_on = [],right_on = [] ,how = [],...)
区别在于on被分开为left_on和right_on,用来标识两个DataFrame的关联列。其他不变

(3)当两个DataFrame的非关联列存在名称重复时:

可以在merge函数中添加参数:suffixes = ('_left','_right') 来区别标识(注:'_left','_right'属于个人设置,可以更改)

【举例】

创建测试数据集:

data_1 = pd.DataFrame({'id':[1,2,3],'b':['张三','李四','王五'],'d':['male','male','female']})
data_2 = pd.DataFrame({'student_id':[1,1,2,2,3,3],'b':['一班','一班','二班','二班','三班','三班'],'c':['上','下','上','下','上','下'],'math':[99,100,99,98,99,100]})

                

使用merge函数合并上述两个数据框:

data=pd.merge(data_1,data_2,left_on = 'id',right_on = 'student_id',how = 'left',suffixes = ('_left','_right') ) 
data

【参考链接】

python merge、concat合并数据集




猜你喜欢

转载自blog.csdn.net/august1226/article/details/80901796