十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
join主要用于基于索引的横向合并拼接;
南江网站建设公司创新互联公司,南江网站设计制作,有大型网站制作公司丰富经验。已为南江近千家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的南江做网站的公司定做!
merge主要用于基于指定列的横向合并拼接;
concat可用于横向和纵向合并拼接;
append主要用于纵向追加;
combine可以通过使用函数,把两个DataFrame按列进行组合。
join
join是基于索引的横向拼接,如果索引一致,直接横向拼接。如果索引不一致,则会用Nan值填充merge是基于指定列的横向拼接,该函数类似于关系型数据库的连接方式,可以根据一个或多个键将不同的DatFrame连接起来。该函数的典型应用场景是,针对同一个主键存在两张不同字段的表,根据主键整合到一张表里面。
可以指定不同的how参数,表示连接方式,有inner内连、left左连、right右连、outer全连,默认为inner;
python的数组合并在算法题中用到特别多,这里简单总结一下:
假设有a1和a2两个数组:
a1=[1,2,3]
a2=[4,5,6]
1. 直接相加
合并后赋值给新数组a3
a3 = a1 + a2
2. extend
调用此方法,a1会扩展成a1和a2的内容 a1.extend(a2)
3. 列表表达式
先生成新的二维数组) a3 = [a1, a2])
列表推导形成新的数组) a4 = [ y for a in a3 for y in a ])
下面分别测试下三种数组合并方式的性能
分别输出:
17.2916171551
20.8185400963
55.1758739948
可以看出:在数据量大的时候,第一种方式的性能要高出很多。
append 方法根据行在原数据框添加新的数据框。
如果想要合并后的数据框索引重写排序,可以设置参数 ignore_index=True 。
concat 函数是panda自带的,可以按行或按列合并多个pandas数据框。
按行合并多个数据框,需要注意的是 objs参数接受一个可迭代对象 。concat函数默认按行合并。
设置 ignore_index=True ,使合并后的数据框索引重新排序。
按行合并时,concat对所有的列进行全连接(参数 join='outer' ),没有的列会填充为NaN。
设置参数 join='inner' ,可以只保留共有的列。
设置参数 axis=1 或 axis='columns' ,可以按列合并多个数据框。
merge 方法根据列或索引连接数据框。
当两个数据框只有一个相同列时, merge 方法会自动根据相同列进行内连接, on 参数可以省略。
设置参数 how=['left','right','outer','inner','cross'] ,可以完成不同类型的连接。
当两个数据框没有相同列时,需要设置 left_on 和 right_on 参数,表示按这两列进行连接。
如果需要根据数据框的索引进行连接,需要根据需求设置参数 left_index=True 或者 right_index=True 。
设置 suffixes ,可以给相同的列名添加后缀。默认后缀是 _x , _y 。
join 方法与 merge 方法作用相同,基本上 merge 方法已经可以完成所有的连接操作。
join 方法对按索引连接更方便而已。
当连接的两个数据框中没有相同列时,可以直接按索引进行左连接。
同样,可以设置 how 参数,控制连接的行为。
当数据框中有相同列时,需要设置后缀。