我有一个pandas数据框架,它看起来像这样。
id new_id
0 00 11
1 11 22
2 22 3
3 89 100
4 101 102
我想用这个数据框把旧的id值替换成新的id值 为此我想把数据框做成这个样子
id new_id
0 00 3
1 11 3
2 22 3
3 89 100
4 101 102
所以每当一个id值出现在new_id列中时 我想用新的id值来替换这个id值 这个新的id值没有出现在id列中 我怎样才能实现这个目标?
先谢谢你的帮助
m = dict(zip(df.id, df.new_id))
new = df.new_id.replace(m)
while not new.equals(df.new_id):
df['new_id'] = new
new = df.new_id.replace(m)
df
id new_id
0 0 3
1 11 3
2 22 3
3 89 100
4 101 102
def recursed_dict(d):
for k, v in d.items():
while v in d:
v = d[v]
yield k, v
m = dict(recursed_dict(dict(zip(df.id, df.new_id))))
df['new_id'] = df.new_id.replace(m)
df
id new_id
0 0 3
1 11 3
2 22 3
3 89 100
4 101 102