数据分析处理(四)

前十个吃饭最多的时间

jupyter导包

from matplotlib import pyplot as plt
import pandas as pd  #导入pandas用于表格操作

解决中文乱码问题

#sans-serif就是无衬线字体,是一种通用字体族。
#常见的无衬线字体有 Trebuchet MS, Tahoma, Verdana, Arial, Helvetica, 中文的幼圆、隶书等等。
import matplotlib as mpl
mpl.rcParams['font.sans-serif']=['SimHei'] #指定默认字体 SimHei为黑体
mpl.rcParams['axes.unicode_minus']=False #用来正常显示负号

读取表格合并sheet(当知道sheet名时)

table1=pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail1')
table2=pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail2')
table3=pd.read_excel('meal_order_detail.xlsx',sheet_name='meal_order_detail3')
foodData=pd.concat([table1,table2,table3],axis=0,sort=False) #合并表格,行合并

取值初始值

from pandas.plotting import register_matplotlib_converters #注册matplotlib转换器。去除警告
date=foodData['place_order_time'] #取出吃饭时间与对应数量
date

先拆原数据,取出时间和索引重新组合成新的DataFrame

date1=date.values #取出日期时间值
dt_time=pd.to_datetime(date1).time #转化datetime类型,然后取出时间进行操作
date2=date.index #取出索引
df_time=pd.DataFrame(dt_time,index=date2)  #把取出的索引和时间进行合并成DataFrame类型
df_time

第一种matplotlib绘图

df_time_counts=df_time[0].value_counts()  
df_time_counts
X4=df_time_counts.index[:10]
Y4=df_time_counts.values[:10]
plt.title('一天吃饭时间最多的点')
plt.xlabel('饭点频数')
plt.ylabel('饭点')
plt.xticks(np.arange(10),X4,rotation=60) #定义xticks
plt.bar(['a','b','c','d','e','f','g','h','i','j'],Y4)  #柱状图x,y归属
plt.show()    

在这里插入图片描述
第二种绘图方式直接用Panda里的绘图

df_time_counts=df_time[0].value_counts()[:10]
df_time_counts.plot(kind='bar',title='一天吃饭时间最多的点',rot=60,x='o') 

在这里插入图片描述

吃饭最多的日期 同理(上一题)

date3=date.values #取出日期时间值
dt_date=pd.to_datetime(date1).date #转化datetime类型,然后取出日期进行操作
date4=date.index #取出索引
df_date=pd.DataFrame(dt_date,index=date4)  #把取出的索引和时间进行合并成DataFrame类型
df_date_counts=df_date[0].value_counts()  
X5=df_date_counts.index[:10]
Y5=df_date_counts.values[:10]
plt.title('吃饭最多的日期')
plt.xlabel('日期')
plt.ylabel('次数')
plt.xticks(np.arange(10),X5,rotation=60) #定义xticks
plt.bar(['a','b','c','d','e','f','g','h','i','j'],Y5)  #柱状图x,y归属
plt.show()

在这里插入图片描述

吃饭最多的周天(同理上俩题)

date5=date.values #取出日期时间值
dt_weekday=pd.to_datetime(date1).weekday_name #转化datetime类型,然后取出星期X天进行操作
date6=date.index #取出索引
dt_weekday=pd.DataFrame(dt_weekday,index=date6)  #把取出的索引和时间进行合并成DataFrame类型
df_week_counts=dt_weekday[0].value_counts()  
X6=df_week_counts.index[:7]
Y6=df_week_counts.values[:7]
plt.title('吃饭最多的周xDay')
plt.xlabel('周天')
plt.ylabel('次数')
plt.xticks(np.arange(10),X6,rotation=60) #定义xticks
plt.bar(['a','b','c','d','e','f','g'],Y6)  #柱状图x,y归属
plt.show()    

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值