我有一个数据框,它计算3件事并输出结果:第一行表示文件中的记录数,第二行表示特定列为空值的记录数(缺失ID的数量),第三行也表示特定列为空值的记录数(缺失名称的数量)。
我想有条件地将某些单元格的格式设置为红色,如果它们是!= 0。
有关我的 Dataframe 内容和我希望有条件地变为红色的内容的更多上下文,请参见下文:
def record_count():
with open('filename.csv', encoding='utf8') as file:
record_number = len(list(file))
print("Number of records on file:", record_number)
return record_number
def id_check():
df = pd.read_csv('filename.csv', low_memory=False)
missing_id = df["id"].isna().sum()
print("Number of users missing an id:", missing_id)
return missing_id
def name_check():
df = pd.read_csv('filename.csv', low_memory=False)
missing_name = derivs["name"].isna().sum()
print("Number of users missing a name:", missing_name)
return missing_name
checks_table = {
'Check' : ['Record Check', 'ID Check', 'Name Check'],
'Summary' : ['Number of records on file','Number of records missing an ID', 'Number of users missing a name'],
'Findings' : [record_count(), id_check(), name_check()]
}
df_checks = pd.DataFrame.from_dict(checks_table)
df_checks.head()
我正在尝试格式化checks_table
Dataframe ,以便:
- Check = ID Check且发现id_check()!= 0且单元格值=红色的任何单元格
- 或其中Check =名称检查且发现name_check()!= 0,则单元格值=红色
其他一切都可以默认为黑色。
1条答案
按热度按时间kqqjbcuj1#
使用以下玩具数据框(我猜你的是什么样子):
下面是通过定义一个helper函数来实现这一点的一种方法:
然后,在Jupyter notebook单元格中运行以下代码行:
输出: