Groupby遵从split(先进行分组)、apply(对分组进行处理)、combine(拼接成最终df)模式
对数值列按照分组进行归一化
1.对数据进行横向处理,方便对比
公式:X =
import pandas as pd
def rating_normal(x):
max_value=x.max()
min_value=x.min()
x=x.apply(lambda x:x-min_value/(max_value-min_value))
return x
ratings_df = pd.DataFrame(ratings)
ratings_grouped = ratings_df.groupby("user_id")["rating"].apply(rating_normal)
ratings_grouped = ratings_grouped.reset_index(drop=True)
每个分组的TOP数据
#实现每一个分组的topn数据
def getWinduTopN(df,topn):
return df.sort_values(by="wendu")[["ymd,wendu"]][-topn:]
df.groupby("month").apply(getWendutopn,topn=2).head()