【发布时间】:2019-12-25 17:11:34
【问题描述】:
我正在使用包含客户信息的数据集来试验/学习 Python。
DataFrame 结构如下(这些是组成的记录):
import pandas as pd
df1 = pd.DataFrame({'left_name' : ['James', 'Mary', 'John', 'Patricia'],
'left_age' : [30, 37, 30, 35],
'right_name' : ['Robert', 'Jennifer', 'Michael', 'Linda'],
'right_age' : [30, 31, 38, 35]})
print(df1)
left_name left_age right_name right_age
0 James 30 Robert 30
1 Mary 37 Jennifer 31
2 John 30 Michael 38
3 Patricia 35 Linda 35
将transpose方法应用到df1,得到如下视图:
df2 = df1.T
print(df2)
0 1 2 3
left_name James Mary John Patricia
left_age 30 37 30 35
right_name Robert Jennifer Michael Linda
right_age 30 31 38 35
我的目标是对df2 应用一些样式。具体来说,
-
left_name和right_name行应以黄色突出显示; -
left_age和right_age行应以蓝色突出显示。
我在发帖之前做了一些研究,并设法通过以下方式突出显示一个子集:
df2.style.set_properties(subset = pd.IndexSlice[['left_name', 'right_name'], :], **{'background-color' : 'yellow'})
问题是我无法将多种样式组合在一起。如果我使用与上述相同的方法为left_age 和right_age 添加额外的蓝色,我会“丢失”以前的样式。
理想情况下,我希望有一个以df2 作为输入并返回样式化DataFrame 的函数。
【问题讨论】:
标签: python pandas dataframe formatting pandas-styles