python - 基于具有重复键的键有效地将一个数据帧与另一个数据帧匹配
问题描述
我有两个数据框:一个 id 数据框和一个事件数据框,大致如下: id 表:
id date
N103 09-01
N434 09-03
N234 08-10
事件表:
id date Event name
N103 08-01 Failure
N104 12-02 Alarm
N103 12-02 Warning
N234 11-09 Information
N103 12-01 Disabled
我想从 id 数据框中的事件数据框中获取所有行。所以,对于我的例子,输出是
N103 08-01 Failure
N103 12-02 Warning
N234 11-09 Information
N103 12-01 Disabled
问题是我的 id 数据框有 2.500 行,而我的事件数据框有 900.000.000 行。因此,我正在寻找一种非常有效的方法来做到这一点。我目前拥有的是:
data = []
for id in id_dataframe['id']:
part = event[event['id']==id]
data.append(part)
然而,这似乎非常低效,因为每次我将“id”与事件数据帧中的所有 id 进行比较。
有没有更有效的方法,可以相对容易地实现?
解决方案
你能做到,
result = id_dataframe.merge(event, on='id', how='right')
推荐阅读
- javascript - 节点从 url 获取 json
- python - 必须在创建 QCoreApplication 之前设置属性 Qt::AA_UseSoftwareOpenGL
- python - 如何线程化两个函数,其中一个输出影响其他操作
- autodesk-forge - 将三个js模型加载到forge查看器中
- config - 带有鱼壳的sketchtool CLI
- mysql - 如何优化mysql中大数据的id和limit查询?
- go - Google Cloud Pub/Sub 和后台函数调用问题
- c# - 如何判断我的 IContainerGroup.ExecuteCommandAsync() 代码方法是否运行?
- html - 除了单个元素外,我网站上的所有内容都针对移动设备正确调整大小,我不知道为什么?
- ruby - 无法加载此类文件 -- capybara (LoadError)