如何在Jupyter Notebook中通过IPython以HTML格式展示CSV数据框中各复杂度类别的计数
解决Jupyter Notebook中统计复杂度类别并以HTML展示的问题
我来帮你修正代码里的问题,你现在的问题出在错误地直接访问不存在的列,咱们调整一下就能正常统计并展示了:
问题分析
你原来的代码里尝试用df['Simple']去取值,但你的DataFrame只有Complexity这一列,正确的做法是对Complexity列整体做计数统计,再提取每个类别的数值。
修正后的完整代码
import pandas as pd from IPython.display import HTML # 读取CSV文件,仅加载Complexity列 df = pd.read_csv("name.csv", usecols=['Complexity']) # 统计Complexity列中各类别的出现次数 complexity_stats = df['Complexity'].value_counts() # 提取每个类别的计数,用get方法避免因类别缺失引发的KeyError simple_count = complexity_stats.get('Simple', 0) medium_count = complexity_stats.get('Medium', 0) complex_count = complexity_stats.get('Complex', 0) # 构建规范的HTML内容 html_code = """ <html> <head> <meta charset="UTF-8"> <title>Theme Complexity Statistics</title> </head> <body> <h2>Themes Complexity is as below</h2> <p>Simple Themes: <strong>{}</strong></p> <p>Medium Themes: <strong>{}</strong></p> <p>Complex Themes: <strong>{}</strong></p> </body> </html> """.format(simple_count, medium_count, complex_count) # 在Jupyter Notebook中渲染HTML HTML(html_code)
关键改进点
- 用
df['Complexity'].value_counts()一次性完成所有类别的统计,比单独查询更高效简洁 - 使用
Series.get(key, default)方法处理数据中可能缺失的类别(比如如果没有Simple类型的数据,会返回0而不是报错) - 优化了HTML结构:添加编码声明、规范head/body分区,用
<strong>标签强调计数数值,提升展示效果
内容的提问来源于stack exchange,提问作者goe




