Pandas处理编剧列拆分与单编剧平均收视率计算问题
处理电视剧DataFrame的编剧数据与平均收视率计算
1. 清洗编剧列空格并去重单集内重复编剧
你已经用str.split('|', expand=False)完成了字符串拆分,但每个编剧名带前后空格,还可能存在单集内重复编剧的情况,用apply配合列表推导式就能搞定清洗:
# 去除每个编剧名的前后空格,同时去重单集内的重复编剧 df["Writers"] = df["Writers"].apply(lambda x: list(set([name.strip() for name in x])))
2. 拆分数据并计算每位编剧的平均收视率
要计算平均收视率,得先把每个编剧和对应剧集的收视率一一对应,用explode把列表拆成单行数据,再分组计算均值:
# 将编剧列表拆分为单行数据,每个编剧对应一行剧集记录 exploded_df = df.explode("Writers") # 按编剧分组计算平均收视率,保留两位小数 writer_avg_view = exploded_df.groupby("Writers")["Viewership"].mean().round(2)
3. 转换为指定输出格式
最后把计算结果转换成你需要的列表格式:
result = [f"{writer} : {viewership}" for writer, viewership in writer_avg_view.items()]
得到的result就是类似["John Doe : 15", "Jennifer Hopkins : 7.54"]的格式,同时writer_avg_view.index.tolist()就能拿到去重后的所有编剧列表。
内容的提问来源于stack exchange,提问作者mattgg01
相关产品推荐
相关产品推荐

