July 27, 2024/505 阅读
根据自己的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)