两个或多个数据表合并,是数据处理时常见的操作。在pandas中,常用的方法有append、concat等,对于这两个方法的说明,我感觉读下面的文章足矣:
https://www.jianshu.com/p/29f5c6792f61
在这里,我对上面文章和自己的理解做个总结和批注。
要点1:pandas的columns 和 index没有要求必须必须唯一,只有索引key是必须唯一的。因此在数据合并的时候,如果按照默认设置,新生成表的index和columns很有可能是重复值。
要点2:对于行方向的合并,最常见的是两个结构相同的表,数据需要进行归并,即将两个表格的记录合并成一个表,此时用append就可以实现,而且append主要就是为了实现该功能。相比而言,concat也是可以实现的,当然它还可以实现列上的合并。
要点3:对于concat以及append,可以使用ignore_index参数来忽略原索引,在合并数据后按照顺序重新index
这里简单示例如下:
#首先从excel文件中读取数据,分别写入df1和df2
df1 = pd.read_excel('test_a.xlsx',index_col = 0)
print(df1)
df2 = pd.read_excel('test_b.xlsx',index_col = 0)
print(df2)
#使用concat来合并,首先将需要合并的数据放到一个list里
frames = [df1,df2]
#先实现行的合并
result1 = pd.concat(frames,ignore_index=True)
print(result1)
#再试试实现列方向的合并
result2 = pd.concat(frames,axis=1)
print(result2)
#最后使用append实现在行上的合并
result3 = df1.append(df2,ignore_index=True)
print(result3)