【问题标题】:How to group a column in a csv file by a range and plot histogram using python?如何按范围对csv文件中的列进行分组并使用python绘制直方图?
【发布时间】:2017-02-08 13:37:59
【问题描述】:

我有一个包含 20 多列的数据集,其中之一是“Trip_distance”,其中有超过 100,000 行。

这是“Trip_distance”列的示例:

[0 0 0.59 0.74 0.61 1.07 1.43 0.9 1.33 0.84]

然后继续。 我想通过将它们分组到一个范围内来绘制直方图(因为绘制所有 100,000 个值没有意义)。

我试过了

plt.hist(df['Trip_distance'],bins = no_of_rows)

plt.show()

但是代码内存不足。

有没有办法在 python 中做到这一点?

【问题讨论】:

  • 如果你先将你的trip_distance列装箱,然后绘制结果呢?

标签: python-2.7 csv pandas matplotlib


【解决方案1】:

Matplotlib 在绘制大型数据集时效率不高。问题是您使用的是bins=no_of_rows(我猜no_of_rows100 000)。因此,在最坏的情况下,您可能会尝试在直方图中绘制 100 000 条形图。

我建议您减少垃圾箱的数量(对于人眼,我认为您不会注意到 100 000 垃圾箱和1000 之间的太大区别)。如果您真的想绘制直方图,那么将这个数字减少到 100 或更少的 IMO 会更有意义。

如果您想绘制大型数据集,您可能应该看看其他实现更高效后端的工具,并可能使用基于 OpenGL 的后端。例如:PyQtGraphVisPyBokehChaco...

【讨论】:

  • 将 bin 的数量减少到 100,情节似乎还不错。但是,仍在努力将它们分组到一定范围内。感谢您的帮助!
猜你喜欢
  • 2020-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多