亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 python 中熱圖選定列的最簡單方法?

在 python 中熱圖選定列的最簡單方法?

拉莫斯之舞 2023-09-26 14:49:52
df = pd.DataFrame({"name": ['a','b','c','d','e'],              "year": ['2012','2013','2010','2008','2011'],              "value": ['10','22','7','8','32']})僅將熱圖應用于值列的簡單方法是什么?我想避免年份被熱圖化。df2 = pd.DataFrame({"name": ['a','b','c','d','e'],                  "year": ['2012','2013','2010','2008','2011'],                  "value": ['254','220','275','283','323'],                    "age": ['42','32','27','28','32']})同樣的問題,但對于值和年齡分別 - 即我希望每一列單獨進行熱映射并縮放到該列(因此年齡不會顯示為全部一個極端而值顯示另一個極端)。我有很多復雜的代碼片段來實現這一點,但很多時候我只是將粘貼復制到 Excel 中,因為它速度更快......在 python 中是否有快速、干凈的方法來實現這種基本的選擇性熱圖?
查看完整描述

1 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

如果您在筆記本或可以渲染 HTML 的地方工作,則可以使用styledataframe 的訪問器和 w/ background_gradient。Seaborn 可以非常輕松地為此目的生成色彩圖。


您可以使用參數指定要應用顏色圖的列subset。


import pandas as pd

import seaborn as sns


df2 = pd.DataFrame({"name": ['a','b','c','d','e'],

                  "year": ['2012','2013','2010','2008','2011'],

                  "value": ['254','220','275','283','323'],

                    "age": ['42','32','27','28','32']})


df2["value"] = pd.to_numeric(df2["value"])

df2["age"] = pd.to_numeric(df2["age"])


cm = sns.light_palette("green", as_cmap=True)

df2.style.background_gradient(cmap=cm, subset=["value", "age"])

https://img1.sycdn.imooc.com//65127f4a00015cbd02430198.jpg

如果您想要不同的顏色或指定單獨的vmin/vmax到列,您只需調用background_gradient多次即可。


green_cm = sns.light_palette("green", as_cmap=True)

blue_cm = sns.light_palette("blue", as_cmap=True)


(df2.style

 .background_gradient(cmap=blue_cm, subset="value", vmin=200, vmax=400)

 .background_gradient(cmap=green_cm, subset="age", vmin=0, vmax=50))

https://img1.sycdn.imooc.com//65127f56000100a902380194.jpg

查看完整回答
反對 回復 2023-09-26
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號