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

Python新手求助:统计EV数据集品牌销量并绘制柱状图失败

问题:EV汽车品牌销量统计与柱状图绘制无结果解决方法

我是Python新手,已经读取EV汽车CSV数据集,完成了创建DataFrame、排序、去重、清理空值等基础操作。现在需要统计数据集中“Make”列各品牌的销量(数据集约10.5万行,包含10个品牌),并绘制柱状图对比各品牌销量。

当前使用以下代码没有得到预期结果:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use('seaborn')
brand_sales = EVs_by_Population.groupby('Make')
brand_sales.plot(kind='bar')
plt.show()

附上数据集及数据类型截图:
数据集及数据类型截图


问题原因

你当前的groupby('Make')仅完成了分组操作,没有对销量进行统计计算,直接调用plot无法生成有效的对比柱状图。

解决步骤

  1. 统计各品牌销量
    先对分组后的数据集进行计数(若以行数代表销量)或求和(若有单独销量列):

    • 按行数统计销量:
      # 统计每个品牌的记录数(即销量),并重置索引为常规DataFrame
      brand_sales = EVs_by_Population.groupby('Make').size().reset_index(name='Sales')
      
    • 若有单独销量列(如Sales列),则求和:
      brand_sales = EVs_by_Population.groupby('Make')['Sales'].sum().reset_index()
      
  2. 绘制柱状图
    基于统计后的结果绘制柱状图,以下两种方式任选:

    • 使用pandas自带绘图:
      brand_sales.plot(x='Make', y='Sales', kind='bar', figsize=(10,6))
      plt.title('各EV品牌销量对比')
      plt.xlabel('品牌')
      plt.ylabel('销量')
      plt.xticks(rotation=45)  # 旋转x轴标签避免重叠
      plt.show()
      
    • 使用seaborn绘制(样式更美观):
      plt.figure(figsize=(10,6))
      sns.barplot(data=brand_sales, x='Make', y='Sales')
      plt.title('各EV品牌销量对比')
      plt.xlabel('品牌')
      plt.ylabel('销量')
      plt.xticks(rotation=45)
      plt.show()
      

额外检查点

  • 确认EVs_by_Population数据集中确实存在Make列,且列名无拼写错误(Python对大小写敏感)。
  • 再次检查清理空值后的数据集,确保Make列无缺失值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:13:25