Python学习笔记 |
您所在的位置:网站首页 › python里的merge › Python学习笔记 |
Python学习笔记—merge和concat数据合并(1)
Python学习笔记—merge和concat数据合并(2) 文章目录 Python学习笔记---merge和concat数据合并(1) 前言 一、数据合并--merge 二、操作步骤 1.先合并其中2张表 2.再合并第3张表 3.查看数据的总数(避免丢数据) 总结 前言数据处理中经常对多个表的数据进行合并处理,这个功能类似于SQL中的join 联表查询。python可用于联表的函数是merge和concat。 两者区别: 1、merge:只能用于2张表的合并,多用于按列进行表合并 通过主键进行连接。如果需要3张表合并,需要先进行其 中2个表的合并 形成新的表,再进行第3张表连合并。 concat:可直接合并3张表,也可按行合并(追加)。 2、merge合并可以通过主键连结,自动去除重复的列。concat合并若是按照列合并 axis=1是把原表所有数据合并,不去除重复的列,如果需要去除重复的列,则需要使用drop_duplicates()去重。 这里介绍merge的用法。点击文章标题下的链接,可查看concat的用法。 一、数据合并–mergemerge的参数如下: pd.merge( left, right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(‘_x’, ‘_y’), copy=True, indicator=False, validate=None,) 参数释义: left:关联的其中一个表。 right:关联的另外一个表。 how:值有{‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’}, 默认‘inner’。类似于sql的 left join、right join、outer join、inner join、cross join。 on:指定主键。用于关联2个表的字段,必须同时存在于2个表中。类似于sql中的on用法。可以不指定,默认以2表中共同字段进行关联。 left_on和right_on:两个表里没有完全一致的列名,但是有信息一致的列,需要指定以哪个表中的字段作为主键。 left_index和right_index:除了指定字段作为主键以外,还可以考虑用索引作为拼接的主键,leftindex和rightindex默认为False,就是不以索引作为主键。若合并的表含有相同字段/索引,可以同时设定left_index = True和right_index = True。 sort:是否按连结主键进行排序,默认是False,指不排序。True表示按连结主键(on 对应的列名)进行升序排列。 l 二、操作步骤对users、movies、ratings三张表进行合并。 users表: 代码如下: import pandas as pd #先按主键user_id合并ratings和users表 data = pd.merge(ratings,users,on ='user_id' ) #查询合并后的结果,输出前5行 data[:5]代码如下: #再按主键movie_id 合并data和movise表,并对sort 按movie_id的升序排列 all_data = pd.merge(data,movies,on = 'movie_id',sort = True) #查询3张表的合并结果,输出前5行 all_data[:5]个人觉得在处理多个表关联过程中,merge更好用些,虽然只能两两关联,但可以有更多其他的操作。作为python的初学者,目前只关注到merge和concat的这些功能,可能还有其他更好用的方法,欢迎留言讨论。 【每天积累一点点,python的路上就少迷惑一点,更高效一些】 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |