- 只谈论控制台输出 *
我有一个dataframe,看起来像这样:
import pandas as pd
data = [{'a': 1.123, 'b': 'blabla', 'error': True}, {'a': 2.1342, 'b': 'bla', 'error': False}]
df = pd.DataFrame(data)
字符串
x1c 0d1x的数据
我想做的是根据相关行中“错误”单元格的值为每个单元格着色。也就是说,在这种情况下,得到这个表:
的
- 不知道为什么,这个缩进不好 *
我通过使用colorama
编辑data
创建了这个表。
- 我正在寻找的是更像
df.loc[df.error, <ALL_COLUMNS>] = colorama.Fore.RED + str(old_value) + colorama.Fore.RESET
(绿色也是一样)
我该怎么做?
我尝试的是:
for col in df.columns:
df[col] = df.apply(lambda x: Fore.RED + str(x[col]) + Fore.RESET if x[col] else Fore.GREEN + str(x[col]) + Fore.RESET, axis=1)
型
的
[X]缩进是不好的,并且逐列地进行,这会把值搞得一团糟df.apply(lambda x: Fore.RED + str(x['error']) + Fore.RESET if x['error'] else Fore.GREEN + str(x['error']) + Fore.RESET, axis=1)
个
的
[X]看起来更好,但我错过了所有的价值观
df.apply(lambda x: Fore.RED + str(x) + Fore.RESET if x['error'] else Fore.GREEN + str(x) + Fore.RESET, axis=1)
型
x1c4d 1x的
[X]逻辑-工作正常。需要一些调整
2条答案
按热度按时间oknrviil1#
试试看:
字符串
当输出到Excel时,它看起来像...
的数据
abithluo2#
我想在cmd控制台窗口中对数据框的CIsForCookies和颜色单元格进行同样的操作。我采用了同样的方法,在df单元格中添加了colorama颜色标签,这也打乱了resp。未对齐打印的数据框。我还尝试插入丰富的颜色标签,这导致了同样的错位。
然后,我在pandas GitHub页面上发现了这个关于styling console/terminal output的讨论,所以,操纵数据框来获取颜色似乎不起作用。
但是富模块在上一篇文章中提到过,我知道你可以用它创建彩色表格。所以我试着将df的最后一行拉到一个JSON对象中,遍历JSON数据,在需要的地方添加颜色,然后用修改后的JSON数据构建一个丰富的表--结果成功了:-)
一些代码...
1.获取df的最后10行作为可交互的JSON数据
第一个月
1.例如,遍历json数据,如果收盘值高于或低于EMA 20,则添加绿色或红色背景:
for index in json_data: if json_data[index]['close'] >= json_data[index]['20EMA']: json_data[index]['20EMA'] = f"[black on green]{json_data[index]['20EMA']}[/]" else: json_data[index]['20EMA'] = f"[black on red]{json_data[index]['20EMA']}[/]"
个1.创建一个富表,并从JSON数据中添加行:
for index in json_data: table.add_row(index, str(local_time), str(f"{json_data[index]['close']:.2f}"), str(int(json_data[index]['volume'])), str(json_data[index]['20EMA']), )
个最后,你有一个来自df的表格,有不同的单元格颜色。
x1c 0d1x的数据