1、加载(导入)数据
import numpy as np
import pandas as pd
import matplotlib as plt
# 1、加载数据
data1 = pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail1')
data2 = pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail2')
data3 = pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail3')
2、数据预处理(合并行、列,删除NA的数据)
# 2、数据预处理(合并数据,NA等处理),分析数据
data = pd.concat([data1,data2,data3],axis=0) #axis=0:表示按照“行”来进行拼接数据
#axis=1:表示按照“列”来进行拼接数据
data.dropna(axis=1,inplace=True) #dropna表示删除na所在的列(axis=1)
#inplace=true不创建新的对象,直接对原始对象进行修改;
print(data.info())
data.info()的运行结果为·:
3、数据分析
(1)统计卖出菜品的平均价格有两种方式
1)使用pandas中自带的平均值函数mean()
print(round(data['amounts'].mean(),2))#round()函数作用是四舍五入,2表示保留两位小数
2)使用numpy中的mean()函数(建议使用numpy中的平均值函数,底层使用c++写的,计算效率更高)
print(round(np.mean(data['amounts']),2))
(2)什么菜最受欢迎(频数统计)
print(data['dishes_name'].value_counts()[:10])#自动降序排列,并取出前十名。
输出结果:
4、数据可视化(绘制图表)
data['dishes_name'].value_counts()[:10].plot(kind='bar',fontsize=16)#设置柱状图 字体大小为16
plt.rcParams['font.sans-serif'] = 'SimHei' #设置中文显示
data['dishes_name'].value_counts()[:10].plot(kind='line',color='red')#设置折线图 折线颜色为红色
for x,y in enumerate(data['dishes_name'].value_counts()[:10]):
plt.text(x,y+2,y,ha='center',fontsize=12) #设置柱状图上的文本,居中且大小为12号字体
plt.show() #绘制图表
绘制结果: