Я хочу найти количество строк в наборе данных, которые удовлетворяют двум условиям:
counter = len(train[(train['tag'] == label) & (train['word'] == word)])
, но его вычисление занимает много времени в зависимости от объема данных, которые у меня есть, и количества раз, когда я хочу выполнить это.
Есть ли другой способ быстрее?
обновление:
Решение @jezrael почти утроило скорость, но все еще занимает слишком много времени.
это более законченный код!
for index, row in tqdm(test.iterrows()):
word = row['word']
for label in labels:
temp1 = train.eval('tag == @label and word == @word').sum()/labelDict[label]
temp2 = train.eval('tag == @label and tag1 == @LastLable').sum()/labelDict[label]
temp = temp1 * temp2
if max > temp:
max = temp
bestLabel = label