使用python完成以下题目 某淘宝网店共有 10 款商品(商品名称自定义),模拟生成该网店 2019 年的 营业额数据,并将数据保存到磁盘文件 data.csv。 使用 pandas 读取文件 data.csv 中的数据,使用 matplotlib 绘制出每一款 商品的销售额折线图。 按月份进行统计各商品的营业额,并绘制柱状图。 按季度统计各商品的营业额,并绘制饼状图。
时间: 2024-03-10 17:45:48 浏览: 257
好的,下面是一个简单的代码示例,可以实现以上三个要求:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 模拟生成数据
products = ['product1', 'product2', 'product3', 'product4', 'product5', 'product6', 'product7', 'product8', 'product9', 'product10']
months = pd.date_range(start='2019-01-01', end='2019-12-31', freq='D')
sales_data = pd.DataFrame(np.random.randint(100, 1000, size=(len(months), 2)), columns=['product', 'sales'])
sales_data['product'] = np.random.choice(products, size=len(months))
sales_data['month'] = sales_data.index.strftime('%Y-%m')
sales_data['quarter'] = pd.PeriodIndex(sales_data['month'], freq='M').strftime('Q%q')
# 保存数据到文件
sales_data.to_csv('data.csv', index=False)
# 读取数据并绘制折线图
sales_data = pd.read_csv('data.csv')
for product in products:
data = sales_data[sales_data['product'] == product].groupby('month')['sales'].sum()
plt.plot(data.index, data.values, label=product)
plt.title('Sales by Month')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.legend()
plt.show()
# 统计按月份销售额并绘制柱状图
sales_data_by_month = sales_data.groupby(['product', 'month'])['sales'].sum().reset_index()
for product in products:
data = sales_data_by_month[sales_data_by_month['product'] == product].set_index('month')['sales']
plt.bar(data.index, data.values)
plt.title(product)
plt.xlabel('Month')
plt.ylabel('Sales')
plt.show()
# 统计按季度销售额并绘制饼状图
sales_data_by_quarter = sales_data.groupby(['product', 'quarter'])['sales'].sum().reset_index()
for product in products:
data = sales_data_by_quarter[sales_data_by_quarter['product'] == product]
plt.pie(data['sales'], labels=data['quarter'], autopct='%1.1f%%')
plt.title(product)
plt.show()
```
这段代码中,我们首先使用numpy模拟生成了10个商品在2019年每天的营业额数据,并将数据保存到了data.csv文件中。接着使用pandas读取文件,绘制了每一款商品按月份的销售额折线图,以及按月份统计各商品的营业额并绘制柱状图,最后按季度统计各商品的营业额,并绘制饼状图。
阅读全文