pd.merge函数合并DataFrame 保留原index
C=pd.merge(A,B),merge之后C的行数并不会变。但是A的index丢失了,因为merge之后index是重排的。
解决办法:
方法1:
#可以先把A的index保存一下,A、B中含有"col"列
A_index =A.index
C=pd.merge(A,B,on="col",how="left")
C.index = A_index
方法2:
# A、B中含有"col"列,set_index 设置
C = A.merge(B, on="col",how="left").set_index(A.index)
方法3:
# 缺点:会失去groupby,1、2级索引的效果
A.reset_index(drop=False, inplace=True)
C = pd.merage(A,B,on="col",how="left")