gpt4 book ai didi

python - 将数据框与其自身合并,其中外键引用其键

转载 作者:行者123 更新时间:2023-12-01 06:57:36 25 4
gpt4 key购买 nike

我有一个看起来像这样的表格:

  p_id  val p2_id
0 P1 1 P2
1 P2 2 P3
2 P3 3 P2
3 P4 4 P3
4 P5 5 P1

我想获取 p2_id 中每个 id 与 p_id 对应的 val,如下所示:

  p_id  val p2_id  val2
0 P1 1 P2 2
1 P2 2 P3 3
2 P3 3 P2 2
3 P4 4 P3 3
4 P5 5 P1 1

我尝试将数据框合并到自身,如下所示:

import pandas as pd
dfa = pd.DataFrame({'p_id': ['P1', 'P2', 'P3', 'P4', 'P5'],
'val': [1,2,3,4,5],
'p2_id': ['P2', 'P3', 'P2', 'P3', 'P1'],
})
pd.merge(dfa, dfa.drop(columns='p2_id').rename(columns={'p_id':'p2_id'}), on='p2_id', how='left')

但这似乎是一种hacky方法。是否有一个内置方法,或者这种类型的操作的名称?

最佳答案

使用 map

df['val2'] = df.p2_id.map(df.set_index('p_id').val)
<小时/>
  p_id  val p2_id  val2
0 P1 1 P2 2
1 P2 2 P3 3
2 P3 3 P2 2
3 P4 4 P3 3
4 P5 5 P1 1

关于python - 将数据框与其自身合并,其中外键引用其键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58740446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com