pd.merge函式合併DataFrame 保留原index

笑而不语心自闲發表於2024-05-03

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

相關文章