簡體   English   中英

根據數據框中 Opportunity 的遞增值,為從紅色到綠色的顏色代碼添加一個新列

[英]Add a new column for color code from red to green based on the increasing value of Opportunity in data frame

我有一個數據框,我想為顏色代碼生成一個新的列,它從紅色開始代表機會的最低價值,然后向綠色移動以獲得機會的最高價值

我的數據框 -

State       Brand       DYA  Opportunity    

Jharkhand   Ariel     0.15   0.00853    
Jharkhand   Fusion    0.02   0.00002
Jharkhand   Gillett   0.04   -0.0002

要獲得從紅色到綠色的顏色范圍,您可以使用 matplotlib color maps ,更具體地說,是RdYlGn 但在應用顏色映射之前,首先,您需要將Opportunity列中的數據標准化為 0 和 1 之間的值。然后,您可以從這里以您認為合適的任何方式將數據編碼為顏色代碼。 例如,我在這里使用 Pandas apply function 和rbg2hex ,目的是獲取表示Opportunity列中使用的顏色映射的 CSS 值。

import matplotlib.cm as cm
from matplotlib.colors import Normalize
from matplotlib.colors import rgb2hex

# df = Your original dataframe

cmapR = cm.get_cmap('RdYlGn')
norm = Normalize(vmin=df['Opportunity'].min(), vmax=df['Opportunity'].max())

df['Color'] = df['Opportunity'].apply(lambda r: rgb2hex(cmapR(norm(r))))

dstyle = df.style.background_gradient(cmap=cmapR, subset=['Opportunity'])
dstyle.to_html('sample.html')

df_color_coded

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM