如何在 Pandas 中使用预聚合数据绘制直方图?

Posted

技术标签:

【中文标题】如何在 Pandas 中使用预聚合数据绘制直方图?【英文标题】:How to plot histogram with preaggregated data in Pandas? 【发布时间】:2016-07-02 10:49:31 【问题描述】:

你能帮我找出如何用预先聚合的数据绘制直方图吗?我的意思是我已将数据分组到 bin 中以从 SQL Server 加载它们并保存到 xls 文件。现在我有两个变量:频率和 bin 变量(价格)。例如,我有一个 0 - 10 美元的价格箱。那里有120次出现。然后我有 10 - 20 美元的价格箱,那里有 500 次发生等等。

问题是我有太多的预聚合箱。因为价格从 0 变为 50 000,步长为 10。

我能否以某种方式在 pandas 中绘制一个直方图,它可以自动构建直方图并将每个观察结果视为不是一个单独的项目,而是已经预先计算了出现次数。

现在我有 322 个 bin 的直方图 - 我需要用 Python 将它们削减到 5 - 10:

【问题讨论】:

python plot simple histogram given binned data的可能重复 不,只是条形图对我没有帮助。因为我有 322 个垃圾箱。请参阅我帖子中的图像。我想减少垃圾箱的数量 【参考方案1】:

您可以根据您的数据绘制条形图(使用 matplotlib):

import matplotlib.pyplot as plt

n, bins = your_data()

binwidth = 0.8 * (bins[1] - bins[0])

# you might not need this, if your bins are already the centervalue
bincenter = (bins[:-1] + bins[1:]) / 2.

plt.bar(bincenter, n, align='center', width=binwidth)
plt.show()

【讨论】:

感谢您的回答!我可能可以用条形图来做到这一点,但我需要减少垃圾箱的数量。我在 Excel 中发布了我现在拥有的情节。

以上是关于如何在 Pandas 中使用预聚合数据绘制直方图?的主要内容,如果未能解决你的问题,请参考以下文章

对从大型数据集中聚合的数据使用 Altair

在 Pandas 中绘制带有非常重尾数据的直方图

如何使用 pandas 聚合组指标和绘制数据

根据 Matplotlib 中的预计数数据绘制直方图

使用 matplotlib 和 pandas 从 csv 文件中绘制直方图

如何从 Pandas DataFrame 开始绘制堆叠时间直方图?