У меня есть эти два фрейма данных в python, и я пытаюсь вычислить расстояние Манхэттена, а затем евклидово расстояние, но я застрял на этом расстоянии Манхэттена и не могу понять, что происходит не так.Вот что я пробовал до сих пор:
ratings = pd.read_csv("toy_ratings.csv", ",")
person1 = ratings[ratings['Person'] == 1]['Rating']
person2 = ratings[ratings['Person'] == 2]['Rating']
ratings.head()
Person Movie Rating
0 1 11 2.5
1 1 12 3.5
2 1 15 2.5
3 3 14 3.5
4 2 12 3.5
Вот данные внутри person1
и person2
print("*****person1*****")
print(person1)
*****person1*****
0 2.5
1 3.5
2 2.5
5 3.0
22 3.5
23 3.0
36 5.0
print("*****person2*****")
print(person2)
*****person2*****
4 3.5
6 3.0
8 1.5
9 5.0
11 3.0
24 3.5
Это была функция, которую я пытался построить безлюбая удача:
def ManhattanDist(person1, person2):
distance = 0
for rating in person1:
if rating in person2:
distance += abs(person1[rating] - person2[rating])
return distance
Дело в том, что функция возвращает 0, и это не правильно, когда я отлаживаю, я вижу, что она никогда не входит во второй цикл.Как выполнить проверку, чтобы увидеть, что обе строки имеют значение и цикл?