2020-04-27
阅读量:
1436
dataframe数据重组,题目详情见正文。
df数据表:

汇总每个name对应的frequency和CTR,去掉列名CTR,列名用具体的name替代,结果如下(示例为结果的一部分):

参考答案:
np.random.seed(0)
df = pd.DataFrame({"frequency":np.random.randint(1,20,8)
,"CTR":np.random.uniform(0,1,8)
,"name":["0234s3","023dfr","34s231","a34d21","ss034q","34s231","0234s3","023dfr"]})
gp = df.groupby("name").apply(lambda x : x.sort_values("CTR"))
gp.columns = ['frequency', 'ctr', 'name1']
name = gp.pop("name1")
name.value_counts().index
df1 = pd.DataFrame()
for i in name:
df0 = gp.loc[i].reset_index().drop(columns = ["index"])
df0.columns = ["frequency",i]
df1 = pd.concat([df1,df0],axis=1)
df1
结果示例:






