ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
时间: 2023-06-25 14:04:54 浏览: 109
Value too large for defined data type 解决办法
4星 · 用户满意度95%
这个错误通常表示你的数据集中包含缺失值(NaN)或特别大的数字,超出了浮点数的范围。你需要检查你的数据集,找出缺失值并进行处理。
你可以使用 pandas 库中的 isna() 函数来检查数据集中是否存在缺失值。例如:
```python
import pandas as pd
# 读取数据集
df = pd.read_csv('data.csv')
# 检查是否存在缺失值
print(df.isna().sum())
```
如果输出结果中有一些列的值不为 0,则说明该列存在缺失值。你可以使用 fillna() 函数来填充缺失值,例如:
```python
# 填充缺失值为 0
df.fillna(0, inplace=True)
```
如果你的数据集中存在特别大的数字,你可以使用 numpy 库中的 isinf() 和 isnan() 函数来检查。例如:
```python
import numpy as np
# 生成包含特别大的数字的数组
arr = np.array([1.0, 2.0, 1e100, 3.0])
# 检查是否存在特别大的数字
print(np.isinf(arr))
print(np.isnan(arr))
```
你可以使用 clip() 函数将特别大的数字截断为一个较小的值,例如:
```python
# 将特别大的数字截断为 1e50
arr = arr.clip(max=1e50)
```
阅读全文