一、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,主要用于纵向追加