""" ====================================================== =================案例:市場大盤容量分析================== ====================================================== """ import pandas as pd # 檔路徑為python檔位置下的相對路徑 dwx=pd.read_excel("電商案例資料及資料說明/驅蟲劑市場/電蚊香套裝市場近三年交易額.xlsx") fmfz=pd.read_excel("電商案例資料及資料說明/驅蟲劑市場/防黴防蛀片市場近三年交易額.xlsx") msmc=pd.read_excel("電商案例資料及資料說明/驅蟲劑市場/滅鼠殺蟲劑市場近三年交易額.xlsx") mz=pd.read_excel("電商案例資料及資料說明/驅蟲劑市場/盤香滅蟑香蚊香盤市場近三年交易額.xlsx") wxq=pd.read_excel("電商案例資料及資料說明/驅蟲劑市場/蚊香加熱器市場近三年交易額.xlsx") wxp=pd.read_excel("電商案例資料及資料說明/驅蟲劑市場/蚊香片市場近三年交易額.xlsx") wxy=pd.read_excel("電商案例資料及資料說明/驅蟲劑市場/蚊香液市場近三年交易額.xlsx") # 使用head()方法查看前5行資料 print(dwx.head()) # 使用tail()方法查看後5行資料 print(dwx.tail()) # 使用info()方法查看資料的欄位及類型 dwx.info() # 用sum方法匯總資料 dwx['交易金額'].sum() #匯總單張表格資料 # 將7張表格的資料匯總並形成一張表 m_sum=pd.DataFrame(data=[dwx.sum().values,fmfz.sum().values,msmc.sum().values ,mz.sum().values,wxq.sum().values,wxp.sum().values,wxy.sum().values] ,columns=['銷售額'] ,index=['電蚊香','防黴防蛀','滅鼠滅蟲','滅蟑','蚊香加熱器','蚊香片','蚊香液']) print(m_sum) # 對上述資料進行行匯總,得到驅蟲市場總規模 m_sum.loc['Row_sum'] = m_sum.apply(lambda x: x.sum()) # 或者m_sum ['Col_sum'] = m_sum.sum() print(m_sum) # 在上一節的基礎上計算相對規模 m_sum['份額占比']=m_sum/m_sum.loc['Row_sum'] print(m_sum) # 將份額占比調整為百分比,保留1位小數 # 使用函數round: round(number, ndigits=None),第一個參數為數字,第二個參數為保留幾位小數。 m_sum['份額占比']=round(m_sum/m_sum.loc['Row_sum']*100,1) # 並將最後一行Row_sum刪除 m_sum.drop(labels=['Row_sum'],axis=0,inplace=True) # 首先導入matplotlib繪圖包 import matplotlib.pyplot as plt # 設置參數,以確保圖像正確顯示 plt.rcParams['font.sans-serif']='simhei' #用來正常顯示中文標籤 plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號 # 將葉子行業的名稱設置為x軸,葉子行業的絕對份額設置為y軸 x=m_sum.index.values.tolist() y=m_sum["銷售額"].values.tolist() # 設置畫布大小 pl=plt.figure(figsize=(8,6))# 表示圖片的大小為寬8inch、高6inch(單位為inch) # 繪製葉子市場絕對份額直條圖 plt.bar(x,y) # 設置標題以及x軸標題,y軸標題 plt.xlabel('葉子市場') plt.ylabel('市場絕對份額') # 設置數字標籤 for a,b in zip(x,y): plt.text(a,b+0.05,'%.0f'% b,ha='center',va='bottom',fontsize=8) plt.show() # 用市場相對份額繪製圓形圖 # 將葉子行業名稱設置為圓形圖的標籤,相對市場份額設置為圓形圖的大小 labels = m_sum.index.values.tolist() sizes = m_sum["份額占比"].values.tolist() # 設置畫布大小寬8inch,高6inch pl=plt.figure(figsize=(8,6)) # 繪製圓形圖,autopct='%.1f%%':# 設置百分比的格式,此處保留1位小數,f後面的兩個%表示實際顯示數位的百分號,startangle=180# 設置圓形圖的初始角度。 plt.pie(sizes,labels=labels,autopct='%.1f%%',shadow=False,startangle=180) # 設置標題 plt.title("葉子市場相對市場份額") # 設置圓形圖使得圓形圖為圓形,如圖4-2所示 plt.axis('equal') plt.show()