Python直方图ValueError:范围参数必须是有限的

新手上路,请多包涵

使用直方图绘制 Pandas 数据帧时,

示例数据帧数据

     distance
0    5.680195
2    0.000000
3    7.974658
4    2.461387
5    9.703089

我用来绘图的代码

import matplotlib.pyplot as plt

plt.hist(df['distance'].values)
plt.show()

我有这个错误

"ValueError: range parameter must be finite."

我的尝试

df['Round_Distance'] = df['distance'].round(1)

0    5.7
2    0.0
3    8.0
4    2.5
5    9.7

再次绘制,新错误

plt.hist(df['Round_Distance'].values)
plt.show()

ValueError: max must be larger than min in range parameter.

奇怪的是,我使用的解决方法如下,我不必 ROUND

 df['distance'].hist(bins=[0,25,50,75,100,125,150,175], color='g')

原文由 Learn 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 626
2 个回答

NaN 导致问题,我不需要将其舍入,只需删除 NaN,然后它就可以工作

plt.hist(df['distance'].dropna().values)
plt.show()

原文由 Learn 发布,翻译遵循 CC BY-SA 4.0 许可协议

听起来您的实际数据中有一些 NaNsinf 。您只能选择像这样的有限值:

 import numpy as np

df[np.isfinite(df['distance'])]

所以你的情节可以像这样获得:

 plt.hist(df[np.isfinite(df['distance'])].values)

原文由 sacuL 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进