当使用直方图绘制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.
奇怪的是,我使用的工作是下面的,我不需要绕着
df['distance'].hist(bins=[0,25,50,75,100,125,150,175], color='g')
发布于 2018-08-02 06:05:05
听起来您的实际数据中包含一些NaNs
或inf
。您只能选择那些有限的值,如下所示:
import numpy as np
df[np.isfinite(df['distance'])]
所以你的图可以像这样得到:
plt.hist(df[np.isfinite(df['distance'])].values)
发布于 2018-08-02 06:20:54
为了补充sacul的答案,您可以使用以下命令检查您的任何列上是否有NaNs
或inf
:
对于NaNs
:
df.isnull().sum()
对于inf
:
df.max()
希望它能帮上忙!
发布于 2018-08-02 07:39:25
NaN导致了这个问题,我不需要绕过它,只需丢弃NaN,然后它就可以工作了
plt.hist(df['distance'].dropna().values)
plt.show()
https://stackoverflow.com/questions/51642846
复制相似问题