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 20:55:47 浏览: 114
这是一段 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
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
这段代码是用于引入numpy、pandas和matplotlib.pyplot库。numpy是一个用于数值计算的库,pandas是一个用于数据分析的库,matplotlib.pyplot是一个用于绘制图表的库。
阅读全文