我有一个熊猫数据框,如下所示:
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
因此,每当new_id列中存在一个id值时,我都想用新的id值替换该id值,即该id列中不存在的新id值。 我该如何实现?
谢谢您的帮助!
答案 0 :(得分:3)
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