import csv import random import datetime fn = 'data.csv' with open(fn, 'w') as fp: # 创建 csv 文件写入对象 wr = csv.writer(fp) # 写入表头 wr.writerow(['日期', '营业额']) # 生成模拟数据 startDate = datetime.date(2022, 1, 1) # 生成 365 个模拟数据 for i in range(365): # 生成一个模拟数据,写入 csv 文件 amount = 500 + i*5 + random.randrange(100) wr.writerow([str(startDate), amount]) # 下一天 startDate = startDate + datetime.timedelta(days=1)(1)使用pandas读取文件data.csv中的数据,创建DataFrame对象,并删除其中所有缺失值。 (2)绘制折线图,显示该商场每天的营业额情况,并把图形保存为本地文件 Te.jpg; (3)绘制柱状图,显示每个月份的营业额,并把图形保存为本地文件 Ye.jpg; (4)按月份进行统计,找出相邻两个月最大涨幅,并把涨幅最大的月份写入文件maxMonth.txt; (5)按季度统计该商场 2022年的营业额数据,绘制饼状图显示2022年4个季度的营业额分布情况,并把图形保存为本地文件Je.jpg。
时间: 2024-03-17 20:46:05 浏览: 118
好的,我将为你逐个解答这些问题。
(1)使用pandas读取文件data.csv中的数据,创建DataFrame对象,并删除其中所有缺失值。
```python
import pandas as pd
df = pd.read_csv('data.csv')
df.dropna(inplace=True)
```
(2)绘制折线图,显示该商场每天的营业额情况,并把图形保存为本地文件Te.jpg。
```python
import matplotlib.pyplot as plt
plt.plot(df['日期'], df['营业额'])
plt.xlabel('日期')
plt.ylabel('营业额')
plt.title('每日营业额情况')
plt.savefig('Te.jpg')
plt.show()
```
(3)绘制柱状图,显示每个月份的营业额,并把图形保存为本地文件Ye.jpg。
```python
monthly_sales = df.groupby(df['日期'].str.slice(0, 7))['营业额'].sum()
plt.bar(monthly_sales.index, monthly_sales.values)
plt.xlabel('月份')
plt.ylabel('营业额')
plt.title('每月营业额情况')
plt.savefig('Ye.jpg')
plt.show()
```
(4)按月份进行统计,找出相邻两个月最大涨幅,并把涨幅最大的月份写入文件maxMonth.txt。
```python
monthly_sales = df.groupby(df['日期'].str.slice(0, 7))['营业额'].sum()
max_increase = 0
max_month = ''
for i in range(len(monthly_sales)-1):
increase = monthly_sales[i+1] - monthly_sales[i]
if increase > max_increase:
max_increase = increase
max_month = monthly_sales.index[i+1]
with open('maxMonth.txt', 'w') as f:
f.write(max_month)
```
(5)按季度统计该商场 2022年的营业额数据,绘制饼状图显示2022年4个季度的营业额分布情况,并把图形保存为本地文件Je.jpg。
```python
quarterly_sales = df.groupby(pd.PeriodIndex(df['日期'], freq='Q'))['营业额'].sum()
plt.pie(quarterly_sales.values, labels=['第一季度', '第二季度', '第三季度', '第四季度'])
plt.title('2022年季度营业额分布情况')
plt.savefig('Je.jpg')
plt.show()
```
希望这些代码对你有所帮助!如果你有任何问题,请随时问我。
阅读全文