按索引突出显示(颜色)熊猫数据框行
highlight (color) a panda data frame row by index
我有两个数据框df1:
d1 = {"col1" : ['A', 'B', 'C'],
"Col2": ["home", "car","banana" ]}
d2 = {"col1" : ['D', 'F','C'],
"Col2": ["garden", "boat","banana" ]}
df1 = pd.DataFrame(data=d1)
df2 = pd.DataFrame(data=d2)
new_df = pd.merge(df1, df2, on ='col1', how='outer')
new_df
所以我要做的是突出显示在两个数据框中找到的第三行 "banana"。
我正在使用 Styling documentation 找到解决方案但没有运气。
我只能突出显示一行,但是当我有多行时,它就不起作用了。
请伸出援手
如果您想突出显示两行(比如索引 2 和 4),它几乎是此
的副本
new_df.style.apply(lambda x: ['background: lightgreen' if x.name in [2,4]
else '' for i in x],
axis=1)
如果您希望突出显示列表中包含给定名称的每一行(即 lst = ['car', 'boat']
),您可以使用
new_df.style.apply(lambda x: ['background: lightgreen' if (set(lst).intersection(x.values))
else '' for i in x],
axis=1)
这里有很多关于设置 DataFrame 行样式的问题 link,所以我一直来这里,尽管已接受的答案对我不起作用,而且 pandas 也没有有用的错误消息。我只是想指出,虽然接受的答案可能适用于 html、Jupyter 或他们正在使用的任何东西。应用于 Excel 时不起作用。
对于 Excel,您需要以下内容:
new_df.style.apply(
lambda x: ['background-color: <color>' if x.name in [2,4] else '' for i in x],
axis=1
)
注意 "backgound-color" 的用法。 Excel 不会像您预期的那样渲染“背景”
此外,在使用 Excel 时,您需要使用 Excel 的识别颜色列表中的颜色名称,使用“lightgreen”摆弄上述答案可能给你 black-on-black...可能不是任何人想要的。
我有两个数据框df1:
d1 = {"col1" : ['A', 'B', 'C'],
"Col2": ["home", "car","banana" ]}
d2 = {"col1" : ['D', 'F','C'],
"Col2": ["garden", "boat","banana" ]}
df1 = pd.DataFrame(data=d1)
df2 = pd.DataFrame(data=d2)
new_df = pd.merge(df1, df2, on ='col1', how='outer')
new_df
所以我要做的是突出显示在两个数据框中找到的第三行 "banana"。 我正在使用 Styling documentation 找到解决方案但没有运气。 我只能突出显示一行,但是当我有多行时,它就不起作用了。 请伸出援手
如果您想突出显示两行(比如索引 2 和 4),它几乎是此
new_df.style.apply(lambda x: ['background: lightgreen' if x.name in [2,4]
else '' for i in x],
axis=1)
如果您希望突出显示列表中包含给定名称的每一行(即 lst = ['car', 'boat']
),您可以使用
new_df.style.apply(lambda x: ['background: lightgreen' if (set(lst).intersection(x.values))
else '' for i in x],
axis=1)
这里有很多关于设置 DataFrame 行样式的问题 link,所以我一直来这里,尽管已接受的答案对我不起作用,而且 pandas 也没有有用的错误消息。我只是想指出,虽然接受的答案可能适用于 html、Jupyter 或他们正在使用的任何东西。应用于 Excel 时不起作用。 对于 Excel,您需要以下内容:
new_df.style.apply(
lambda x: ['background-color: <color>' if x.name in [2,4] else '' for i in x],
axis=1
)
注意 "backgound-color" 的用法。 Excel 不会像您预期的那样渲染“背景”
此外,在使用 Excel 时,您需要使用 Excel 的识别颜色列表中的颜色名称,使用“lightgreen”摆弄上述答案可能给你 black-on-black...可能不是任何人想要的。