如果另一列条目在两个数据帧之间匹配,则从另一个数据帧的行条目填充panda列



我正在尝试向数据帧添加一个新列。首先,我想检查每一行的id是否存在于另一个数据帧中。如果是,那么我想用另一个数据帧中的值填充我的行条目。例如,我想查找的数据帧如下所示:

id  replays
0   2   1
1   5   1
2   6   2
3   8   3
4   12  1

我想为其创建一个新列的数据帧最初看起来是这样的,只有id:

id
0   2
1   5
2   6

最终,这个数据帧应该填充一个像这样的新列,其中重放条目是与第一个数据帧的id匹配的条目:

id  replays
0   2   1
1   5   1
2   6   2

我不知道如何做到这一点。我尝试过使用lambda-apply,但无法获得所需的结果。

您想要合并:

import pandas as pd
df_vals = pd.DataFrame({'id':[2, 5, 6, 8, 12], 
'replays':[1, 1, 2, 3, 1]})
df = pd.DataFrame({'id':[2, 5, 6]})
cols = ["id", "replays"]
df.merge(df_vals[cols], on ="id")

输出:

id  replays
0   2        1
1   5        1
2   6        2

如果不需要全部列,则可以预先选择这些列。如果要联接的列具有不同的名称,则必须使用left_onright_on指定该名称。

最新更新