如何在Netflix DataFrame中添加duration列并统计各用户观看总时长
Netflix用户观看时长分组统计实现方案
前置说明
Netflix导出的观看记录里,DURATION列默认是时:分:秒格式的字符串,不支持直接求和计算,必须先转换为可运算的时间类型。
pd.to_timedelta()是pandas提供的时长转换函数,作用是把符合时间长度格式的字符串、数值转换为Timedelta时间差类型,转换后的值可以直接做加减、求和等算术运算。遇到格式不合法的脏数据时,加errors='coerce'参数会自动把异常值转为空值,不会中断代码运行。
分步实现
- 第一步:导入pandas库
import pandas as pd
- 第二步:加载你的Netflix数据集
# 替换成你本地的Netflix数据文件路径 df = pd.read_csv("your_netflix_data.csv") # 可选:执行df.head()查看前几行数据,确认字段名、DURATION列格式是否匹配
- 第三步:转换DURATION列为可计算格式
# 转换后的时长列存为新列cal_duration,避免修改原始数据 df["cal_duration"] = pd.to_timedelta(df["DURATION"], errors="coerce")
- 第四步:按Profile Name分组统计总观看时长
user_watch_total = df.groupby("Profile Name", as_index=False)["cal_duration"].sum()
- 第五步:提取观看时长最高的用户
# 按总时长降序排序,取第一条结果即为时长最高的用户 top_user = user_watch_total.sort_values("cal_duration", ascending=False).iloc[0] # 打印结果 print(f"观看时长最高用户:{top_user['Profile Name']}") print(f"累计观看时长:{top_user['cal_duration']}")
常用扩展
如果后续需要做可视化、数值对比,可以把时间差类型转成以小时为单位的浮点数:
# 新增总观看小时列 user_watch_total["total_watch_hours"] = user_watch_total["cal_duration"].dt.total_seconds() / 3600
内容的提问来源于stack exchange,提问作者kaydee
相关产品推荐
相关产品推荐

