pandas数据合并concat, merge, append, join

一、DataFrame.concat()

语法:

concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True)

参数:

objs: series,dataframe或者是panel构成的序列lsit

axis:需要合并链接的轴,0是行,1是列

join:连接的方式 inner,或者outer

只是单纯的把两个表拼接在一起,参数axis是关键,它用于指定合并的轴是行还是列,axis默认是0。

# 将两个dataframe按列合并:

list_=[random.randint(1,100)foriinrange(len(df))]df2=pd.DataFrame(list_,columns=['value'])

pd.concat([df,df2],axis=1)# 按行合并,则axis=0# 将第一行与最后一行拼接:pd.concat([df[:1],df[-2:-1]])

二、DataFrame.concat()

df = pd.merge(left, right, how = "inner",on = "None")

参数:

left: 左表。也就是第一个df。

right:右表。也就是第二个df。

how: 和concat里面的"join"类似,表示“如何合并两表。

1)left: 只使用左表的键。

2)right:只使用右表的键。

3)inner: 使用左右表键的交集。

4)outer:使用左右表键的并集。

on: 表示按照哪一个键来进行合并。

类似于关系型数据库的连接方式,可以根据一个或多个键将不同的DatFrame连接起来。该函数的典型应用场景是,针对同一个主键存在两张不同字段的表,根据主键整合到一张表里面。

# 按照单列合并数据:pd.merge(df,df1,on='course')# 按照多列合并数据:多列用列表pd.merge(df,df1,how='left',on=['course','grade'])#内外连接合并:pd.merge(df,df1,how='outer',on='course')# inner内连接,outer外连接

三、Series.append()/DataFrame.append()

语法:

DataFrame.append(other,ignore_index=False, verify_integrity=False, sort=None)

参数:

other: DataFrame、series、dict、list这样的数据结构

ignore_index:默认值为False,如果为True则不使用index标签

verify_integrity :默认值为False,如果为True当创建相同的index时会抛出ValueError的异常o sort: boolean,默认是None,该属性在pandas的0.23.0的版本才存在。

功能说明:

向dataframe对象中添加新的行,如果添加的列名不在dataframe对象中,将会被当作新的列进行添加

# 将第3行数据添加至末尾:df.append(df.iloc[2])

四、DataFrame.join()

语法:

DataFrame.join(other, on=None, how=’left’, lsuffix=”, rsuffix=”, sort=False)

参数:

other:【DataFrame,或者带有名字的Series,或者DataFrame的list】如果传递的是Series,那么其name属性应当是一个集合,并且该集合将会作为结果DataFrame的列名

on:【列名称,或者列名称的list/tuple,或者类似形状的数组】连接的列,默认使用索引连接

how:【{‘left’, ‘right’, ‘outer’, ‘inner’}, default:‘left’】连接的方式,默认为左连接

lsuffix:【string】左DataFrame中重复列的后缀

rsuffix:【string】右DataFrame中重复列的后缀

sort:【boolean, default:False】按照字典顺序对结果在连接键上排序。如果为False,连接键的顺序取决于连接类型(关键字)。

主要用于索引上的合并,其参数的意义与merge方法中的参数意义基本一样。该方法最为简单,主要用于索引上的合并

f.join(df1,lsuffix='_left',rsuffix='_right')

总结:

join 最简单,主要用于基于索引的横向合并拼接

merge 最常用,主要用于基于指定列的横向合并拼接

concat最强大,可用于横向和纵向合并拼接

append,主要用于纵向追加

你可能感兴趣的:(pandas数据合并concat, merge, append, join)