【发布时间】:2020-08-27 00:57:23
【问题描述】:
当且仅当另一列满足特定标准时,我正在努力将一系列两行之间的相似性转化为一系列新列。例如,假设我有一个 df,其中有四个人、他们的朋友状态和他们的社交偏好。
preference = {'person': ["Sara","Jordan","Amish","Kimmie"],'game_night':[30,10,50,30], 'movies': [10,10,20,10], 'dinner_out': [20,20,30,10] }
near = {'person': ["Sara","Jordan","Amish","Kimmie"], 'friendSara':[0,1,0,0], 'friendJordan': [1,0,1,1], 'friendAmish': [0,1,0,1], 'friendKimmie': [0,1,1,0]}
df = pd.DataFrame(data=preference)
near_df = pd.DataFrame(data=near)
如果您觉得有更好的方法来组织 df 或解决问题,请挑战我,但我希望在此示例中创建一系列名为“simSara”、“simJordan”的新列,等等,在每个人的 3 个社交偏好和其他社交偏好之间填充 dot(person1_preferences, person2_preferences)/(norm(person1_preferences)*norm(person2_preferences))。例如,添加名为“simSara”的第一列将在第二行填充 0.873(因为 Jordan 和 Sara 是朋友)
【问题讨论】:
标签: python calculated-columns cosine-similarity