2016-09-30 87 views
2

我有一个数据集有超过20列,其中一个是“Trip_distance”,并有超过100,000行。如何使用python将csv文件中的列按范围和绘制直方图进行分组?

这是柱的样品 “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中做到这一点?

+0

如果您先将trip_distance列存入,然后再绘制结果? – Boud

回答

1

Matplotlib对于绘制大型数据集不是非常有效。问题是,你正在使用bins=no_of_rows(我猜no_of_rows100 000然后)。因此,在最坏的情况下,您可能会试图在柱状图中绘制100 000条。

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

如果你想绘制大型数据集,你应该看看其他工具,它们可以实现更高效的后端并使用基于OpenGL的后端。请参阅:PyQtGraph,VisPy,Bokeh,Chaco ...

+0

将箱数减至100,情节看起来相当不错。但是,仍然在将它们分组到一定范围内。感谢您的帮助! –