Python|Python Pandas中合并数据的5个函数使用详解
目录
- join
- 索引一致
- 索引不一致
- merge
- concat
- 纵向拼接
- 横向拼接
- append
- combine
今天借着这个机会,就为大家盘点一下pandas中合并数据的5个函数。但是对于每个函数,我这里不打算详细说明,具体用法大家可以参考pandas官当文档。
- join主要用于基于索引的横向合并拼接;
- merge主要用于基于指定列的横向合并拼接;
- concat可用于横向和纵向合并拼接;
- append主要用于纵向追加;
- combine可以通过使用函数,把两个DataFrame按列进行组合。
join join是基于索引的横向拼接,如果索引一致,直接横向拼接。如果索引不一致,则会用Nan值填充。
索引一致
x = pd.DataFrame({'A': ['A0', 'A1', 'A2'],'B': ['B0', 'B1', 'B2']},index=[0, 1, 2])y = pd.DataFrame({'C': ['C0', 'C2', 'C3'],'D': ['D0', 'D2', 'D3']},index=[0, 1, 2])x.join(y)
结果如下:
文章图片
索引不一致
x = pd.DataFrame({'A': ['A0', 'A1', 'A2'],'B': ['B0', 'B1', 'B2']},index=[0, 1, 2])y = pd.DataFrame({'C': ['C0', 'C2', 'C3'],'D': ['D0', 'D2', 'D3']},index=[1, 2, 3])x.join(y)
结果如下:
文章图片
merge merge是基于指定列的横向拼接,该函数类似于关系型数据库的连接方式,可以根据一个或多个键将不同的DatFrame连接起来。该函数的典型应用场景是,针对同一个主键存在两张不同字段的表,根据主键整合到一张表里面。
可以指定不同的how参数,表示连接方式,有inner内连、left左连、right右连、outer全连,默认为inner;
x = pd.DataFrame({'姓名': ['张三', '李四', '王五'],'班级': ['一班', '二班', '三班']})y = pd.DataFrame({'专业': ['统计学', '计算机', '绘画'],'班级': ['一班', '三班', '四班']})pd.merge(x,y,how="left")
结果如下:
文章图片
concat concat函数既可以用于横向拼接,也可以用于纵向拼接。
纵向拼接
x = pd.DataFrame([['Jack','M',40],['Tony','M',20]], columns=['name','gender','age'])y = pd.DataFrame([['Mary','F',30],['Bob','M',25]], columns=['name','gender','age'])z = pd.concat([x,y],axis=0)z
结果如下:
文章图片
横向拼接
x = pd.DataFrame({'姓名': ['张三', '李四', '王五'],'班级': ['一班', '二班', '三班']})y = pd.DataFrame({'专业': ['统计学', '计算机', '绘画'],'班级': ['一班', '三班', '四班']})z = pd.concat([x,y],axis=1)z
结果如下:
文章图片
append append主要用于纵向追加数据。
x = pd.DataFrame([['Jack','M',40],['Tony','M',20]], columns=['name','gender','age'])y = pd.DataFrame([['Mary','F',30],['Bob','M',25]], columns=['name','gender','age'])x.append(y)
结果如下:
文章图片
combine conbine可以通过使用函数,把两个DataFrame按列进行组合。
x = pd.DataFrame({"A":[3,4],"B":[1,4]})y = pd.DataFrame({"A":[1,2],"B":[5,6]})x.combine(y,lambda a,b:np.where(a>b,a,b))
结果如下:
文章图片
注:上述函数,用于返回对应位置上的最大值。
【Python|Python Pandas中合并数据的5个函数使用详解】到此这篇关于Python Pandas中合并数据的5个函数使用详解的文章就介绍到这了,更多相关Python Pandas合并数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- python|python scrapy框架中Request对象和Response对象的介绍
- 医美|有多少男人愿意为“地中海”花钱?
- 投稿|百事再次上调全年预期,中国市场扮演了什么角色
- 斗地主技巧系列之四-------怎样做门板在斗地主中
- 投稿|台积电:砍单潮中的 “另类” 傲骨
- Python利用Seaborn绘制多标签的混淆矩阵
- python|Python-OpenCV-图像通过透视变换矫正
- Docker系列|【Docker系列】Python Flask + Redis 练习程序
- SpringCloud|【SpringCloud】10-Nacos服务注册与配置中心
- python打包flask|python打包flask 项目_手把手教你将Flask应用封装成Docker服务的实现