import pandas as pd import matplotlib.pyplot as plt # 按品类ID列和产品列对数据进行分组,并计算销量总和 sales_by_category_product = df.groupby(['品类id', '产品id'])['数量'].sum() sales_by_category_product #绘图 import matplotlib.pyplot as plt for i in range(1,12): if i!=8: y2 = sales_by_category_product.loc[i] y2 = y2.sort_values(ascending=False) # 准备数据 ind=y2.index x = [f"{ind[0]}",f"{ind[1]}",f"{ind[2]}",f"{ind[3]}",f"{ind[4]}"] y = [y2.iloc[0],y2.iloc[1],y2.iloc[2],y2.iloc[3],y2.iloc[4]] # 创建画布和子图 fig, ax = plt.subplots() # 设置图表标题 plt.title(f'product ID {i}') # 绘制柱状图 ax.bar(x, y) # 显示图形 plt.show() else: y2 = sales_by_category_product.loc[i] y2 = y2.sort_values(ascending=False) # 准备数据 ind=y2.index x = [f"{ind[0]}",f"{ind[1]}"] y = [y2.iloc[0],y2.iloc[1]] # 创建画布和子图 fig, ax = plt.subplots() # 设置图表标题 plt.title(f'product ID {i}') # 绘制柱状图 ax.bar(x, y) # 显示图形 plt.show()
时间: 2024-02-29 22:55:59 浏览: 22
这是一段 Python 代码,使用了 pandas 和 matplotlib.pyplot 两个库。首先导入了这两个库,然后使用 df.groupby() 方法对数据进行分组,按照“品类id”和“产品id”两列进行分组,计算了“数量”列的总和,并将结果赋值给了 sales_by_category_product 变量。这个变量存储了每个品类和产品对应的销量总和。
接下来是绘图的部分。使用了 for 循环遍历了产品ID从1到11(不包括8),对于每个产品ID,首先从 sales_by_category_product 变量中取出对应的销量数据,并进行了排序。然后准备了 x 和 y 数据,用于绘制柱状图。接着创建了画布和子图,设置了图表标题,绘制了柱状图,并显示了图形。
注意,在产品ID等于8的时候,只取了销量前两名进行绘图。
相关问题
import pandas as pd import matplotlib.pyplot as plt # 按品类ID列和产品列对数据进行分组,并计算销量总和 sales_by_category_product = df.groupby(['品类id', '产品id'])['数量'].sum() sales_by_category_product
这是一段 Python 代码,使用了 pandas 和 matplotlib.pyplot 两个库。首先导入了这两个库,然后使用 df.groupby() 方法对数据进行分组,按照“品类id”和“产品id”两列进行分组,计算了“数量”列的总和,并将结果赋值给了 sales_by_category_product 变量。这个变量存储了每个品类和产品对应的销量总和。
import numpy as np import pandas as pd import matplotlib.pyplot as plt
这三个库都是Python中常用的数据分析和可视化库。其中,NumPy是Python中用于科学计算的基础库,提供了高性能的多维数组和矩阵计算功能。Pandas是基于NumPy的一个数据处理库,提供了高效的数据结构和数据分析工具。Matplotlib是Python中最流行的数据可视化库之一,提供了各种绘图工具和图表类型,可以用于生成各种静态和动态的图表。
以下是一个简单的例子,展示如何使用这三个库绘制一个柱状图:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 创建数据
bar_positions = [1, 2, 3, 4]
bar_heights = [1, 2, 3, 4]
# 绘制柱状图
fig, ax = plt.subplots()
ax.bar(np.arange(len(bar_positions)), bar_heights)
# 设置x轴标签
ax.set_xticks(np.arange(len(bar_positions)))
ax.set_xticklabels(bar_positions)
# 设置y轴标签
ax.set_ylabel('Bar Heights')
# 设置图表标题
ax.set_title('A Simple Bar Chart')
# 显示图表
plt.show()
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)