首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python直方图ValueError:范围参数必须是有限的

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

Stack Overflow用户
提问于 2018-08-02 06:01:21
回答 3查看 26.4K关注 0票数 3

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

示例数据帧数据

代码语言:javascript
复制
     distance
0    5.680195
2    0.000000
3    7.974658
4    2.461387
5    9.703089

我用来绘制的代码

代码语言:javascript
复制
import matplotlib.pyplot as plt

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

我有这个错误

代码语言:javascript
复制
"ValueError: range parameter must be finite."  

我的尝试

代码语言:javascript
复制
df['Round_Distance'] = df['distance'].round(1)

0    5.7
2    0.0
3    8.0
4    2.5
5    9.7

再次绘制,新错误

代码语言:javascript
复制
plt.hist(df['Round_Distance'].values)
plt.show()

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

奇怪的是,我使用的工作是下面的,我不需要绕着

代码语言:javascript
复制
df['distance'].hist(bins=[0,25,50,75,100,125,150,175], color='g')
EN

回答 3

Stack Overflow用户

发布于 2018-08-02 06:05:05

听起来您的实际数据中包含一些NaNsinf。您只能选择那些有限的值,如下所示:

代码语言:javascript
复制
import numpy as np

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

所以你的图可以像这样得到:

代码语言:javascript
复制
plt.hist(df[np.isfinite(df['distance'])].values)
票数 11
EN

Stack Overflow用户

发布于 2018-08-02 06:20:54

为了补充sacul的答案,您可以使用以下命令检查您的任何列上是否有NaNsinf

对于NaNs

代码语言:javascript
复制
df.isnull().sum()

对于inf

代码语言:javascript
复制
df.max()

希望它能帮上忙!

票数 3
EN

Stack Overflow用户

发布于 2018-08-02 07:39:25

NaN导致了这个问题,我不需要绕过它,只需丢弃NaN,然后它就可以工作了

代码语言:javascript
复制
plt.hist(df['distance'].dropna().values)
plt.show()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51642846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档