这是我之前提出的问题的后续问题。老问题可以在这里 找到 答案 来自 @jezrael 现在我想绘制成绩。
用于绘制我可以做的所有成绩
但是,我无法弄清楚如何绘制每个成绩组(包括零计数)。
counts_gardes = df1['new'].value_counts(sort=False)
counts_gardes.plot(kind='bar')
我还想在绘制的数字中包括
counts_gardes_group = df1['new'].value_counts(sort=False)
counts_gardes_group.plot(kind='bar')
的零计数。我尝试了
F
此处
、
此处
和
此处
中提供的解决方案,但它们不起作用。第一个返回所有成绩,而后者给出一个错误,指出
没有
index
levels
非常感谢任何帮助。
Any help is really appreciated.
为了确保所有成绩类别(即使是那些计数为零的类别)都包含在你的条形图中,你需要使用
reindex
方法。以下是操作方法:
import pandas as pd
import matplotlib.pyplot as plt
# 示例数据(你的数据可能有所不同)
grades = ['A', 'B', 'C', 'D', 'F']
df1 = pd.DataFrame({'new': ['A', 'B', 'A', 'C', 'B', 'B', 'A']})
# 计算成绩计数
counts_gardes = df1['new'].value_counts(sort=False)
# 创建所有成绩类别的索引
all_grades = pd.Index(grades)
# 使用 reindex 包含缺失的类别
counts_gardes = counts_gardes.reindex(all_grades, fill_value=0)
# 创建条形图
counts_gardes.plot(kind='bar')
plt.xlabel("成绩")
plt.ylabel("计数")
plt.title("成绩分布")
plt.show()
这段代码首先定义了所有预期成绩(
grades
)。然后,它使用
reindex
方法创建一个新的索引,其中包含了
counts_gardes
系列中可能缺少的类别。
fill_value=0
参数确保缺失的类别被赋予零计数。最后,它根据这个新的、完整的索引创建条形图。
这将确保你的图表显示所有成绩类别,包括那些没有对应数据的类别,从而提供更准确的分布情况。
标签:python,pandas From: 59465827