Python Windrose 挂起大型数据集,不会崩溃或产生结果

Posted

技术标签:

【中文标题】Python Windrose 挂起大型数据集,不会崩溃或产生结果【英文标题】:Python Windrose hangs with large dataset, doesn't crash or produce results 【发布时间】:2020-08-13 18:16:25 【问题描述】:

我正在使用 Anaconda2 Spyder3。当我使用windrose 时,它适用于小型数据集,但我想将它用于 1 年的 10 分钟数据 - 52560 个数据点。

当我运行下面的代码时,它只是挂起,我永远不会得到结果或任何错误消息。

wd = df_A['Yaw_mean']
wd_mod = wd % 360 #convert to 0-360 degrees
wd_mod = wd_mod.values #convert to float64
ws = df_A['ws_mean'].values

ws_subset = ws[0:52560]
wd_subset = wd_mod[0:52560]
ax = WindroseAxes.from_ax()
ax.bar(wd_subset, ws_subset)
plt.title('Yaw 2016-2017')
plt.savefig(mypath + 'Yaw_Windrose.png')

我为数据集ws_subset = ws[0:500] 的较小子集试用了相同的代码,并且成功了:

我是否可以对代码进行任何更改,而无需更改输入数据集来生成绘图?

【问题讨论】:

请尝试主页上显示的示例,但使用 50000 个随机样本而不是 500 个。这样更快吗? github.com/python-windrose/windrose 对我来说,这没什么区别。 还有一个 Pandas 示例,其中包含字段速度和方向的数据框:github.com/python-windrose/windrose/blob/master/samples/… 【参考方案1】:

上面的建议很有帮助。我意识到错误是由于数据集中的一些 NaN 值造成的。

通过.dropna()解决

wd = df_A01['_ScYawPos_mean']
wd = wd.dropna()
wd_mod = wd % 360
wd_mod = wd_mod.values
ws = df_A['ws_mean']
ws= ws.dropna()

【讨论】:

以上是关于Python Windrose 挂起大型数据集,不会崩溃或产生结果的主要内容,如果未能解决你的问题,请参考以下文章

python气象绘图windrose

Python Windrose 图例标签

使用 python 中的 windrose 模块绘制带有风玫瑰的不同子图。在 matplotlib 中使用睡眠

数据可视化应用绘制风玫瑰图(附Python代码)

在 python 中处理大型数据集的最佳方法

如何处理大型但不是大数据的数据集?