在利用pandas进行数据分析时,merge是很常用的操作,但是这里有一个小陷阱,就是当两个DataFrame进行merge之后,如果左侧的DataFrame出现的空值NaN,那么pandas默认会把其放置在merge后的DataFrame的末尾,这是个需要特别注意的地方。如下图所示。
特别是当我们后续要对空值填充的话,如果是用前向填充或者后向填充等和相对位置有关的填充方式,而不是以特定值填充的话,那么这个小陷阱就会对我们的数据造成影响,因为预期中,我们认为merge之后数据的顺序是不会变的,但是实际上已经把左侧df出现空值的行放置在最后了,从而发生了相对位置的改变。所以这时我们需要对merge之后的df进行一个重新排序,如果原数据并不是按升序或者降序的方式排列的话,而我们还是想维持原顺序,原顺序可能是无序的,那么这时为了保持原顺序,可以参考笔者之前写的一篇文章,然后再进行排序,最后就会按照原顺序排序。