Pandas提供了concat,merge,join和append四种方法用于dataframe的拼接,其区别如下:
concat
两个DataFrame通过pd.concat(),既可实现行拼接又可实现列拼接,默认axis=0,join=‘outer’。表df1和df2的行索引(index)和列索引(columns)均可以重复。
a. 当axis=0(行拼接)时,使用pd.concat([df1,df2]),拼接表的index=index(df1) + index(df2),拼接表的columns=columns(df1) ∪ columns(df2),缺失值填充NaN。
b. 当axis=1(列拼接)时,使用pd.concat([df1,df2],axis=1),拼接表的index=index(df1) ∪ index(df2),拼接表的columns=columns(df1) + columns(df2),缺失值填充NaN。
merge
result=pd.merge(df1, df2,how=‘left’)
提供了类似于SQL数据库连接操作的功能,支持左联、右联、内联和外联等全部四种SQL连接操作类型
merge()只能完成两张表的连接,若有三个及以上表,需不断两两合并来实现)
该函数的典型应用场景: 两张表有相同内容的某一列(类似SQL中的主键),欲根据主键将两张表进行列拼接整合到一张表中,合并表的列数等于两个原数据表的列数和减去连接键的数量。
join
.join() 可用于df间列方向的拼接操作,默认左列拼接,how=’left’
df1.join(df2) 支持左联、右联、内联和外联四种操作类型
参数的意义与merge方法基本相同,只是join方法默认为左外连接how=’left’
append
.append() 可用于df间行方向的拼接操作,
df1.append(df2)