У меня есть два кадра данных (с неравными строками, но одинаковыми столбцами), например, следующие:
DataFrame A:
dummy | probability
-------------------
0 | .1
-------------------
0 | .2
DataFrame B:
dummy | probability
-------------------
1 | .05
-------------------
1 | .2
Я хотел бы реализовать векторизованную условную проверку для попарных элементов.
В моем фактическом наборе данных содержится несколько сотен тысяч элементов.Поэтому, если я проверяю поэлементно, использование двойного цикла for потребует как минимум 100000 ^ 2 итераций, которые я вообще не хочу.
Я считаю, что, вероятно, есть способ сделать это, используя numpy и pandas, которые яв настоящее время я не знаю.
псевдокод должен выглядеть примерно так:
def vectorized_counts():
A = 0
B = 0
tie = 0
if element in dfA second column > element in dfB second column:
A += 1
elif element in dfA second column < element in dfB second column:
B += 1
else:
tie += 1
return list(A,B,tie)
Для моего тестового примера выше мы имеем:
A
.1 > .05
.2 > .05
B
.1 < .2
tie
.2 = .2
Следовательно:
A = 2
B = 1
tie = 1
Каким образом я могу пойти по этому поводу?Достаточно просто сравнить один элемент информационного кадра с соответствующим элементом другого информационного кадра.Что меня смущает, так это то, как сравнивать каждый элемент кадра данных с каждым элементом другого кадра данных.