使用直方图绘制熊猫数据框时,
样本数据框数据
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')
答案 0 :(得分:2)
听起来像您的实际数据中有NaNs
或inf
。您只能像这样选择有限的值:
import numpy as np
df[np.isfinite(df['distance'])]
所以您的情节可以像这样获得:
plt.hist(df[np.isfinite(df['distance'])].values)
答案 1 :(得分:0)
只需添加到sacul的答案中,您就可以使用以下方法检查您的任何列上是否有NaNs
或inf
:
对于NaNs
:
df.isnull().sum()
对于inf
:
df.max()
希望有帮助!
答案 2 :(得分:0)
NaN引起问题,我不需要四舍五入,只需放下NaN,然后它就可以了
plt.hist(df['distance'].dropna().values)
plt.show()