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")

 

posted @ 2024-05-03 18:24  笑而不语心自闲  阅读(183)  评论(0编辑  收藏  举报