2017-08-30 58 views
0

我有以下表我:在大熊貓數據幀替換以前的值複製的鑰匙

Key Col 
ABC Dup1 
ACA Dup1 
ACA Dup2 
ECB Dup3 
ACD Dup2 

我要分配的第一行價值的關鍵ACA在3行作爲DUP1(2行)和也改變ACD來作爲DUP1 ABC = ACA = ACD以下是期望輸出值:

Key Col 
ABC Dup1 
ACA Dup1 
ACA Dup1 
ECB Dup3 
ACD Dup1 

我已經盡我所能來解釋這個問題,但請隨時提出進一步的查詢。

+0

你能解釋爲什麼'ABC = ACA = ACD'? –

+0

由於第1行和第2行具有相同的值「Dup1」,所以它們的密鑰 ABC = ACA ------ 1 以及類似的第3行和第5行具有相同的值「Dup2」,因此鍵 ACA = ACD ---- ----- 2 從1和2開始: ABC = ACA = ACD 因此對於所有3個鍵即Dup1 –

+0

的值相同。更新了我的答案。如果有效,請考慮標記已接受。謝謝。 –

回答

0

您需要兩個映射來將副本映射到鍵,並將鍵映射到副本。使用df.replace替換值。

m1 = dict(df.iloc[df.Col.drop_duplicates(keep='first').index].values[:, ::-1]) 
m2 = dict(df.iloc[df.Key.drop_duplicates(keep='first').index].values) 
df.Col = df.Col.replace(m1).replace(m2) 

df 
    Key Col 
0 ABC Dup1 
1 ACA Dup1 
2 ACA Dup1 
3 ECB Dup3 
4 ACD Dup1