我有两个数据框:一个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进行比较。
执行此操作的效率更高吗?可以相对容易地实现吗?
答案 0 :(得分:1)
你可以做到,
result = id_dataframe.merge(event, on='id', how='right')