2020-04-27
阅读量:
1613
dataframe数据重组,题目详情见正文
每个机顶盒查看各个频道的时长,详情如下,

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







评论(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