如何统计Python中售价分布占比数据
问题描述
假设我们有一个电商网站,其中有多种商品,每种商品都有不同的售价。现在我们想要统计不同价格区间的商品数量,并以饼状图的形式展示各价格区间商品的占比。
解决方案
数据准备
首先,我们需要准备一份包含商品售价数据的数据集。可以使用一个包含商品名称和售价的CSV文件作为数据源。以下是一个例子:
| 商品名称 | 售价 |
|---------|-----|
| 商品A | 100 |
| 商品B | 200 |
| 商品C | 150 |
| 商品D | 300 |
| ... | ... |
读取数据集
我们首先需要读取CSV文件中的数据,并将其转换为Python中的数据结构,例如列表或字典。可以使用pandas
库来读取CSV文件。以下是一个示例代码:
import pandas as pd
# 读取CSV文件
data = pd.read_csv('data.csv')
# 输出数据集的前5行
print(data.head())
统计售价区间
接下来,我们需要统计不同价格区间的商品数量。可以使用pandas
库来实现这个功能。以下是一个示例代码:
# 设定价格区间
price_ranges = [0, 100, 200, 300, float('inf')]
# 统计每个价格区间的商品数量
count = pd.cut(data['售价'], bins=price_ranges).value_counts()
# 输出结果
print(count)
绘制饼状图
最后,我们使用matplotlib
库来绘制饼状图,以展示各价格区间商品的占比。以下是一个示例代码:
import matplotlib.pyplot as plt
# 绘制饼状图
plt.pie(count, labels=count.index, autopct='%1.1f%%')
# 添加标题
plt.title('Price Distribution')
# 显示图形
plt.show()
完整代码示例
import pandas as pd
import matplotlib.pyplot as plt
# 读取CSV文件
data = pd.read_csv('data.csv')
# 设定价格区间
price_ranges = [0, 100, 200, 300, float('inf')]
# 统计每个价格区间的商品数量
count = pd.cut(data['售价'], bins=price_ranges).value_counts()
# 绘制饼状图
plt.pie(count, labels=count.index, autopct='%1.1f%%')
plt.title('Price Distribution')
plt.show()
结论
本文介绍了如何使用Python统计不同价格区间的商品数量,并使用饼状图展示各价格区间商品的占比。通过使用pandas
和matplotlib
库,我们可以方便地完成这个任务。这个方法可以帮助我们更好地了解商品售价的分布情况,从而做出更有针对性的决策。