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

有没有pandas函数可围绕单列重组织dataframe并统计指定列值的行数?

Python Pandas 实现方案

默认基于你使用的是Python生态的Pandas DataFrame进行操作,假设你的DataFrame变量名为df,存储上映年份的字段名为release_year,你可以替换为你实际的字段名。

  • 方案1:使用groupby分组聚合(适合后续需要同时聚合其他字段的场景)
    核心逻辑是按年份字段分组后统计每组的条目数:
    # 统计每年电影数量,as_index=False直接把年份转为普通列,不需要额外reset_index
    year_count_df = df.groupby('release_year', as_index=False).size()
    # 重命名数量列,语义更清晰
    year_count_df.rename(columns={'size': 'movie_count'}, inplace=True)
    
  • 方案2:使用value_counts快速统计(仅需要统计数量时更简洁)
    直接对年份字段做值统计,再转为DataFrame结构:
    # sort=False保持年份原有顺序,如果需要按年份排序可以改为sort=True,或者后续单独排序
    year_count_df = df['release_year'].value_counts(sort=False).reset_index(name='movie_count')
    
  • 可选操作:按年份升序排序
    如果结果需要按年份从早到晚排列,执行以下代码即可:
    year_count_df.sort_values('release_year', ignore_index=True, inplace=True)
    

最终输出的year_count_df每行对应唯一的上映年份,movie_count列存储对应年份的电影总数量。如果需要同时聚合其他字段(比如年度平均评分、年度平均票房等),可以在groupby时用agg方法自定义聚合规则,示例如下:

year_agg_df = df.groupby('release_year', as_index=False).agg(
    movie_count=('movie_id', 'count'), # 统计电影数量,基于唯一的电影id字段
    avg_rating=('rating', 'mean'), # 统计年度平均评分
    total_box_office=('box_office', 'sum') # 统计年度总票房
)

内容的提问来源于stack exchange,提问作者jzintegral97

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:27:01