组合DataFrame
连接
如果只是要将多个DataFrame粘合在一起,那么concat函数是最佳选择。在默认情况下,concat会将DataFrame按行粘合在一起,同时会将各列自动对齐。
如果想要按列进行粘合,需要将axis设置为1:
concat的特性是它可以接受两个以上的DataFrame。
连接和合并
在连接两个DataFrame时,这两个DataFrame的列会连接在一起,而行的行为会借助集合论的原理来确认。下面是4中连接方式:
pandas在join函数中会利用DataFrame的索引将行对齐。内连接(inner join)的结果中只包含两个DataFrame共有的索引。左连接(left join)会保留左侧df1的所有行,然后用右侧df2中的行去匹配df1的索引。如果某一索引在df2中没有匹配的行,那么pandas就会在对应位置填上NaN。左连接对应的是Excel中的VLOOKUP。右连接(right join)会保留df2中所有的行,然后用df1的行去匹配索引。外连接(outer join)全称是完全外连接(full outer join)。外连接会保留两个DataFrame的所有索引,然后再将值进行匹配。
首先构造df1和df2:
测试4种连接:
如果想在不依赖索引的情况下连接DataFrame中的一列或多列,那么应该使用merge,而不是join。merge可以通过on参数提供的一列或多列作为连接条件,这些列必须是两个DataFrame所共有的,它们会被用来和行进行匹配。