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

时间:2018-08-01 22:01:21

标签: python-3.x pandas matplotlib

使用直方图绘制熊猫数据框时,

样本数据框数据

     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.

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

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

3 个答案:

答案 0 :(得分:2)

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

import numpy as np

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

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

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

答案 1 :(得分:0)

只需添加到sacul的答案中,您就可以使用以下方法检查您的任何列上是否有NaNsinf

对于NaNs

df.isnull().sum()

对于inf

df.max()

希望有帮助!

答案 2 :(得分:0)

NaN引起问题,我不需要四舍五入,只需放下NaN,然后​​它就可以了

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