plt.hist()仅适用于特定频率;python

plt.hist()仅适用于特定频率;python,python,pandas,Python,Pandas,我有一个巨大的数据框('df'),它有不同的列,其中一列将名称存储为字符串值('name')。现在,我想简单地绘制一个直方图,其中包含数据帧中每个名称的频率。但是,数据包含数千个唯一的名称,这就是为什么我只想绘制一个特定频率的名称直方图: df.name.value_counts() > 100 我可以给绘图提供这种过滤器/遮罩吗?我已尝试在plt.hist()中使用“range”参数: 但是它仍然显示所有其他名称,但不显示它们的频率…方法df.name.value\u counts()

我有一个巨大的数据框('df'),它有不同的列,其中一列将名称存储为字符串值('name')。现在,我想简单地绘制一个直方图,其中包含数据帧中每个名称的频率。但是,数据包含数千个唯一的名称,这就是为什么我只想绘制一个特定频率的名称直方图:

df.name.value_counts() > 100
我可以给绘图提供这种过滤器/遮罩吗?我已尝试在plt.hist()中使用“range”参数:


但是它仍然显示所有其他名称,但不显示它们的频率…

方法
df.name.value\u counts()
返回直方图的内容。此返回值可以使用常用表达式屏蔽

name_frequencies = df.name.value_counts()
most_freq_name_freqs = name_frequencies[name_frequencies > 100]
要绘制已经进行了历史编程的数据直方图,使用
plt.hist
weights
参数非常有用

plt.hist(most_freq_name_freqs.index, weights=most_freq_name_freqs)
通过这样做,您可以创建一个直方图,每个箱子有一个条目,但箱子内容是按重量缩放的。由于权重是预先计算的频率,因此可以得到名称频率的直方图

plt.hist(most_freq_name_freqs.index, weights=most_freq_name_freqs)