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

如何绘制按电影分组、Y轴统计in_movie总和的柱状图?

解决方法

你的问题出在直接用原始DataFrame绘图——原始数据中每个演员对应一条记录,绘图时会为每一行生成一个柱子,导致X轴电影名重复,Y轴仅显示单条记录的0/1值。正确步骤需要先聚合统计各电影的参演演员总数,再绘图:

1. 数据聚合处理

按电影名称分组,对in_movie列求和(参演标记为1,求和结果就是该电影的参演演员总数):

import pandas as pd
import matplotlib.pyplot as plt

# 假设你的原始DataFrame是df
agg_df = df.groupby('movie_title')['in_movie'].sum().reset_index()
  • groupby('movie_title'):按电影名称分组
  • sum():对每组的in_movie求和,得到该电影的参演人数
  • reset_index():将分组后的索引(电影名)转为普通列,方便后续绘图识别X轴

2. 绘制柱状图

用聚合后的DataFrame绘图,此时X轴每个电影仅显示一次,Y轴为对应参演人数:

# 绘制柱状图,可添加参数优化显示
agg_df.plot.bar(x='movie_title', y='in_movie', rot=0, figsize=(8, 5))
plt.xlabel('电影名称')
plt.ylabel('参演演员总数')
plt.title('各电影参演演员数量统计')
plt.show()
  • rot=0:让X轴标签横向显示,避免重叠
  • figsize:调整图表的宽高尺寸
  • 设置坐标轴标签和标题,让图表更直观

示例完整代码

# 构造示例数据
data = {
    'movie_title': ['Ghost', 'Ghost', 'Ghost', 'Titanic', 'Titanic', 'Inception'],
    'actors': ['Patrick Swayze', 'Demi Moore', 'Whoopi Goldberg', 'Leonardo DiCaprio', 'Kate Winslet', 'Leonardo DiCaprio'],
    'in_movie': [1, 1, 1, 1, 1, 1]
}
df = pd.DataFrame(data)

# 聚合数据
agg_df = df.groupby('movie_title')['in_movie'].sum().reset_index()

# 绘图
agg_df.plot.bar(x='movie_title', y='in_movie', rot=0, figsize=(8, 5))
plt.xlabel('电影名称')
plt.ylabel('参演演员总数')
plt.title('各电影参演演员数量统计')
plt.show()

内容的提问来源于stack exchange,提问作者nic.o

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:40:30