Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def calc_recommendation(df_expl, df_pop):
- """Calculate recommendations based on popularity of items.
- The final data frame will have an impression list sorted according to the number of clicks per item in a reference data frame.
- :param df_expl: Data frame with exploded impression list
- :param df_pop: Data frame with items and number of clicks
- :return: Data frame with sorted impression list according to popularity in df_pop
- """
- df_expl_clicks = (
- df_expl[GR_COLS + ["impressions"]]
- .merge(df_pop,
- left_on="impressions",
- right_on="reference",
- how="left")
- )
- df_out = (
- df_expl_clicks
- .assign(impressions=lambda x: x["impressions"].apply(str))
- .sort_values(["Clicks"] + ["Price"] + ["CTR"],
- ascending=[False,True,False])
- )
- df_out = group_concat(df_out, GR_COLS, "impressions")
- df_out.rename(columns={'impressions': 'item_recommendations'}, inplace=True)
- return df_out
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement