200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Python学习笔记---merge和concat数据合并(1)

Python学习笔记---merge和concat数据合并(1)

时间:2022-12-18 20:21:38

相关推荐

Python学习笔记---merge和concat数据合并(1)

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的用法。

一、数据合并–merge

merge的参数如下:

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表:

movies表:

ratings表:

1.先合并其中2张表

代码如下:

import pandas as pd#先按主键user_id合并ratings和users表data = pd.merge(ratings,users,on ='user_id' )#查询合并后的结果,输出前5行data[:5]

2.再合并第3张表

代码如下:

#再按主键movie_id 合并data和movise表,并对sort 按movie_id的升序排列all_data = pd.merge(data,movies,on = 'movie_id',sort = True) #查询3张表的合并结果,输出前5行all_data[:5]

3.查看数据的总数(避免丢数据)

all_data.shape

总结

个人觉得在处理多个表关联过程中,merge更好用些,虽然只能两两关联,但可以有更多其他的操作。作为python的初学者,目前只关注到merge和concat的这些功能,可能还有其他更好用的方法,欢迎留言讨论。

【每天积累一点点,python的路上就少迷惑一点,更高效一些】

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。