Python 如何将重复项映射到关键点,并将关键点映射到数据帧中的重复项?
我随身携带下表:Python 如何将重复项映射到关键点,并将关键点映射到数据帧中的重复项?,python,pandas,dataframe,duplicates,mapping,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 我已经尽了最大努力解释了这个问题,但请随时询问进一步的问题。您需要两个映射来将重复项映射到
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
我已经尽了最大努力解释了这个问题,但请随时询问进一步的问题。您需要两个映射来将重复项映射到键,并将键映射到重复项。使用
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
您需要两个映射来将重复项映射到键,并将键映射到重复项。使用
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
您能解释一下为什么
ABC=ACA=ACD
?因为第1行和第2行具有相同的值“Dup1”,所以它们的键ABC=ACA------1和类似地,第3行和第5行具有相同的值“Dup2”,所以第1行和第2行中的键ACA=ACD------2:ABC=ACA=ACD,因此所有3个键都具有相同的值,即Dup1。更新了我的答案。如果有效,请考虑接受标记。谢谢。您能解释一下为什么ABC=ACA=ACD
?因为第1行和第2行具有相同的值“Dup1”,所以它们的键ABC=ACA------1,同样地,第3行和第5行具有相同的值“Dup2”,所以第1行和第2行的键ACA=ACD------2:ABC=ACA=ACD,因此所有3个键的值都相同,即Dup1。更新了我的答案。如果有效,请考虑接受标记。谢谢