在大熊猫数据帧替换以前的值复制的钥匙
问题描述:
我有以下表我:在大熊猫数据帧替换以前的值复制的钥匙
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
我已经尽我所能来解释这个问题,但请随时提出进一步的查询。
答
您需要两个映射来将副本映射到键,并将键映射到副本。使用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”,因此键 ACA = ACD ---- ----- 2 从1和2开始: ABC = ACA = ACD 因此对于所有3个键即Dup1 –
的值相同。更新了我的答案。如果有效,请考虑标记已接受。谢谢。 –