【Python基础】pandas的骚操作:一行 pandas 代码搞定 Excel “条件格式”!
來源:Python數(shù)據(jù)科學(xué)
作者:東哥起飛
本篇是pandas100個騷操作系列的第 7?篇:一行 pandas 代碼搞定 Excel “條件格式”!
系列內(nèi)容,請看????「pandas100個騷操作」話題,訂閱后文章更新可第一時間推送。
條件格式
說實話,Excel的 “條件格式” 是東哥非常喜歡的功能之一,通過添加顏色條件可以讓表格數(shù)據(jù)更加清晰的凸顯出統(tǒng)計特性。
有的朋友在想,這樣的操作在python可能會很復(fù)雜。但其實一點不復(fù)雜,而且只需一行代碼即可。
為什么可以做到一行代碼實現(xiàn) “條件格式”?
一是使用了pandas的style方法,二是要得益于pandas的鏈?zhǔn)椒▌t。
下面我們來一起看個例子,體驗一下這個組合操作有多騷。
實例
首先,我們導(dǎo)入數(shù)據(jù)集,使用經(jīng)典的titanic中抽樣的部分?jǐn)?shù)據(jù)。
import?pandas?as?pd df?=?pd.read_csv("test.csv") df可以看到,現(xiàn)在這個dataframe是空白的,什么都沒有的,現(xiàn)在要給表格添加一些條件。
1、比如我們想讓Fare變量值呈現(xiàn)條形圖,以清楚看出各個值得大小比較,那么可直接使用bar代碼如下。
df.style.bar("Fare",vmin=0)2、再比如,我們想讓Age變量呈現(xiàn)背景顏色的梯度變化,以體驗映射的數(shù)值大小,那么可直接使用background_gradient,深顏色代表數(shù)值大,淺顏色代表數(shù)值小,代碼如下。
df.style.background_gradient("Greens",subset="Age")3、讓所有缺失值都高亮出來,可使用highlight_null,表格所有缺失值都會變成高亮。
以上就是pandas的style條件格式,用法非常簡單。下面我們用鏈?zhǔn)椒▌t將以上三個操作串起來,只需將每個方法加到前一個后面即可,代碼如下。
當(dāng)然,如果你希望加更多的條件格式效果,還可以繼續(xù)讓鏈?zhǔn)礁L,但不論條件怎么多,都只是一行代碼。
其它操作
上面僅僅是列舉了三個style中常用的操作,還有很多其他操作比如高亮最大值、給所有負(fù)值標(biāo)紅等等,通過參數(shù)subset還可以指定某一列或者某幾列的小范圍內(nèi)進(jìn)行條件格式操作。
#?負(fù)值標(biāo)為紅色 applymap(color_negative_red)#?高亮最大值 apply(highlight_max)#?使某一列編程±前綴,小數(shù)點保留兩位有效數(shù)字 format({"Coulumn":?lambda?x:?"±{:.2f}".format(abs(x))})#?使用subset進(jìn)行dataframe切片,選擇指定的列 applymap(color_negative_red,subset=pd.IndexSlice[2:5,?['B',?'D']])另外,還有很多的效果可以實現(xiàn),比如結(jié)合seaborn的各種風(fēng)格。
import?seaborn?as?sns cm?=?sns.light_palette("green",?as_cmap=True) df.style.background_gradient(cmap=cm)如果結(jié)合Ipython的HTML還可以實現(xiàn)炫酷的動態(tài)效果。
from?IPython.display?import?HTMLdef?hover(hover_color="#ffff99"):return?dict(selector="tr:hover",props=[("background-color",?"%s"?%?hover_color)])styles?=?[hover(),dict(selector="th",?props=[("font-size",?"150%"),("text-align",?"center")]),dict(selector="caption",?props=[("caption-side",?"bottom")]) ] html?=?(df.style.set_table_styles(styles).set_caption("Hover?to?highlight.")) html關(guān)于style條件格式的所有用法,可以參考pandas的官方文檔。
鏈接:https://pandas.pydata.org/pandas-docs/version/0.18/style.html
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯 本站知識星球“黃博的機器學(xué)習(xí)圈子”(92416895) 本站qq群704220115。 加入微信群請掃碼: 與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的【Python基础】pandas的骚操作:一行 pandas 代码搞定 Excel “条件格式”!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win11和Win10有什么区别 Win
- 下一篇: 【Python基础】Python正则表达