import numpy as np
import pandas as pd #匯入pandas用於**操作
import xlrd #匯入xlrd用於獲取乙個**裡多個sheet
from matplotlib import pyplot as plt#匯入pyplot用於繪圖
from datetime import datetime as dt
# 解決中文亂碼問題
#sans-serif就是無襯線字型,是一種通用字型族。
#常見的無襯線字型有 trebuchet ms, tahoma, verdana, arial, helvetica, 中文的幼圓、隸書等等。
#diimport matplotlib as mpl
mpl.rcparams['font.sans-serif']=['simhei'] #指定預設字型 simhei為黑體
mpl.rcparams['axes.unicode_minus']=false #用來正常顯示負號
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)
#把x資料轉成datatime型別,然後取出天,並給原始資料進行修改。
datagroup=fooddata[['place_order_time','dishes_name']] #重fooddata中取出多個字段資料,為分組做好準備
data_sort=datagroup.groupby(by='place_order_time')['dishes_name'].nunique()
#by後跟的是以作為同類,並以它作為基類分組,分完組後取出dishes_name的資料進行去重取值個數。
#pandas nunique() 用於獲取唯一值的統計次數,相當於去重
day_index=data_sort.index #取出時間day
name_value=data_sort.values #取出對應的菜品數量
c_count=pd.dataframe(name_value,index=day_index) #重新組成新的dataframe型別,準備對它進行排序操作
c_count.sort_values(0,ascending=false,inplace=true) #以標籤索引取出值,然後進行降序,並儲存對原資料進行修改。
c_count[:10].plot.bar() #取出前十進行繪圖。
總結:注意此題要求是每日菜品總數量,所以我們要做好資料處理,一定要考慮每日,那麼得想分組,菜品那就得考慮去重,那麼誰在前誰在後,也有非常必要的關係。這裡我們做的是先分組,後取去重數量。因為確定好組,才可以對組的資料進行修改,如果先去重菜品,再分組,就會有大量資料流失,因為,每個組與組內不可以重複菜品,但是每個組與組之間是可以重複菜品的,因為我們是以天為基準,所以要先以天分組,然後去重。不能按月先去重再分組。這點是我們處理資料要注意的。
分析:
1.x軸表示乙個月中對應的某一天,y軸表示的是當天對應賣出的菜品的數量。
2.整體分布圖來看。售出排名靠前的菜品數量基於140左右。
3.區域性分布圖來看,最高的是28號售出的140多點。
4由此結果。我們可以對應每日準備的菜品數量不要超過140太多。可以適當做好封頂數量,適當控制準備菜品的數量。
資料分析處理(五)
id點菜次數最多 import numpy as np import pandas as pd 匯入pandas用於 操作 import xlrd 匯入xlrd用於獲取乙個 裡多個sheet from matplotlib import pyplot as plt 匯入pyplot用於繪圖 from...
大資料分析及處理
從所周知,大資料已經不簡簡單單是資料大的事實了,而最重要的現實是對大資料進行分析,只有通過分析才能獲取很多智慧型的,深入的,有價值的資訊。那麼越來越多的應用涉及到大資料,而這些大資料的屬性,包括數量,速度,多樣性等等都是呈現了大資料不斷增長的複雜性,所以大資料的分析方法在大資料領域就顯得尤為重要,可...
python excel資料分析處理(1)
第一步獲取資料 第二步清洗資料 第三步分析彙總資料 第四步格式化輸出excel def excel all ex1,ex2 合併兩表,並返回合併後的資料 df1 dataframe pd.read excel ex1 讀取表1 df2 dataframe pd.read excel ex2 讀取表2...