设某饭店的营业额数据保存于文件 data.csv,写出完成下述要求的程序代码。 (1)使用 Pandas 读取文件 data.csv 中的数据,创建 DataFrame 对象,并删除其中所有缺失值; (2)使用 matplotlib 生成折线图,反应该饭店每天的营业额情况,并把图形保存为本地文件 first.jpg; (3)按月份进行统计,使用 matplotlib 绘制柱状图显示每个月份的营业额,并把图形保存为本 地文件 second.jpg; (4)按季度统计该饭店 2017 年的营业额数据,使用 matplotlib 生成饼状图显示 2017 年 4 个 季度的营业额分布情况,并把图形保存为本地文件 third.jpg。
时间: 2024-02-22 19:57:42 浏览: 85
下面是完成上述要求的Python程序代码:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据文件并删除缺失值
df = pd.read_csv('data.csv')
df.dropna(inplace=True)
# 折线图:每天的营业额情况
plt.figure()
plt.plot(df['date'], df['revenue'])
plt.xlabel('Date')
plt.ylabel('Revenue')
plt.title('Daily Revenue')
plt.savefig('first.jpg')
# 柱状图:按月份统计营业额
df['month'] = pd.to_datetime(df['date']).dt.strftime('%Y-%m')
monthly_revenue = df.groupby('month')['revenue'].sum()
plt.figure()
plt.bar(monthly_revenue.index, monthly_revenue.values)
plt.xlabel('Month')
plt.ylabel('Revenue')
plt.title('Monthly Revenue')
plt.savefig('second.jpg')
# 饼状图:按季度统计2017年营业额
df['quarter'] = pd.to_datetime(df['date']).dt.quarter
q1_revenue = df[df['quarter'] == 1]['revenue'].sum()
q2_revenue = df[df['quarter'] == 2]['revenue'].sum()
q3_revenue = df[df['quarter'] == 3]['revenue'].sum()
q4_revenue = df[df['quarter'] == 4]['revenue'].sum()
revenues = [q1_revenue, q2_revenue, q3_revenue, q4_revenue]
labels = ['Q1', 'Q2', 'Q3', 'Q4']
plt.figure()
plt.pie(revenues, labels=labels, autopct='%1.1f%%')
plt.title('2017 Quarterly Revenue')
plt.savefig('third.jpg')
```
上述代码中,首先使用Pandas的read_csv()函数读取文件data.csv,并使用dropna()函数删除其中的缺失值;然后使用matplotlib绘制折线图、柱状图和饼状图,并使用savefig()函数将图形保存为本地文件。其中,折线图和柱状图根据日期进行统计,需要将日期时间戳转换为月份或季度;饼状图则直接根据季度进行统计。
阅读全文