TypeError Traceback (most recent call last) Cell In[99], line 24 21 b = sum_slice / 103 22 preds_valid.append(b) ---> 24 rms = np.sqrt(np.mean(np.power((np.array(valid['close'])-preds_valid),2))) TypeError: list indices must be integers or slices, not str错误怎么解决
时间: 2024-02-07 20:02:28 浏览: 97
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
5星 · 资源好评率100%
这个错误是因为你试图将一个列表 preds_valid 与一个 Pandas 数据框 valid['close'] 进行操作,导致出现了 TypeError 错误。你需要将 preds_valid 转换为 NumPy 数组或 Pandas 数据框,以便与 valid['close'] 进行操作。以下是两种解决方法:
1. 将 preds_valid 转换为 NumPy 数组:
```python
import numpy as np
# 将 preds_valid 转换为 NumPy 数组
preds_valid = np.array(preds_valid)
# 计算均方根误差
rms = np.sqrt(np.mean(np.power((valid['close'].values - preds_valid), 2)))
```
2. 将 valid['close'] 转换为列表:
```python
# 将 valid['close'] 转换为列表
close_list = valid['close'].tolist()
# 计算均方根误差
rms = np.sqrt(np.mean(np.power((np.array(close_list) - preds_valid), 2)))
```
以上两种方法都可以解决 TypeError 错误。
阅读全文