【Python】五种Pandas图表美化样式汇总
Pandas是一種高效的數據處理庫,它以dataframe和series為基本數據類型,呈現出類似excel的二維數據。
在Jupyter中,會美化Pandas的輸出。不同于IDE展示的文本形式,Jupyter可以通過CSS修改表格的樣式。
我們在做excel表格的時候,常常會對重要數據進行highlight,或者用不同顏色表示數據的大小。這在Pandas中也是可以實現的,而且非常簡潔。
Pandas提供了DataFrame.style屬性,它會返回Styler對象,用以數據樣式的美化。
一般的,我們需要將樣式函數作為參數傳遞到下面方法中,就可以實現圖表美化。
Styler.applymap: 作用于元素
Styler.apply:作用于行、列或整個表
下面通過一些例子,具體展示常用的美化形式。
一、高亮顯示
為便于展示,數據示例是用的2021世界人口數量前十國家數據。
import?pandas?as?pd data?=?pd.read_excel(r"E:\\jupyter_notebook\\2021世界人口數據.xlsx") data我們先看下該表的信息:
data.info()除了前兩列,其他列都為數字類型。
現在對指定列的最大值進行高亮處理:
def?highlight_max(s):'''對列最大值高亮(黃色)處理'''is_max?=?s?==?s.max()return?['background-color:?yellow'?if?v?else?''?for?v?in?is_max]data.style.apply(highlight_max,subset=['2021人口',?'2020人口',?'面積','單位面積人口','人口增幅','世界占比'])如果不想對元素背景高亮處理,也可以直接更改指定元素顏色,從而達到突出重點的目的。
標記單位面積人口列大于200的元素:
def?color_red(s):is_max?=?s?>?200return?['color?:?red'?if?v?else?''?for?v?in?is_max]data.style.apply(color_red,subset=['單位面積人口'])二、數據條顯示
Excel條件格式里,有一個數據條顯示方式,用以可視化表達數據大小。
Pandas Style方法中也有數據條的表達形式,用df.style.bar來實現。
還是用前面人口數據的例子,我們來看下如何操作數據條。
import?pandas?as?pd data?=?pd.read_excel(r"E:\\jupyter_notebook\\2021世界人口數據.xlsx") #?數據條顯示指定列數據大小 data.style.bar(subset=['2021人口',?'2020人口'],?color='#FFA500')三、色階顯示
色階也就是熱力圖,它和數據條一樣,都用來表達數據大小。
Pandas Style中色階的使用也很簡單,用df.style.background_gradient實現。
import?seaborn?as?sns#?使用seaborn獲取顏色 cm?=?sns.light_palette("green",?as_cmap=True) #?色階實現 data.style.background_gradient(cmap=cm,subset=['2021人口',?'2020人口',?'面積','單位面積人口','人口增幅','世界占比'])可以通過選擇最大最小顏色比例,調節色階范圍。
調節前:
import?seaborn?as?sns#?色階實現,這里使用內置色階類型,不調節顏色范圍 data.style.background_gradient(cmap='viridis',high=0.2,low=0.1,subset=['2021人口',?'2020人口',?'面積','單位面積人口','人口增幅','世界占比'])調節后:
import?seaborn?as?sns#?色階實現,這里使用內置色階類型,調節顏色范圍 data.style.background_gradient(cmap='viridis',high=0.5,low=0.3,subset=['2021人口',?'2020人口',?'面積','單位面積人口','人口增幅','世界占比'])四、百分比顯示
有些數字需要百分比顯示才能準確表達,比如說人口數據里的人口增幅、世界占比。
Pandas可以數據框中顯示百分比,通過Styler.format來實現。
data.style.format("{:.2%}",subset=['人口增幅','世界占比'])五、標記缺失值
數據集中可能會存在缺失值,如果想突出顯示缺失值,該怎么操作?
這里有好幾種常用的方法,一是用-符號替代,二是高亮顯示
先創建一個帶缺失值的表,還是用人口數據。
import?pandas?as?pd import?numpy?as?np data?=?pd.read_excel(r"E:\\jupyter_notebook\\2021世界人口數據.xlsx") data.iloc[1,?4]?=?np.nan data.iloc[3,?1]?=?np.nan data.iloc[6,?6]?=?np.nan data上面數據中有三個缺失值,我們用-符號替代缺失值:
data.style.format(None,?na_rep="-")再試試對缺失值高亮顯示:
data.style.highlight_null(null_color='red')附:將樣式輸出到excel
Pandas中的數據美化樣式不僅可以展示在notebook中,還可以輸出到excel。
這里使用to_excel方法,并用openpyxl作為內核
import?pandas?as?pd import?numpy?as?np data?=?pd.read_excel(r"E:\\jupyter_notebook\\2021世界人口數據.xlsx") data.style.background_gradient(cmap='viridis',subset=['2021人口',?'2020人口',?'面積','單位面積人口','人口增幅','世界占比']).\to_excel('style.xlsx',?engine='openpyxl') ?本文參考Pandas官方文檔Styling章節
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯溫州大學《機器學習課程》視頻 本站qq群851320808,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【Python】五种Pandas图表美化样式汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【深度学习】神经网络中几个常用的求导公式
- 下一篇: uc浏览器TV版最新版本功能简介