最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)在Excel中繪制可視化大屏的方法詳解

 更新時(shí)間:2023年01月29日 15:56:57   作者:俊欣  
今天小編來(lái)給大家分享如何在Excel文檔當(dāng)中來(lái)繪制可視化圖表,并且制作一個(gè)可視化大屏。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

大家新年好哇,今天小編來(lái)給大家分享如何在Excel文檔當(dāng)中來(lái)繪制可視化圖表,并且制作一個(gè)可視化大屏,非常的容易,這里我們會(huì)用到openpyxl模塊,那么首先第一步便是調(diào)用該模塊來(lái)讀取Excel文件,代碼如下

# 讀取Excel文檔并且指定工作表的名稱(chēng)
file_name = 'Bike_Sales_Playground.xlsx'
df = pd.read_excel(file_name,sheet_name='bike_buyers')

當(dāng)然為了保險(xiǎn)起見(jiàn),我們這里還是拷貝一份源數(shù)據(jù),并且新建一個(gè)新的工作表,代碼如下

# 新建一張工作表
with pd.ExcelWriter(file_name,#文檔的名稱(chēng)
                  engine='openpyxl',#調(diào)用模塊的名稱(chēng)
                  mode='a',#添加的模式
                 if_sheet_exists="replace" #如果已經(jīng)存在,就替換掉
                 ) as writer:
df.to_excel(writer, sheet_name='Working_Sheet',index = False)# 設(shè)置Index為False

# 從新的工作表當(dāng)中來(lái)讀取數(shù)據(jù)
df = pd.read_excel(file_name,sheet_name='Working_Sheet')

數(shù)據(jù)清洗

下一步我們進(jìn)行數(shù)據(jù)的清洗,例如去掉重復(fù)值、針對(duì)一些數(shù)值做一些替換,代碼如下

# 去掉重復(fù)值
df.drop_duplicates(keep='first', inplace=True, ignore_index=False)
    
# 針對(duì)婚姻狀況這一列,“已婚”替換成“M”,“單身”替換成“S”
df['Marital Status'] = df['Marital Status'].replace('M','Married').replace('S','Single')
    
# 針對(duì)性別這一列,“男性”替換成“F”,而“女性”替換成“M”
df['Gender'] = df['Gender'].replace('F','Female').replace('M','Male')

# 查看表格的前5行
df.head()

# 年齡數(shù)值的處理
df['Age brackets'] = df['Age'].apply(lambda x: 'Less than 30' if x<=30 else('Greater than 55' if x>55 else '31 to 55'))

# 通勤距離的數(shù)值的替換
df['Commute Distance'] = df['Commute Distance'].replace('10+ Miles','More than 10 Miles')

output

      ID Marital Status  Gender  ...  Age  Purchased Bike     Age brackets
0  12496        Married  Female  ...   42              No         31 to 55
1  24107        Married    Male  ...   43              No         31 to 55
2  14177        Married    Male  ...   60              No  Greater than 55
3  24381         Single    Male  ...   41             Yes         31 to 55
4  25597         Single    Male  ...   36             Yes         31 to 55

繪制圖表

接下來(lái)我們嘗試來(lái)繪制幾張可視化圖表,下面所示的代碼繪制的是柱狀圖,而繪制其余兩張折線圖的代碼與下面是雷同的

# 透視表1
# 制作數(shù)據(jù)透視表
avg_gender_income_df = np.round(pd.pivot_table(bike_df,
               values = 'Income',
               index = ['Gender'],
               columns = ['Purchased Bike'],
               aggfunc = np.mean
              ),2)

# 將數(shù)據(jù)透視表放入Excel表格中,并且指定工作表
with pd.ExcelWriter(file_name,#工作表的名稱(chēng)
                    engine='openpyxl',#引擎的名稱(chēng)
                    mode='a',#Append模式
                   if_sheet_exists="replace" #如果已經(jīng)存在,就替換掉
                   ) as writer:  
    
    avg_gender_income_df.to_excel(writer, sheet_name='Average_Gender_Income')

# 加載文檔,并且指定工作表
wb = load_workbook(file_name)
sheet = wb['Average_Gender_Income']

# 創(chuàng)建柱狀圖
chart1 = BarChart()
chart1.type = "col"
chart1.style = 10
chart1.title = "基于性別與消費(fèi)數(shù)據(jù)之下的平均收入"
chart1.y_axis.title = '性別'
chart1.x_axis.title = '收入'

# 將繪制出來(lái)的柱狀圖放在單元格中去
data1 = Reference(sheet, min_col=2, min_row=1, max_row=3, max_col=3)#Including Headers
cats1 = Reference(sheet, min_col=1, min_row=2, max_row=3)#Not including headers
chart1.add_data(data1, titles_from_data=True)
chart1.dataLabels = DataLabelList() 
chart1.dataLabels.showVal = True
chart1.set_categories(cats1)
chart1.shape = 4
sheet.add_chart(chart1, "A10")
wb.save(file_name)

output

生成可視化大屏

我們嘗試將繪制完成的圖表生成可視化大屏,代碼如下

# 創(chuàng)建一個(gè)空的DataFrame表格
title_df = pd.DataFrame()

# 將結(jié)果放入至Excel文件當(dāng)中去
with pd.ExcelWriter(file_name,#工作表的名稱(chēng)
                    engine='openpyxl',#引擎的名稱(chēng)
                    mode='a',#Append模式
                   if_sheet_exists="replace" #如果已經(jīng)存在,就替換掉
                   ) as writer:  
    
    title_df.to_excel(writer, sheet_name='Dashboard')

# 加載文檔,指定工作表是哪個(gè)
wb = load_workbook(file_name)
sheet = wb['Dashboard']
for x in range(1,22):
    sheet.merge_cells('A1:R4')
    
