自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

五種Pandas圖表美化樣式匯總

大數(shù)據(jù)
我們?cè)谧鰁xcel表格的時(shí)候,常常會(huì)對(duì)重要數(shù)據(jù)進(jìn)行highlight,或者用不同顏色表示數(shù)據(jù)的大小。這在Pandas中也是可以實(shí)現(xiàn)的,而且非常簡(jiǎn)潔。

[[405520]]

Pandas是一種高效的數(shù)據(jù)處理庫(kù),它以dataframe和series為基本數(shù)據(jù)類型,呈現(xiàn)出類似excel的二維數(shù)據(jù)。

在Jupyter中,會(huì)美化Pandas的輸出。不同于IDE展示的文本形式,Jupyter可以通過CSS修改表格的樣式。

我們?cè)谧鰁xcel表格的時(shí)候,常常會(huì)對(duì)重要數(shù)據(jù)進(jìn)行highlight,或者用不同顏色表示數(shù)據(jù)的大小。這在Pandas中也是可以實(shí)現(xiàn)的,而且非常簡(jiǎn)潔。 

 

 

 

 

 Pandas提供了 DataFrame.style 屬性,它會(huì)返回 Styler 對(duì)象,用以數(shù)據(jù)樣式的美化。

 

 

 

 

 一般的,我們需要將樣式函數(shù)作為參數(shù)傳遞到下面方法中,就可以實(shí)現(xiàn)圖表美化。

  • Styler.applymap: 作用于元素
  • Styler.apply:作用于行、列或整個(gè)表

下面通過一些例子,具體展示常用的美化形式。

一、高亮顯示

為便于展示,數(shù)據(jù)示例是用的 2021世界人口數(shù)量前十國(guó)家數(shù)據(jù) 。

  1. import pandas as pd 
  2. data = pd.read_excel(r"E:\\jupyter_notebook\\2021世界人口數(shù)據(jù).xlsx"
  3. data 

 

 

 

 

我們先看下該表的信息:

  1. data.info() 

 

 

 

 

 除了前兩列,其他列都為數(shù)字類型。

現(xiàn)在對(duì)指定列的最大值進(jìn)行高亮處理:

  1. def highlight_max(s): 
  2.     ''
  3.     對(duì)列最大值高亮(黃色)處理 
  4.     ''
  5.     is_max = s == s.max() 
  6.     return ['background-color: yellow' if v else '' for v in is_max] 
  7.  
  8. data.style.apply(highlight_max,subset=['2021人口''2020人口''面積','單位面積人口','人口增幅','世界占比']) 

 

 

 

 

 

 如果不想對(duì)元素背景高亮處理,也可以直接更改指定元素顏色,從而達(dá)到突出重點(diǎn)的目的。

標(biāo)記 單位面積人口列 大于200的元素:

  1. def color_red(s): 
  2.     is_max = s > 200 
  3.     return ['color : red' if v else '' for v in is_max] 
  4.  
  5. data.style.apply(color_red,subset=['單位面積人口']) 

 

 

 

 

 

 二、數(shù)據(jù)條顯示

Excel條件格式里,有一個(gè)數(shù)據(jù)條顯示方式,用以可視化表達(dá)數(shù)據(jù)大小。

Pandas Style方法中也有數(shù)據(jù)條的表達(dá)形式,用 df.style.bar 來實(shí)現(xiàn)。

還是用前面人口數(shù)據(jù)的例子,我們來看下如何操作數(shù)據(jù)條。

  1. import pandas as pd 
  2. data = pd.read_excel(r"E:\\jupyter_notebook\\2021世界人口數(shù)據(jù).xlsx"
  3. # 數(shù)據(jù)條顯示指定列數(shù)據(jù)大小 
  4. data.style.bar(subset=['2021人口''2020人口'], color='#FFA500'

 

 

 

 

 

 三、色階顯示

色階也就是熱力圖,它和數(shù)據(jù)條一樣,都用來表達(dá)數(shù)據(jù)大小。

Pandas Style中色階的使用也很簡(jiǎn)單,用 df.style.background_gradient 實(shí)現(xiàn)。

  1. import seaborn as sns 
  2.  
  3. # 使用seaborn獲取顏色 
  4. cm = sns.light_palette("green", as_cmap=True) 
  5. # 色階實(shí)現(xiàn) 
  6. data.style.background_gradient(cmap=cm,subset=['2021人口''2020人口''面積','單位面積人口','人口增幅','世界占比']) 

 

 

 

 

 

 可以通過選擇最大最小顏色比例,調(diào)節(jié)色階范圍。

調(diào)節(jié)前:

  1. import seaborn as sns 
  2.  
  3. # 色階實(shí)現(xiàn),這里使用內(nèi)置色階類型,不調(diào)節(jié)顏色范圍 
  4. data.style.background_gradient(cmap='viridis',high=0.2,low=0.1,subset=['2021人口''2020人口''面積','單位面積人口','人口增幅','世界占比']) 

 

 

 

 

 

 調(diào)節(jié)后:

  1. import seaborn as sns 
  2.  
  3. # 色階實(shí)現(xiàn),這里使用內(nèi)置色階類型,調(diào)節(jié)顏色范圍 
  4. data.style.background_gradient(cmap='viridis',high=0.5,low=0.3,subset=['2021人口''2020人口''面積','單位面積人口','人口增幅','世界占比']) 

 

 

 

 

 

 四、百分比顯示

有些數(shù)字需要百分比顯示才能準(zhǔn)確表達(dá),比如說人口數(shù)據(jù)里的人口增幅、世界占比。

Pandas可以數(shù)據(jù)框中顯示百分比,通過 Styler.format 來實(shí)現(xiàn)。

  1. data.style.format("{:.2%}",subset=['人口增幅','世界占比']) 

 

 

 

 

 

五、標(biāo)記缺失值

數(shù)據(jù)集中可能會(huì)存在缺失值,如果想突出顯示缺失值,該怎么操作?

這里有好幾種常用的方法,一是用 - 符號(hào)替代,二是高亮顯示

先創(chuàng)建一個(gè)帶缺失值的表,還是用人口數(shù)據(jù)。

  1. import pandas as pd 
  2. import numpy as np 
  3. data = pd.read_excel(r"E:\\jupyter_notebook\\2021世界人口數(shù)據(jù).xlsx"
  4. data.iloc[14] = np.nan 
  5. data.iloc[31] = np.nan 
  6. data.iloc[66] = np.nan 
  7. data 

 

 

 

 

 

 上面數(shù)據(jù)中有三個(gè)缺失值,我們用 - 符號(hào)替代缺失值:

  1. data.style.format(None, na_rep="-"

 

 

 

 

 

 再試試對(duì)缺失值高亮顯示:

  1. data.style.highlight_null(null_color='red'

 

 

 

 

 

 附:將樣式輸出到excel

Pandas中的數(shù)據(jù)美化樣式不僅可以展示在notebook中,還可以輸出到excel。

這里使用to_excel方法,并用openpyxl作為內(nèi)核

  1. import pandas as pd 
  2. import numpy as np 
  3. data = pd.read_excel(r"E:\\jupyter_notebook\\2021世界人口數(shù)據(jù).xlsx"
  4. data.style.background_gradient(cmap='viridis',subset=['2021人口''2020人口''面積','單位面積人口','人口增幅','世界占比']).\ 
  5.                               to_excel('style.xlsx', engine='openpyxl'

 

 

責(zé)任編輯:張燕妮 來源: 知乎
相關(guān)推薦

2023-02-23 18:22:42

Pandas數(shù)據(jù)函數(shù)

2022-04-24 10:33:56

大數(shù)據(jù)數(shù)據(jù)分析

2011-11-26 13:27:26

筆記本解決辦法

2025-04-24 10:20:00

2023-08-01 16:01:59

可視化Seaborn

2010-09-02 10:09:05

路由器設(shè)置

2023-07-18 15:58:29

NodeJS開發(fā)

2022-07-05 09:24:01

Pandas表格樣式Python

2013-11-28 09:23:33

監(jiān)控系統(tǒng)系統(tǒng)部署監(jiān)控

2024-05-22 16:03:49

2021-05-07 09:39:54

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

2020-07-06 14:00:01

Pandas連接參數(shù)

2020-08-10 06:16:26

seaborn數(shù)據(jù)分析圖表

2020-08-14 10:45:26

Pandas可視化數(shù)據(jù)預(yù)處理

2020-09-25 08:00:57

Kubernetes

2010-12-14 09:27:44

綠色網(wǎng)絡(luò)

2023-04-11 10:12:28

2024-09-03 13:59:37

2020-09-10 07:00:00

人工智能AI機(jī)器學(xué)習(xí)

2023-12-21 08:35:30

注冊(cè)中心EurakaEtcd
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)