Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据列名和单元格值设置样式?_Python_Pandas - Fatal编程技术网

Python 如何根据列名和单元格值设置样式?

Python 如何根据列名和单元格值设置样式?,python,pandas,Python,Pandas,对于某些列,我需要用红色突出显示负值,对于其他列,我需要用绿色突出显示负值。(在“颜色词典”列中) 如何在applymap函数中获取列名 return df.style.applymap( lambda val: column_colors[???]['negative_cell'] if val < 0 else column_colors[???]['positive_cell'], subset=pd.IndexSlice[:, column_colors_keys]

对于某些列,我需要用红色突出显示负值,对于其他列,我需要用绿色突出显示负值。(在“颜色词典”列中)

如何在
applymap
函数中获取列名

return df.style.applymap(
    lambda val: column_colors[???]['negative_cell'] if val < 0 else column_colors[???]['positive_cell'],
    subset=pd.IndexSlice[:, column_colors_keys])

style.applymap
是按元素应用的,因此检索“当前”列名并非易事

如果使用
style.apply
(默认情况下按列应用),则使用
.name
属性获取“当前”列名非常简单:

column_colors = {
    "a": {
        "positive_cell": "color:red;",
        "negative_cell": "color:green;"
    },
    "b": {
        "positive_cell": "color:green;",
        "negative_cell": "color:red;"
    }
}

def apply_style(column):
    col_data = column_colors[column.name]
    return [col_data['positive_cell'] if val > 0 else col_data['negative_cell']
            for val in column]

df.style.apply(apply_style)

样式。applymap
是按元素应用的,因此检索“当前”列名并非易事

如果使用
style.apply
(默认情况下按列应用),则使用
.name
属性获取“当前”列名非常简单:

column_colors = {
    "a": {
        "positive_cell": "color:red;",
        "negative_cell": "color:green;"
    },
    "b": {
        "positive_cell": "color:green;",
        "negative_cell": "color:red;"
    }
}

def apply_style(column):
    col_data = column_colors[column.name]
    return [col_data['positive_cell'] if val > 0 else col_data['negative_cell']
            for val in column]

df.style.apply(apply_style)

我正在使用字典的数据框架来设计
np.where

m = pd.DataFrame(column_colors) #creates a dataframe from column_colors dict
def myf(x):
    val = np.where(x>0 ,m.loc['positive_cell'], m.loc['negative_cell'])
    return pd.DataFrame(val,columns=x.columns,index=df.index)
df.style.apply(myf,axis=None,subset=[*column_colors.keys()])


我正在使用字典的数据框架来设计
np.where

m = pd.DataFrame(column_colors) #creates a dataframe from column_colors dict
def myf(x):
    val = np.where(x>0 ,m.loc['positive_cell'], m.loc['negative_cell'])
    return pd.DataFrame(val,columns=x.columns,index=df.index)
df.style.apply(myf,axis=None,subset=[*column_colors.keys()])