根据自己的id获取自己的偏好数据

根据自己的id获取自己的偏好数据:
1.获取自己的uid
2.根据uid筛选出自己的偏好数据

代码1
查看自己以及他人的uid和偏好数据

import ybc_data
import ybc_pandas as pd

# 获取所有人的喜好数据
user_data = ybc_data.get_scenery_like_data()
user_df = pd.DataFrame(user_data)

# 获取自己的偏好数据
my_uid = ybc_data.get_user_id()
my_df = user_df[ user_df['uid'] == my_uid ]

# 获取其他人喜好数据
other_df = user_df[ user_df['uid'] != my_uid ]

print('----------自己的偏好数据----------')
print(my_df)
print('----------他人的偏好数据----------')
print(other_df)

代码2
获取和自己相似度最高的前三个人

import ybc_data
import ybc_pandas as pd

# 获取所有人的喜好数据
user_data = ybc_data.get_scenery_like_data()
user_df = pd.DataFrame(user_data)

# 获取自己的偏好数据
my_uid = ybc_data.get_user_id()
my_df = user_df[ user_df['uid'] == my_uid ]

# 获取其他人偏好数据
other_df = user_df[ user_df['uid'] != my_uid ]

# 遍历他人的偏好数据,计算相似度
score_list = []
for (i, data) in other_df.iterrows():
    score = 0
    for p in data['省份']:
        if p in my_df['省份'][0]:
            score += 1
    for t in data['类型']:
        if t in my_df['类型'][0]:
            score += 1
    for f in data['标签']:
        if f in my_df['标签'][0]:
            score += 1
    score_list.append(score)
other_df['分数'] = score_list

other_df = other_df.sort_values(by='分数', ascending=False)
# 获取other_df的前3条数据
users = other_df.head(3)
print(users)

发表评论


欢迎大家光临我的博客!