如何将重复项映射到键,并将键映射到pandas数据帧中的重复项?

时间:2017-08-30 12:44:53

标签: python pandas dataframe duplicates mapping

我跟随下表:

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

我想将第一行的值分配给第3行中的关键ACA为Dup1(第2行),并将ACD的值更改为Dup1,因为ABC = ACA = ACD以下是所需的输出:

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

我尽力解释这个问题,但请随时提出进一步的询问。

1 个答案:

答案 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