
Pandas是一款很強(qiáng)大的Python庫,具有很多方便的功能,今天小編就給大家分享用Pandas修改樣式。
以下內(nèi)容轉(zhuǎn)載于早起Python微信公眾號(hào)。
作者:劉早起
文章來源:早起Python
前言
在之前的很多文章中我們都說過,Pandas與openpyxl有一個(gè)很大的區(qū)別就是openpyxl可以進(jìn)行豐富的樣式調(diào)整,但其實(shí)在Pandas中每一個(gè)DataFrame都有一個(gè)Style屬性,我們可以通過修改該屬性來給數(shù)據(jù)添加一些基本的樣式。
使用說明
我們可以編寫樣式函數(shù),并使用CSS來控制不同的樣式效果,通過修改Styler對(duì)象的屬性,將樣式傳遞給DataFrame,主要有兩種傳遞方式
Styler.applymap:逐元素
Styler.apply:列/行/表方式
Styler.applymap通過DataFrame逐個(gè)元素地工作。Styler.apply根據(jù)axis參數(shù),按列使用axis=0.按行使用axis=1.以及axis=None作用于整個(gè)表。所以若使用Styler.applymap,我們的函數(shù)應(yīng)返回帶有CSS屬性-值對(duì)的單個(gè)字符串。若使用Styler.apply,我們的函數(shù)應(yīng)返回具有相同形狀的Series或DataFrame,其中每個(gè)值都是具有CSS屬性值對(duì)的字符串。
不會(huì)CSS?沒關(guān)系,作為調(diào)包俠的我們大多是改改HTML顏色代碼即可完成樣式修改,下面看一些示例。
一些例子
基本樣式
首先我們創(chuàng)建一組沒有任何樣式的數(shù)據(jù)
我們之前說過,DataFrame是有style屬性的,所以在沒有做任何修改的情況下,使用df.style應(yīng)該和上圖一樣
現(xiàn)在讓我們編寫一個(gè)簡(jiǎn)單的樣式函數(shù),該函數(shù)可以將負(fù)數(shù)變?yōu)榧t色,使正數(shù)保持黑色。
def color_negative_red(val):
color = 'red' if val < 0 else 'black'
return 'color: %s' % color
現(xiàn)在來應(yīng)用這段函數(shù)(思考Excel如何實(shí)現(xiàn))
現(xiàn)在如果我們想突出顯示每列中的最大值,需要重新定義一個(gè)函數(shù)
def highlight_max(s):
is_max = s == s.max()
return ['background-color: yellow' if v else '' for v in is_max]
因?yàn)橹拔覀兪且栽貫閱挝慌袛啵允褂玫氖?applymap,所以現(xiàn)在我們應(yīng)對(duì)列進(jìn)行.apply操作
現(xiàn)在可以使用
df.style.applymap(color_negative_red).apply(highlight_max)
來混合修改樣式或使用.\實(shí)現(xiàn)
當(dāng)然我們也可以通過修改樣式函數(shù)并使用.apply來高亮整個(gè)DataFrame的最大值,
切片
當(dāng)然我們也可以使用subset通過切片來完成對(duì)指定列進(jìn)行樣式修改,比如高亮部分列的最大值
df.style.apply(highlight_max, subset=['B', 'C', 'D'])
對(duì)于行和列切片,可以使用我們熟悉的.loc,不過目前僅支持基于標(biāo)簽的切片,不支持位置切片。
格式化輸出
我們也可以使用Styler.format來快速格式化輸出,比如將小數(shù)格式化為百分?jǐn)?shù)
也支持使用字典或lambda表達(dá)式來更靈活的使用
當(dāng)然是支持和之前的樣式結(jié)合使用
內(nèi)置樣式
開發(fā)者們?yōu)榱吮M可能的讓作為調(diào)包俠的我們使用起來更方便,已經(jīng)內(nèi)置了很多寫好的樣式,拿走就用,比如將空值設(shè)置為紅色
或是結(jié)合seaborn使用熱力圖
現(xiàn)在我們就可以通過修改Styler.background_gradient來輕松的修改顏色等樣式
最后我們可以將數(shù)據(jù)修改為條形圖的樣式,這也是我最喜歡的一個(gè)功能,能夠快速的看出數(shù)據(jù)的變化!
在最新的版本中可以進(jìn)一步自定義條形圖:我們現(xiàn)在可以將df.style.bar以零或中點(diǎn)值為中心來快速觀察數(shù)據(jù)變化,并可以傳遞顏色[color_negative, color_positive],比如使用align='mid':
以上就是對(duì)Pandas中如何修改樣式的一個(gè)簡(jiǎn)單介紹,更多的操作可以在官方文檔https://pandas.pydata.org/pandas-docs/stable/user_guide/style.html中找到與學(xué)習(xí)。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03