根据条件合并列

Mat*_*pow 2 python dataframe pandas

我有两个表,我想用一个 id 列将一个表映射到另一个表。这两个表的 ID 大小不同。如果未找到 id,则列结果为 n/a。

表A

id   type
2231  C
1213  A
1241  C
Run Code Online (Sandbox Code Playgroud)

表B

id     other columns
2232       X
1213       Y
1233       I
Run Code Online (Sandbox Code Playgroud)

目标是映射表 A 中的 id 值并在表 B 中添加一个附加列。

理想桌

id     other columns    type
2232       X             n/a
1213       Y             A
1233       I             n/a
Run Code Online (Sandbox Code Playgroud)

我厌倦了从表 A 中找到所有的 A 型。

typeA = df_A.id.loc[df_A.type == 'A']).tolist()
df_B.type = df_B.loc[df_B.isin(typeA)]
    ...
Run Code Online (Sandbox Code Playgroud)

我想通过 ids 合并两个表,但它们有不同的 id 大小,也许也有不同的 ids。有没有更有效的方法来做到这一点?感谢您的时间。

Vai*_*ali 5

您可以使用地图

dfB['type'] = dfB.id.map(dfA.set_index('id').type)

    id   other columns  type
0   2232    X           NaN
1   1213    Y           A
2   1233    I           NaN
Run Code Online (Sandbox Code Playgroud)