Pandas的数据合并方式

昨天爬取数据时由于中间断了,又不想从第一页再重新开始爬取,所以分两次爬取了数据,这样就涉及到了把数据合并的问题,于是就从学习文档中整理了pandas中的四种合并方式,和大家一起分享~~

                                                      数据合并之concat

我们可以通过DataFrame或Series类型的concat方法,来进行连接操作,连接时,会根据索引进行对齐。

我们来结合实例来理解一下,首先创建两个DataFrame对象df1和df2


1.指定链接轴axis=?

通过轴axis指定堆叠方向。0竖直方向,1水平方向。

2.指定链接方式join=?

outer,结果集显示并集, inner结果集显示交集。

3.指定数据源产生层级索引keys=?

可以通过keys观看数据来源那一张表。(产生一个层级索引)

4.指定链接后要保留的索引列join_axes=?

通过join_axes指定要保留的列索引。

5.忽略以前的索引ignore_index=True

可以通过ignore_index设置为True,忽略以前的索引(行索引),重新创建连续的索引

                                                        数据合并之append

在对行进行连接时,也可以使用Series或DataFrame的append方法。

append是concat的简略形式,只不过只能在axis=0上进行合并

                                                        数据合并之merge

通过pandas或DataFrame的merge方法,可以进行两个DataFrame的连接,这种连接类似于SQL中对两张表进行的join连接。

1.可以通过how指定连接方式。默认为内连接。

2.通过on来指定连接的列(on指定的列必须同时出现在两个表之中)。(默认使用所有同名的列进行等值连接)

3.如果连接的列名不同,则我们可以使用left_on与right_on参数分别指定左,右两张表用来进行等值连接的索引名。

4.我们可以通过left_index,right_index来指定是否使用索引来充当连接条件,True,是,False,不是。

# 注意:left_index(right_index)与left_on(right_on)不能同时指定。

5.我们也可以自定义连接的后缀。(两张表存在同名字段时,可以使用。默认为_x,_y)

                                                 数据合并之join

与merge方法类似,但是默认使用索引进行连接。

how:指定连接方式。可以是inner, outer, left, right,默认为left。

on:设置当前DataFrame对象使用哪个列与参数对象的索引进行连接。

lsuffix / rsuffix:当两个DataFrame列名相同时,指定每个列名的后缀(用来区分),如果不指定,列名相同会产生错误。

1.们可以通过how指定连接方式,如果没有指定连接方式,默认为左外连接(left)

2.on参数指定当前的表中使用哪个列与参数表(右侧表)的索引进行连接。

join与merge类似,都是进行两张表的连接。

不同点:

merge默认进行的内连接(inner),join默认进行的左外连接(left)。

当出现同名字段(列索引)时,merge可以自动补后缀(_x, _y),但是join不会自动补后缀,而是会产生错误。

merge默认使用同名的列进行等值连接。join默认使用左右两表的索引进行连接。

merge中on参数,指定两张表中共同的字段,而join中on参数,仅指定左表中的字段(右表依然使用索引)。

merge与join侧重点不同,merge侧重的是使用字段进行连接,而join侧重的是使用索引进行连接。



加油~~

你可能感兴趣的:(Pandas的数据合并方式)