Более быстрый способ поиска неупорядоченного списка во фрейме данных Pandas - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь проверить, существует ли новый список образцов в моей строке данных pandas.

Проблема заключается в том, что мне приходится перебирать все мои тестовые образцы, сравнивая каждый из тестовых образцов, который являетсянеупорядоченный список, ко всем строкам моего предопределенного «действительного» фрейма данных.

Я решил проблему, используя 2 вложенных цикла for, и установил сравнение для решения проблемы, но время поиска составляет почти секунду для каждого образца,Например,если мне нужно протестировать 1000 выборок, это займет 1000 секунд.

эта функция сравнивает каждый элемент двух списков.

from collections import Counter

def compare(s, t):
    if Counter(s) == Counter(t):
        return 1
    else:
        return 0

This look_up function iterate through my valid set and calls compare function to find if a match in the valid set.

def look_up(test):
    freq=0
    for i in range(len(valid_sets)):
        a=valid_sets.iloc[i,0]
        if compare(a,test)==1:
            freq=valid_sets.iloc[i,1]
    if freq>0:
        return "exists"

    else:
        return "missing"

This part loops through samples my test dataframe.
pred_test=[]
for i in range(len(proc_test_df)):
    print("sample point",i)
    sample=proc_test_df.iloc[i,:]
    pred_test.append(look_up(sample))

Может кто-нибудь помочь мне получить векторизованный результат или болееэффективный ответ с помощью трансляции или что-то подобное.Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...