cell = sheet.cell(row=1, column=1)  
cell.value = 'Bike Sales Dashboard'  
cell.alignment = Alignment(horizontal='center', vertical='center')   
cell.font  = Font(b=True, color="F8F8F8",size = 46)
cell.fill = PatternFill("solid", fgColor="2591DB")

# 將繪制出來(lái)的圖表放置到Excel文檔中
sheet.add_chart(chart1,'A5')
sheet.add_chart(chart2,'J5')
chart3.width = 31
sheet.add_chart(chart3,'A20')
wb.save(file_name)

最后我們來(lái)看一下繪制出來(lái)的結(jié)果,如下所示

最后的最后,我們將上面所有的代碼封裝成一個(gè)函數(shù),方便我們來(lái)調(diào)用,代碼如下

import Bikes_Sales_Report_Automation as auto

# 填入文件的名稱(chēng)
auto.automate_excel_dashboard('Bike_Sales_Playground.xlsx')

到此這篇關(guān)于Python實(shí)現(xiàn)在Excel中繪制可視化大屏的方法詳解的文章就介紹到這了,更多相關(guān)Python Excel繪制可視化大屏內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Scrapy爬蟲(chóng)Response子類(lèi)在應(yīng)用中的問(wèn)題解析

    Scrapy爬蟲(chóng)Response子類(lèi)在應(yīng)用中的問(wèn)題解析

    這篇文章主要為大家介紹了Scrapy爬蟲(chóng)Response它的子類(lèi)(TextResponse、HtmlResponse、XmlResponse)在應(yīng)用問(wèn)題解析
    2023-05-05
  • python中threading和queue庫(kù)實(shí)現(xiàn)多線程編程

    python中threading和queue庫(kù)實(shí)現(xiàn)多線程編程

    這篇文章主要介紹了python中threading和queue庫(kù)實(shí)現(xiàn)多線程編程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • python光學(xué)仿真通過(guò)菲涅耳公式實(shí)現(xiàn)波動(dòng)模型

    python光學(xué)仿真通過(guò)菲涅耳公式實(shí)現(xiàn)波動(dòng)模型

    這篇文章主要介紹了python光學(xué)仿真通過(guò)菲涅耳公式實(shí)現(xiàn)波動(dòng)模型的示例解析原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • Python手動(dòng)或自動(dòng)協(xié)程操作方法解析

    Python手動(dòng)或自動(dòng)協(xié)程操作方法解析

    這篇文章主要介紹了Python手動(dòng)或自動(dòng)協(xié)程操作方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Django Admin中增加導(dǎo)出Excel功能過(guò)程解析

    Django Admin中增加導(dǎo)出Excel功能過(guò)程解析

    這篇文章主要介紹了Django Admin中增加導(dǎo)出Excel功能過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 詳解用python寫(xiě)一個(gè)抽獎(jiǎng)程序

    詳解用python寫(xiě)一個(gè)抽獎(jiǎng)程序

    這篇文章主要介紹了用python寫(xiě)一個(gè)抽獎(jiǎng)程序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python configparser模塊操作代碼實(shí)例

    Python configparser模塊操作代碼實(shí)例

    這篇文章主要介紹了Python configparser模塊操作代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python?pandas?DataFrame數(shù)據(jù)拼接方法

    Python?pandas?DataFrame數(shù)據(jù)拼接方法

    我們都知道在使用pandas處理數(shù)據(jù)的時(shí)候,往往會(huì)需要合并兩個(gè)或者多個(gè)DataFrame的操作,下面這篇文章主要給大家介紹了關(guān)于Python?pandas?DataFrame數(shù)據(jù)拼接方法的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Flask??response?對(duì)象詳情

    Flask??response?對(duì)象詳情

    在?Flask?中,響應(yīng)使用?Response?對(duì)象表示,響應(yīng)報(bào)文中的大部分內(nèi)容由服務(wù)器處理,一般情況下,我們只負(fù)責(zé)返回主體內(nèi)容即可。在之前的文章中,我們了解到?Flask?會(huì)先匹配請(qǐng)求?url?的路由,調(diào)用對(duì)應(yīng)的視圖函數(shù),視圖函數(shù)的返回值構(gòu)成了響應(yīng)報(bào)文的主體內(nèi)容。
    2021-11-11
  • Python實(shí)現(xiàn)日志實(shí)時(shí)監(jiān)測(cè)的示例詳解

    Python實(shí)現(xiàn)日志實(shí)時(shí)監(jiān)測(cè)的示例詳解

    觀察者模式:是一種行為型設(shè)計(jì)模式。主要關(guān)注的是對(duì)象的責(zé)任,允許你定義一種訂閱機(jī)制,可在對(duì)象事件發(fā)生時(shí)通知多個(gè)"觀察"該對(duì)象的其他對(duì)象。本文將利用觀察者模式實(shí)現(xiàn)日志實(shí)時(shí)監(jiān)測(cè),需要的可以參考一下
    2022-04-04

最新評(píng)論

泰来县| 佛教| 昌平区| 常宁市| 乐安县| 朝阳区| 桦南县| 航空| 民丰县| 青海省| 偏关县| 体育| 黔东| 崇信县| 黄大仙区| 威远县| 沾化县| 崇义县| 资阳市| 阜康市| 京山县| 承德市| 威海市| 奉节县| 贵阳市| 讷河市| 湘乡市| 扶绥县| 靖远县| 桃江县| 定州市| 依兰县| 新乡县| 湘阴县| 万载县| 阳西县| 新竹县| 封丘县| 乌兰浩特市| 罗田县| 彰武县|