python中使用merge关联两个表合并之后减少行数了

Python011

python中使用merge关联两个表合并之后减少行数了,第1张

python中使用merge关联两个表合并之后减少行数了?答:python使用merge函数合并

感觉你应该是参数少了,或者设置错了,你可以参考一下具体的参数pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,left_index=False, right_index=False, sort=True,suffixes=('_x', '_y'), copy=True, indicator=False,validate=None)参数如

append 方法根据行在原数据框添加新的数据框。

如果想要合并后的数据框索引重写排序,可以设置参数 ignore_index=True 。

concat 函数是panda自带的,可以按行或按列合并多个pandas数据框。

按行合并多个数据框,需要注意的是 objs参数接受一个可迭代对象 。concat函数默认按行合并。

设置 ignore_index=True ,使合并后的数据框索引重新排序。

按行合并时,concat对所有的列进行全连接(参数 join='outer' ),没有的列会填充为NaN。

设置参数 join='inner' ,可以只保留共有的列。

设置参数 axis=1 或 axis='columns' ,可以按列合并多个数据框。

merge 方法根据列或索引连接数据框。

当两个数据框只有一个相同列时, merge 方法会自动根据相同列进行内连接, on 参数可以省略。

设置参数 how=['left','right','outer','inner','cross'] ,可以完成不同类型的连接。

当两个数据框没有相同列时,需要设置 left_on 和 right_on 参数,表示按这两列进行连接。

如果需要根据数据框的索引进行连接,需要根据需求设置参数 left_index=True 或者 right_index=True 。

设置 suffixes ,可以给相同的列名添加后缀。默认后缀是 _x , _y 。

join 方法与 merge 方法作用相同,基本上 merge 方法已经可以完成所有的连接操作。

join 方法对按索引连接更方便而已。

当连接的两个数据框中没有相同列时,可以直接按索引进行左连接。

同样,可以设置 how 参数,控制连接的行为。

当数据框中有相同列时,需要设置后缀。

join主要用于基于索引的横向合并拼接;

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

concat可用于横向和纵向合并拼接;

append主要用于纵向追加;

combine可以通过使用函数,把两个DataFrame按列进行组合。

join

join是基于索引的横向拼接,如果索引一致,直接横向拼接。如果索引不一致,则会用Nan值填充merge是基于指定列的横向拼接,该函数类似于关系型数据库的连接方式,可以根据一个或多个键将不同的DatFrame连接起来。该函数的典型应用场景是,针对同一个主键存在两张不同字段的表,根据主键整合到一张表里面。

可以指定不同的how参数,表示连接方式,有inner内连、left左连、right右连、outer全连,默认为inner