У меня есть «GT» Для подспутниковых набора данных (100 записей), который выглядит следующим образом:Python Pandas: Каков наиболее эффективный способ сравнения двух списков в цикле?
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
, и я хотел бы сравнить его с огромным dataframe «ФР», который выглядит следующим образом:
match org_o
as emt AS EMT
as emt AS EMT Mobile Internet
digitaleffex DigitalEffex (MH)
digitaleffex DigitalEffex
digitaleffex Digital
В результате сравнения я хочу, чтобы одна и та же группа с тем же самым org_o существовала в моем df или нет. Таким образом, для каждой группы учитываются как члены группы, так и фактические имена org_o. Так, например, где у нас есть и «Аруба С.П.А.», и "Аруба С.П." в df и ниже они сопоставляются с одним и тем же ключевым словом (столбец «match») в одной группе.
Вот что я сделал, но на самом деле это не то, что я ищу.
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
Может ли кто-нибудь помочь в этом?
Можете ли вы также опубликовать ожидаемый выход? Другими словами, вы хотите заменить имена 'org_o'' gt' 'из' '' '' '' '' '' '' '' '' '' 'df', а затем взять подсчеты или ..? – Zero
@JohnGalt Я обновил свой вопрос. – UserYmY
Вы сравниваете только значения в первом столбце? Что не так, делая цикл над каждым списком? Время выполнения будет O (n * m), где n и m - размеры каждого списка. –