У меня есть два кадра данных.В первом у меня есть клиенты и столбец со списком всех ресторанов, которые он / она посетил.
In [1]: df_customers
Out[1]:
Document Restaurants
0 '000000984 [20504916171, 20504916171, 20499859164]
1 '000010076 [20505918674, 20505918674, 20505918674]
2 '000010319 [20253346711, 20524403863, 20508246677]
3 '000018468 [20253346711, 20538456226, 20505918674]
4 '000024409 [20553255881, 20553596441, 20553255881]
5 '000025944 [20492255719, 20600654226]
6 '000031162 [20600351398, 20408462399, 20499859164]
7 '000055177 [20524403863, 20524403863]
8 '000058303 [20600997239, 20524403863, 20600997239]
9 '000074791 [20517920178, 20517920178, 20517920178]
В моем другом фрейме данных у меня есть столбец с ресторанами, а другой - с заданным значением для каждого из них.
In [2]: df_rest
Out [2]:
Restaurant Points
0 10026575473 1
1 10037003331 1
2 10072208299 1
3 10179698400 2
4 10214262750 1
Мне нужно создать столбец в фрейме данных моих клиентов с суммой баллов, начисленных за каждый ресторан, который он / она посетил.
Я пробовал что-то вроде этого:
df_customers["Sum"]=df_rest.loc[df_rest["Restaurant"].isin(df_customers["Restaurants"]),"Points"].sum()
Но я получаю эту ошибку:
TypeError: unhashable type: 'list'
Я пытаюсь не выполнять итерации по данным моего клиента, это занимает слишком много времени.Любая помощь?