Python:如何在两个数据帧之间找到正确的组合?

2024-10-04 05:21:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧df1df2

df1包含IDCode之间链接的信息

df1
     ID   Code
0    48    3
1    47    2
2    50    0
3    49    1

df2包含以下信息:ID作为索引,一些距离d和不同的代码

df2
       d1    d2 ... d100  Code1  Code2  ... Code100
47    3.2   5.4     45.2    3       2         1
48    1.4   7.4     46.7    0       3         2
49    5.4   8.9     33.2    1       2         0
50    6.3   8.7     47.5    3       0         2

我想把df1与相同组合的相对距离联系起来,例如

df1
     ID   Code   d
0    48    3    7.4
1    47    2    5.4
2    50    0    8.7
3    49    1    5.4

假设我在df2中有数百个代码和距离

目标是在df2中找到df1的组合。例如,ID=48Code=3的组合在df2的第二行,距离d2=7.4


Tags: 数据代码信息id距离链接coded2
1条回答
网友
1楼 · 发布于 2024-10-04 05:21:30

您需要与引用的df2中的选择性列执行合并。之后,您就可以合并结果了

m1 = df1.merge(df2.reset_index(), left_on=['ID', 'Code'], right_on=['index', 'Code1'])[['ID', 'Code', 'd1']].rename(columns={'d1': 'd'})
m2 = df1.merge(df2.reset_index(), left_on=['ID', 'Code'], right_on=['index', 'Code2'])[['ID', 'Code', 'd2']].rename(columns={'d2': 'd'})
res = pd.concat([m1, m2])

输出:

    ID  Code    d
0   49  1      5.4
0   48  3      7.4
1   47  2      5.4
2   50  0      8.7

相关问题 更多 >