多次将一列的值替换为其他列的值。

我有一个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

给TA打赏
共{{data.count}}人
人已打赏
未分类

在Slack消息块按钮确认文本中不解释Markdown。

2022-9-8 5:19:38

未分类

如何将淡入淡出添加到视觉效果视图模糊 - SWIFT

2022-9-8 5:19:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索