[英]python pandas coloring of rows
我有这段代码,每个时隙的颜色都不同,因此更易于浏览。 问题是,有时并非所有插槽都会被填充,然后我在下一个插槽上得到相同的颜色,因此很难区分哪个插槽是哪个。 我如何才能使此代码更优雅,并使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
那么以下方法呢?
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.