【发布时间】:2015-04-21 18:52:57
【问题描述】:
我有一个地面实况数据集“gt”(包含 100 个条目),如下所示:
org_o shh group
ArabsGate 1 1
ArabsGate Company 1 1
AS EMT NaN 2
AS EMT Mobile Internet 1 2
DigitalEffex (MH) NaN 3
DigitalEffex 1 3
Aruba S.p.A. 1 4
Aruba S.p. 1 4
我想将其与一个巨大的数据框“df”进行比较,如下所示:
match org_o
as emt AS EMT
as emt AS EMT Mobile Internet
digitaleffex DigitalEffex (MH)
digitaleffex DigitalEffex
digitaleffex Digital
作为比较的结果,我希望我的 df 中是否存在具有相同 org_o 的同一组。因此,对于每个组,该组的计数或成员,以及实际的 org_o 名称。例如,我们同时拥有“Aruba S.p.A.”和“Aruba S.p.”在 df 中,它们是否匹配到一组中的相同关键字(“匹配”列)。
这是我所做的,但并不是我真正想要的。
gt.groupby('group').count()['org_o']
df.merge(gt, on = 'org_o')
最终我想计算误报/误报。这是预期的输出:
match org_o tag
as emt AS EMT TP
as emt AS EMT Mobile Internet TP
digitaleffex DigitalEffex (MH) TP
digitaleffex DigitalEffex TP
digitaleffex Digital FP
有人可以帮忙吗?
【问题讨论】:
-
你能发布预期的输出吗?换句话说,你想用
df的match替换gt的org_o名称,然后计算或 .. ? -
@JohnGalt 我已经更新了我的问题。
-
您是否只比较第一列中的值?对每个列表进行循环有什么问题?运行时间为 O(n*m),其中 n 和 m 是每个列表的大小。
-
@tommy.carstensen 是的,而且它们在 gt 数据中属于同一组
标签: python list dictionary pandas comparison