行的着色

2024-04-18 14:31:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个代码,每个时隙的颜色不同,所以它更容易导航。问题是,有时不是所有的插槽都会被填充,然后我在下一个插槽上得到相同的颜色,很难区分哪个插槽是哪个。 如何使这段代码更加优雅,并使python决定何时有下一个槽来更改颜色。我想把那些颜色改成“二进制”。你知道吗

def EPP_Break_boja(row):
    color = '#F5EEF8'
    if row.values[0] == '06:40':
        color = '#EBF5FB  '
    elif row.values[0] == '07:10':
        color = '#FEF9E7  '
    elif row.values[0] == '07:40':
        color = '#EBF5FB  '
    elif row.values[0] == '08:10':
        color = '#FEF9E7  '
    elif row.values[0] == '08:40':
        color = '#EBF5FB  '
    elif row.values[0] == '09:10':
        color = '#FEF9E7  '
    elif row.values[0] == '09:40':
        color = '#EBF5FB  '
    elif row.values[0] == '10:10':
        color = '#FEF9E7  '
    elif row.values[0] == '10:40':
        color = '#EBF5FB  '
    elif row.values[0] == '11:10':
        color = '#FEF9E7  '
    elif row.values[0] == '11:40':
        color = '#EBF5FB  '
    elif row.values[0] == '12:10':
        color = '#FEF9E7  '
    elif row.values[0] == '12:40':
        color = '#EBF5FB  '
    elif row.values[0] == '13:10':
        color = '#FEF9E7  '
    elif row.values[0] == '13:40':
        color = '#EBF5FB  '
    elif row.values[0] == '14:10':
        color = '#FEF9E7  '
    elif row.values[0] == '14:40':
        color = '#EBF5FB  '
    elif row.values[0] == '15:10':
        color = '#FEF9E7  '
    elif row.values[0] == '15:40':
        color = '#EBF5FB  '
    elif row.values[0] == '16:10':
        color = '#FEF9E7  '
    elif row.values[0] == '16:40':
        color = '#EBF5FB  '
    elif row.values[0] == '17:10':
        color = '#FEF9E7  '
    elif row.values[0] == '17:40':
        color = '#EBF5FB  '
    elif row.values[0] == '18:10':
        color = '#FEF9E7  '
    elif row.values[0] == '18:40':
        color = '#EBF5FB  '
    elif row.values[0] == '19:10':
        color = '#FEF9E7  '
    elif row.values[0] == '19:40':
        color = '#EBF5FB  '
    elif row.values[0] == '20:10':
        color = '#FEF9E7  '
    elif row.values[0] == '20:40':
        color = '#EBF5FB  '
    elif row.values[0] == '21:10':
        color = '#FEF9E7  '
    elif row.values[0] == '21:40':
        color = '#EBF5FB  '
    elif row.values[0] == '22:10':
        color = '#FEF9E7  '
    elif row.values[0] == '22:40':
        color = '#EBF5FB  '
    elif row.values[0] == '23:10':
        color = '#FEF9E7  '
    elif row.values[0] == '23:40':
        color = '#EBF5FB  '
    elif row.values[0] == 'Thursday 12-October-2017':
        color = '#FDEDEC  '
    elif row.values[0] == 'Thursday 13-October-2017':
        color = '#EAFAF1'
    return ['background-color: %s' % color]*len(row.values)


dataframe_spotovi = dataframe_spotovi.style.apply(EPP_Break_boja, axis=1)
dataframe_spotovi

Tags: 代码dataframe颜色colorrow插槽valuesbreak
1条回答
网友
1楼 · 发布于 2024-04-18 14:31:38

以下方法如何:

In [112]: colors=['#EBF5FB  ','#FEF9E7  ']

In [113]: df
Out[113]:
    Time title     x
0  06:40     a  2011
1  06:40     b  2010
2  07:10     c  2000
3  08:10     d  1983

In [114]: df.assign(col=np.take(colors, df.groupby('Time').ngroup() % 2))
Out[114]:
    Time title     x        col
0  06:40     a  2011  #EBF5FB
1  06:40     b  2010  #EBF5FB
2  07:10     c  2000  #FEF9E7
3  08:10     d  1983  #EBF5FB

相关问题 更多 >