You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改DataFrame列名,按频道统计YouTube唯一视频观看数

解决YouTube历史数据按频道统计唯一视频数的列名修改与代码优化

列名修改方法

如果你的代码是通过groupby+nunique()生成统计结果,可通过两种方式修改列名:

方法1:计算时直接指定列名

在调用reset_index时通过name参数直接设置自定义列名,一步到位:

import pandas as pd

# 加载JSON数据(假设数据路径正确)
df = pd.read_json('youtube_history.json')

# 过滤有效视频记录(YouTube历史中标题以"Watched"开头的为视频观看记录)
df = df[df['title'].str.startswith('Watched')].dropna(subset=['channel_title', 'video_id'])

# 按频道分组统计唯一视频数,同时设置列名
channel_stats = df.groupby('channel_title')['video_id'].nunique().reset_index(name='No_of_unique_videos_viewed')

方法2:生成结果后重命名列

如果已经得到带nunique列的DataFrame,用rename方法修改:

# 假设已生成带nunique列的统计结果
channel_stats = channel_stats.rename(columns={'nunique': 'No_of_unique_videos_viewed'})

代码优化方案

处理这类统计需求,以下方案更高效且严谨:

方案1:小数据集简洁版

数据量较小时,直接用groupby+nunique()足够简洁,同时加入数据清洗步骤避免无效统计:

import pandas as pd

df = pd.read_json('youtube_history.json')
# 清洗数据:保留有效视频记录,去掉缺失频道或视频ID的行
clean_df = df[df['title'].str.startswith('Watched')][['channel_title', 'video_id']].dropna()
# 统计唯一视频数
channel_stats = clean_df.groupby('channel_title')['video_id'].nunique().reset_index(name='No_of_unique_videos_viewed')
# 按视频数降序排序(可选)
channel_stats = channel_stats.sort_values(by='No_of_unique_videos_viewed', ascending=False)

方案2:大数据集高效版

当数据量极大时,先通过drop_duplicates去重再统计,性能更优:

import pandas as pd

df = pd.read_json('youtube_history.json')
clean_df = df[df['title'].str.startswith('Watched')][['channel_title', 'video_id']].dropna()
# 先去重:同一频道下的同一视频只保留一条记录
unique_records = clean_df.drop_duplicates(subset=['channel_title', 'video_id'])
# 统计每个频道的唯一视频数
channel_stats = unique_records.groupby('channel_title').size().reset_index(name='No_of_unique_videos_viewed')
# 排序(可选)
channel_stats = channel_stats.sort_values(by='No_of_unique_videos_viewed', ascending=False)

这种方式的核心是提前去除重复的视频观看记录,减少分组统计时的计算量,在百万级以上数据量时优势明显。

内容的提问来源于stack exchange,提问作者Mauricio Arias Olave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:57:09