python-3.x - 如果另一个列条目在两个数据帧之间匹配,则从另一个数据帧的行条目填充熊猫列
问题描述
我正在尝试向数据框添加一个新列。首先,我想检查每一行的 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
and来指定right_on
。
推荐阅读
- php - 在PHP中按键的字母顺序对多维数组进行排序
- c++ - CopyFile 找不到文件,而我可以从 fopen 打开它
- android - 无法获取 TPL 地图的折线坐标
- python - 里面有 Django 的便携式 python 包?
- tensorflow - 为张量流计算图重塑图像
- azure - 带有通配符文件名的数据流源
- visual-studio-2013 - 如何在设计时修复崩溃 Visual Studio 2013 SSIS 崩溃
- jquery - 如何使用 jQuery 获取搜索字符串前面的数字?
- javascript - Highcharts 内边框曲线
- javascript - 为什么我不能将其他 css 元素应用到我的自定义 css 类?