假设我们有 pandas 数据帧 pd
和一个 dask 数据帧 dd
。当我想用 matplotlib 绘制 pandas one 时,我可以轻松做到:
fig, ax = plt.subplots()
ax.bar(pd["series1"], pd["series2"])
fig.savefig(path)
但是,当我尝试对 dask 数据帧执行相同操作时,出现了 Type Errors
,例如:
TypeError: Cannot interpret 'string[python]' as a data type
string[python]
只是一个示例,无论您的 dd["series1"]
数据类型是什么,都将在此处输入。
所以我的问题是:将 matplotlib
与 dask
结合使用的正确方法是什么?将这两个库结合起来是否是个好主意?
最佳答案
使用 dask
而不是 pandas
的一个动机是数据的大小。因此,将 pandas
DataFrame 与 dask
DataFrame 交换可能不可行。想象一个散点图,这可能适用于 10K 点,但如果 dask 数据框是十亿行,那么普通的 matplotlib
散点图可能不是一个好主意(datashader
是一个更合适的工具)。
一些图形表示对数据的大小不太敏感,例如归一化条形图应该工作良好,只要类别的数量不随数据缩放。在这种情况下,最简单的解决方案是使用 dask
计算感兴趣的统计数据,然后再使用 pandas
绘制它们。
总结一下:我会考虑图表的性质,找出最好的工具/表示,如果它可以/应该用 matplotlib
完成,那么我会在 dask
DataFrame 将缩减结果作为 pandas
dataframe 并继续 matplotlib
关于python - 将 Matplotlib 与 Dask 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73000307/