Я не знаю, как мне это сделать. сделайте это в одном и том же фрейме данных.
Указан фрейм данных -
Код: Выделить всё
Quantity Price data1 data2 Q1 P1 Q2 P2 Q3 P3 ....
0 1.1 100.1 A D 4.4 700.7 4.4 100.1 13.3 1300.3 ....
1 2.2 200.2 B E 5.5 800.8 5.5 110.1 14.4 1400.4 ....
2 3.3 300.3 C F 6.6 900.9 6.6 120.2 15.5 1500.5 ....
и сравниваем вот так
Код: Выделить всё
for row in df1.itertuples():
for k in [1,i]: #where i has the last nth term of P
if df1["Price"].between(df2[f"P{str(k)}"],df2[f"P{str(k+1)}]): #Error in this line
print("matched")
PS.
Изменить ожидаемый результат — я также изменил значение цены во второй строке для другого тестового примера.
Код: Выделить всё
Quantity Price data1 data2 Q1 P1 Q2 P2 Q3 P3 .... output1 output2
0 1.1 100.1 A D 4.4 700.7 4.4 100.1 13.3 1300.3 .... 4.4,700.7 4.4,100.1 #output1-Q1,P1 output2-Q2,P2 as Price lies between P1&P2
1 2.2 900.2 B E 5.5 800.8 5.5 810.1 14.4 1400.4 .... 5.5,810.1 14.4,1400.4 #output1-Q2,P2 output2-Q3,P3 as Price lies between P2&P3 here
2 3.3 300.3 C F 6.6 900.9 6.6 120.2 15.5 1500.5 .... 6.6,900.9 6.6,120.2 #output1-Q1,P1 output2-Q2,P2 as Price lies between P1&P2
Подробнее здесь: https://stackoverflow.com/questions/786 ... of-range-w