<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【Python基礎(chǔ)】pandas的騷操作:一行 pandas 代碼搞定 Excel “條件格式”!

          共 2249字,需瀏覽 5分鐘

           ·

          2021-01-28 11:46

          來(lái)源:Python數(shù)據(jù)科學(xué)
          作者:東哥起飛

          篇是pandas100個(gè)騷操作系列的第 7?篇:一行 pandas 代碼搞定 Excel “條件格式”!

          系列內(nèi)容,請(qǐng)看??「pandas100個(gè)騷操作」話題,訂閱后文章更新可第一時(shí)間推送。

          條件格式
          說(shuō)實(shí)話,Excel的 “條件格式” 是東哥非常喜歡的功能之一,通過(guò)添加顏色條件可以讓表格數(shù)據(jù)更加清晰的凸顯出統(tǒng)計(jì)特性。
          有的朋友在想,這樣的操作在python可能會(huì)很復(fù)雜。但其實(shí)一點(diǎn)不復(fù)雜,而且只需一行代碼即可。
          為什么可以做到一行代碼實(shí)現(xiàn) “條件格式”?
          一是使用了pandas的style方法,二是要得益于pandas的鏈?zhǔn)椒▌t
          下面我們來(lái)一起看個(gè)例子,體驗(yàn)一下這個(gè)組合操作有多騷。
          實(shí)例
          首先,我們導(dǎo)入數(shù)據(jù)集,使用經(jīng)典的titanic中抽樣的部分?jǐn)?shù)據(jù)。
          import?pandas?as?pd
          df?=?pd.read_csv("test.csv")
          df
          可以看到,現(xiàn)在這個(gè)dataframe是空白的,什么都沒有的,現(xiàn)在要給表格添加一些條件。
          1、比如我們想讓Fare變量值呈現(xiàn)條形圖,以清楚看出各個(gè)值得大小比較,那么可直接使用bar代碼如下。
          df.style.bar("Fare",vmin=0)
          2、再比如,我們想讓Age變量呈現(xiàn)背景顏色的梯度變化,以體驗(yàn)映射的數(shù)值大小,那么可直接使用background_gradient,深顏色代表數(shù)值大,淺顏色代表數(shù)值小,代碼如下。
          df.style.background_gradient("Greens",subset="Age")
          3、讓所有缺失值都高亮出來(lái),可使用highlight_null,表格所有缺失值都會(huì)變成高亮。
          df.style.highlight_null()
          以上就是pandasstyle條件格式,用法非常簡(jiǎn)單。下面我們用鏈?zhǔn)椒▌t將以上三個(gè)操作串起來(lái),只需將每個(gè)方法加到前一個(gè)后面即可,代碼如下。
          df.style.bar("Fare",vmin=0).background_gradient("Greens",subset="Age").highlight_null()
          當(dāng)然,如果你希望加更多的條件格式效果,還可以繼續(xù)讓鏈?zhǔn)礁L(zhǎng),但不論條件怎么多,都只是一行代碼。
          其它操作
          上面僅僅是列舉了三個(gè)style中常用的操作,還有很多其他操作比如高亮最大值、給所有負(fù)值標(biāo)紅等等,通過(guò)參數(shù)subset還可以指定某一列或者某幾列的小范圍內(nèi)進(jìn)行條件格式操作。
          #?負(fù)值標(biāo)為紅色
          applymap(color_negative_red)

          #?高亮最大值
          apply(highlight_max)

          #?使某一列編程±前綴,小數(shù)點(diǎn)保留兩位有效數(shù)字
          format({"Coulumn":?lambda?x:?"±{:.2f}".format(abs(x))})

          #?使用subset進(jìn)行dataframe切片,選擇指定的列
          applymap(color_negative_red,
          ??????????????????subset=pd.IndexSlice[2:5,?['B',?'D']])
          另外,還有很多的效果可以實(shí)現(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é)合IpythonHTML還可以實(shí)現(xiàn)炫酷的動(dòng)態(tài)效果。
          from?IPython.display?import?HTML

          def?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

          往期精彩回顧





          本站知識(shí)星球“黃博的機(jī)器學(xué)習(xí)圈子”(92416895)

          本站qq群704220115。

          加入微信群請(qǐng)掃碼:

          瀏覽 77
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  AV资源网在线观看 | 成人H精品动漫在线无码播放 | WWW.精品天堂网一区二区三区 | 天天射天天日天天干天天操 | 永久免费不卡在线观看黄网站 |