数据分析与可视化

数据预处理​

数据预处理是数据分析的基础,直接影响后续分析结果的准确性。​

  • 去重操作:使用drop_duplicates(inplace = False)可以去除数据中的重复记录,再通过reset_index(inplace = True,drop = True)重置索引,保证数据的唯一性和整洁性。
  • 缺失值处理:通过data.loc[data['sale_count'].isnull()]可定位某列的缺失值记录,若要查看最后一行缺失值记录,可使用tail(1)方法,即data.loc[data['sale_count'].isnull()].tail(1)。

数据分组与筛选​

合理的分组与筛选能帮助聚焦关键数据。​

  • 按条件筛选:可根据不同条件筛选出所需数据子集,如按照平均单价区间筛选品牌,A=avg_price[(avg_price <= 100) & (avg_price > 0) ].index就筛选出了平均单价在 0-100 元区间的品牌索引。
  • 分组聚合:使用groupby进行分组后,结合聚合函数可实现数据汇总,例如sum_sale=data.groupby('店名')['销售额'].sum()计算了各品牌的总销售额。

数据可视化​

可视化能直观呈现数据特征和规律,常用的图表及相关操作如下:​

  • 饼图:适合展示各部分占总体的比例关系。在绘制不同价格区间品牌销售额占比饼图时,需将各区间数据连接起来,由于新版本 pandas 中Series.append()方法已移除,需用pd.concat()替代,如sum_sale_byprice = pd.concat([sum_sale[A].sort_values(), sum_sale[B].sort_values(), sum_sale[C].sort_values(), sum_sale[D].sort_values()])。同时,可通过设置labels、colors、autopct等参数美化图表。
  • 条形图:适用于比较不同类别数据的大小。绘制不同价格区间平均店铺销售额条形图时,使用plt.bar()函数,通过设置x轴标签、标题、颜色等参数,使图表更清晰易懂,如plt.bar('均价0-100元',np.mean(sum_sale[A]),color = 'grey')。
  • 子图绘制:使用plt.subplot()可在同一画布上绘制多个子图,便于对比分析,如plt.subplot(1,2,1)和plt.subplot(1,2,2)分别绘制左右两个子图。
  • 图表优化:可通过plt.figure(figsize = (16,8))设置画布大小,plt.tick_params(labelsize=10)调整刻度标签大小,plt.tight_layout()自动调整子图布局,plt.title()和plt.ylabel()添加标题和坐标轴标签等,提升图表的可读性。

常见问题及解决方法​

  • 方法过时问题:如遇到 "'Series' object has no attribute 'append'" 错误,是因为新版本 pandas 移除了append()方法,改用pd.concat()来连接多个 Series。
  • 区间定义优化:对于价格区间的定义,可使用pd.cut()函数使代码更简洁,如price_categories = pd.cut(avg_price, bins=[0, 100, 200, 300, float('inf')], labels=['0-100元', '100-200元', '200-300元', '300元以上'])。
  • 图表显示问题:当饼图中品牌数量较多时,可能出现标签重叠,可考虑只显示占比较大的品牌,将小品牌合并为 "其他" 类别。
相关推荐
A__tao2 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
研究点啥好呢2 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
迷藏4942 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
明日清晨3 小时前
python扫码登录dy
开发语言·python
2501_944934733 小时前
直播运营需要哪些数据分析能力?场观、停留、成交和投流怎么联动分析
数据挖掘·数据分析
bazhange3 小时前
python如何像matlab一样使用向量化替代for循环
开发语言·python·matlab
人工干智能3 小时前
科普:python中你写的模块找不到了——`ModuleNotFoundError`
服务器·python
unicrom_深圳市由你创科技4 小时前
做虚拟示波器这种实时波形显示的上位机,用什么语言?
c++·python·c#
小敬爱吃饭4 小时前
Ragflow Docker部署及问题解决方案(界面为Welcome to nginx,ragflow上传文件失败,Docker中的ragflow-cpu-1一直重启)
人工智能·python·nginx·docker·语言模型·容器·数据挖掘
宸津-代码粉碎机4 小时前
Spring Boot 4.0虚拟线程实战调优技巧,最大化发挥并发优势
java·人工智能·spring boot·后端·python