Python学习笔记

您所在的位置:网站首页 python里的merge Python学习笔记

Python学习笔记

2023-03-14 07:13| 来源: 网络整理| 查看: 265

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的路上就少迷惑一点,更高效一些】



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3