我正在尝试向数据帧添加一个新列。首先,我想检查每一行的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_on
和right_on
指定该名称。