如何在数据框中添加一列(average_user_rating),以便为该行中的userId提供平均评分?

时间:2019-04-10 12:23:50

标签: python pandas dataframe series

Python数据框:

我得到了一个带有UserId,MovieId和等级(长度81116)的数据框。

enter image description here

我还有一个系列,具有每个UserId(长度610)的平均评分。

enter image description here average rating series view

如何在数据框中添加一列average_user_rating,为该行中的userId提供平均评分?

2 个答案:

答案 0 :(得分:0)

假设该系列按UserId的新月顺序排列,则可以使用类似以下内容的pandas来做到这一点:

df["average_user_rating"] = df["UserId"].apply(lambda x: s[x-1])

您可以测试:

s = pd.Series([10,20])
df = pd.DataFrame([[1,5],[1,15],[2,10],[2,30]], columns = ["UserId", "Rating"])
print (s)
print (df)
df["average_user_rating"] = df["UserId"].apply(lambda x: s[x-1])
print(df)

答案 1 :(得分:0)

您可以使用merge。 它就像SQL JOIN

可能的代码是:

df = pd.merge(left=movies_df, right=users_df, how='left', 
              left_on='userId', right_index=True)