一、设计要求
主要实现了对电子产品销售数据的读取、处理、分析和可视化。具体而言,代码从CSV文件中读取数据,并展示初始数据内容。随后,通过各种条件查询操作,筛选出符合特定条件的数据记录,如价格大于100元、品牌为Samsung等。代码还进行了数据的计算与处理,添加了价格含税列和年龄段列,修改了特定条件下的字段值,并删除了不必要的列。排序操作按价格和年龄对数据进行升序和降序排序。此外,代码还进行了分组统计分析,计算每个品牌的平均价格、各年龄段的订单数量以及各性别的总消费金额。最后,通过折线图、柱状图和饼状图等可视化手段,直观展示了前20条记录的价格变化、前30个品牌的价格占比以及按性别和年龄段分组的统计结果。这些操作共同实现了对销售数据的全面分析与可视化呈现,为进一步的市场分析和决策提供了数据支持。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “电子产品” 获取。👈👈👈
二、代码分析
导入库和配置
import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
实现思路:
- 导入必要的库:
pandas
用于数据处理,matplotlib.pyplot
用于数据可视化。 - 配置
matplotlib
以支持中文字符和负号的正常显示,确保在绘图时能够正确显示中文标签和负数。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “电子产品” 获取。👈👈👈
显示初始数据
print("初始数据内容:") print(data.head())
初始数据内容: Unnamed: 0 event_time order_id
… age sex local 0 0 2020-04-24 11:50:39 UTC
2294359932054536986 … 24.0 女 海南 1 1 2020-04-24
11:50:39 UTC 2294359932054536986 … 24.0 女 海南 2 2
2020-04-24 14:37:43 UTC 2294444024058086220 … 38.0 女 北京 3
3 2020-04-24 14:37:43 UTC 2294444024058086220 … 38.0 女 北京
4 4 2020-04-24 19:16:21 UTC 2294584263154074236 … 32.0
女 广东
实现思路:
- 打印初始数据的前五条记录,以了解数据的基本结构和内容。
简单条件查询
price_gt_100 = data[data['price'] > 100] print("价格大于100的记录:") print(price_gt_100)
价格大于100的记录:
Unnamed: 0 event_time … sex local 0 0 2020-04-24 11:50:39 UTC … 女 海南 1 1
2020-04-24 11:50:39 UTC … 女 海南 4 4
2020-04-24 19:16:21 UTC … 女 广东 6 6
2020-04-26 09:33:47 UTC … 男 北京 7 7
2020-04-26 09:33:47 UTC … 男 北京 … …
… … … … 564160 2633512 2020-11-21 10:06:01 UTC …
女 北京 564162 2633514 2020-11-21 10:08:54 UTC … 女 上海
564163 2633515 2020-11-21 10:08:54 UTC … 女 上海 564164
2633516 2020-11-21 10:10:01 UTC … 男 上海 564165 2633517
2020-11-21 10:10:13 UTC … 女 北京
实现思路:
- 使用布尔索引查询
price
大于100的记录。 - 打印查询结果。
计算列数据的添加
data['price_with_tax'] = data['price'] * 1.10 print("添加税后价格的记录:")
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “电子产品” 获取。👈👈👈
添加税后价格的记录:
Unnamed: 0 event_time … local price_with_tax
0 0 2020-04-24 11:50:39 UTC … 海南 178.211
1 1 2020-04-24 11:50:39 UTC … 海南 178.211
2 2 2020-04-24 14:37:43 UTC … 北京 85.272
3 3 2020-04-24 14:37:43 UTC … 北京 85.272
4 4 2020-04-24 19:16:21 UTC … 广东 239.327
实现思路:
- 计算每条记录的价格加上10%的税费,并将结果存储在一个新列
price_with_tax
中。 - 打印更新后的数据。
添加一行新数据
new_data = { 'event_time': '2020-04-25 10:00:00 UTC', 'order_id': 2.29460E+18, ... } data = data.append(new_data, ignore_index=True)
实现思路:
- 构造一条新数据,将其存储在一个字典中。
- 使用
append
方法将新数据添加到DataFrame中。
修改特定条件的数据
data.loc[data['category_code'].isnull(), 'category_code'] = 'unknown' print("修改category_code为空后的记录:")
实现思路:
- 找出所有
category_code
为空的记录,并将其category_code
修改为unknown
。 - 打印更新后的数据。
数据删除操作
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “电子产品” 获取。👈👈👈
data = data.drop(columns=['local']) print("删除'local'列后的记录:")
实现思路:
- 删除指定的列(如
local
),以简化数据结构。 - 打印更新后的数据。
数据排序处理
sorted_by_price = data.sort_values(by='price') print("按价格升序排序后的记录:")
实现思路:
- 按照
price
列的值对数据进行升序排序。 - 打印排序后的数据。
分组统计查询
mean_price_by_brand = data.groupby('brand')['price'].mean() print("按品牌分组的平均价格:")
实现思路:
- 按
brand
分组,计算每个品牌的平均价格。 - 打印分组后的统计结果。
数据可视化
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “电子产品” 获取。👈👈👈
plt.figure(figsize=(10, 6)) plt.plot(indices, prices, marker='o', linestyle='-', color='b')
折线图用于显示前20条记录的价格变化趋势。代码通过提取数据的前20条记录并获取其索引和价格,然后使用matplotlib的plot函数绘制折线图。在图表中,设置了图表的大小、标题、标签,并添加了网格线以便于观察数据点的变化。折线图清晰地展示了不同记录的价格走势,适合用来分析短期内价格的波动情况。
柱状图则用于展示前20条记录的价格分布情况。通过类似的方式提取前20条记录的价格数据,然后使用matplotlib的bar函数绘制柱状图。柱状图直观地显示了每条记录的价格差异,帮助识别高价和低价产品的数量及其价格区间。图表同样设置了标题和标签,便于理解图表的内容。柱状图可以很好地用于比较不同记录的价格,并在价格分析中提供清晰的视觉参考。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “电子产品” 获取。👈👈👈
最后,饼状图用于展示前30个品牌的总价格占比。代码首先计算每个品牌的总价格,并选取前30个品牌的数据。然后使用matplotlib的pie函数绘制饼状图。通过饼状图,可以直观地看到各品牌在总价格中的占比,帮助分析哪些品牌占据了主要的市场份额。饼状图设置了标签和百分比显示,增强了数据的可读性和直观性。整体而言,这些可视化图表通过不同的方式展示了销售数据的特征和统计结果,为数据分析提供了丰富的视觉支持,便于更深入地理解和挖掘数据中的信息。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “电子产品” 获取。👈👈👈
实现思路:
- 设置绘图的画布大小。
- 绘制折线图,显示前20条记录的价格变化情况。
总结
通过一系列步骤实现了电子产品销售数据的读取、处理和可视化分析。每个步骤都有明确的目的,从数据的读取和初步展示,到各种条件查询、数据处理,再到详细的分组统计和可视化,整个流程设计清晰、逻辑严谨,能够有效地对电子产品销售数据进行全面分析。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “电子产品” 获取。👈👈👈
————————————————
CSDN-米玛收割机专用版权
原文链接:https://blog.csdn.net/weixin_44244190/article/details/139584587