import termcolor
import pandas
# assume `df['foo']` is a `pandas.DataFrame` column with
# boolean values...
#
# NOTE: there's probably a more idiomatic pandas incantation
# for what I'm doing here, but this is intended to
# demonstrate the concept of colorizing `colorized_df['foo']`
colorized_df = None
colored_str_value = ""
colorised_row = []
for original_value in df['foo'].values:
# casting `original_value` bools as strings to color them red...
colored_str_value = termcolor.colored(str(original_value), 'red')
colorized_row.append(colored_str_value)
colorized_df = pandas.DataFrame({'foo': colorized_row})
# Do something here with colorized_df...
2条答案
按热度按时间r7xajy2e1#
是的,有一种方法,这里是一个示例解决方案:
https://pypi.org/project/termcolor/
编辑:
如果你不想使用import
你可以定义一个颜色并迭代关键值的dic:
然后你就把你的条件放在颜色的键上
2ekbmq322#
为了将彩色的
pandas.DataFrame
打印到我的macos终端,我使用了以下代码...现在,当我在终端中打印
colorized_df
时,它用红色文本呈现colorized_df['foo']
...因此,
colorized_df
单元格的值必须转换为字符串来为DataFrame
内容着色。这些布尔值必须转换为colorized_df[ foo']
中的字符串(否则值无法着色)。对于大多数用例,将原始
DataFrame
重新转换为字符串是不可能的...一个可能的解决方案(在我的答案中使用)-〉保留DataFrame
的两个副本...(A)一个副本用于在df['foo']
中呈现为原始DataFrame
类型...(B)另一个副本用于自由操作并转换为彩色字符串...但是,如果修改
df['foo']
,则必须保持这两个DataFrames
同步。