热线电话:13121318867

登录
2020-04-27 阅读量: 1613
dataframe数据重组,题目详情见正文

每个机顶盒查看各个频道的时长,详情如下,

按照时长计算每个机顶盒的偏好频道,实现效果如下表:

0.0000
2
关注作者
收藏
评论(1)

发表评论
yuechuchen
2020-04-27
解题思路:时长是客户偏好的具体表现形式,读取数据后,第一步按照时长进行降序排序;第二步,提取机顶盒信息,并按照机顶盒名称排序;第三步,重置每一个机顶盒对应的索引;第四步,依据机顶盒分组并按照时长降序排序;第五步,按照频道名称撤销堆叠,得到预计结果。 具体实现代码: import pandas as pd data = pd.DataFrame() data["机顶盒设备号"] = ["10001","10001","10002","10002","10002","10002","10003","10003","10003","10003","10004","10004","10005","10005","10005"] data["频道名称"] = ["东方卫视","翡翠台","浙江卫视","江苏卫视","珠江电影","卡酷动画","湖南卫视","中央5台","北京卫视","广东卫视","福建卫视","江西卫视","河北卫视","河南卫视","陕西卫视"] np.random.seed(0) data["时长"] = abs(np.random.randn(15)) data_s = data.sort_values(["机顶盒设备号","时长"],ascending=[True,False]) s = data_s.机顶盒设备号.value_counts().sort_index() list1 = [] for i in s.index: for j in range(s[i]): list1.append(j) data_s.index = list1 gp1 = data_s.groupby("机顶盒设备号").apply(lambda x : x.sort_values("时长",ascending = False)) gp1["频道名称"].unstack()
0.0000 0 0 回复