Traceback (most recent call last): File "D:\PyCharm\learning\1\BPmain.py", line 14, in <module> train_input=pd.read_excel('test.xlsx', nrows=100, usecols="1:35") File "D:\anaconda\envs\mytest\lib\site-packages\pandas\util\_decorators.py", line 299, in wrapper return func(*args, **kwargs) File "D:\anaconda\envs\mytest\lib\site-packages\pandas\io\excel\_base.py", line 344, in read_excel data = io.parse( File "D:\anaconda\envs\mytest\lib\site-packages\pandas\io\excel\_base.py", line 1179, in parse return self._reader.parse( File "D:\anaconda\envs\mytest\lib\site-packages\pandas\io\excel\_base.py", line 502, in parse usecols = maybe_convert_usecols(usecols) File "D:\anaconda\envs\mytest\lib\site-packages\pandas\io\excel\_util.py", line 150, in maybe_convert_usecols return _range2cols(usecols) File "D:\anaconda\envs\mytest\lib\site-packages\pandas\io\excel\_util.py", line 119, in _range2cols cols.extend(range(_excel2num(rngs[0]), _excel2num(rngs[1]) + 1)) File "D:\anaconda\envs\mytest\lib\site-packages\pandas\io\excel\_util.py", line 86, in _excel2num raise ValueError(f"Invalid column name: {x}") ValueError: Invalid column name: 1 进程已结束,退出代码1
时间: 2023-07-17 07:06:37 浏览: 123
这个错误是由于在读取 Excel 文件时指定的列名无效所导致的。根据错误信息,无效的列名是 "1"。在 `read_excel` 函数中,`usecols` 参数应该接受一个字符串或整数列表来指定要读取的列。确保你传递正确的参数给 `usecols` 参数,例如使用整数列表来指定要读取的列。
参考以下示例代码:
```python
train_input = pd.read_excel('test.xlsx', nrows=100, usecols=[1, 2, 3, 4, 5, ..., 35])
```
请将 `[1, 2, 3, 4, 5, ..., 35]` 替换为你需要读取的列的索引列表。确保索引从0开始,并且没有重复的索引。
如果你想要读取所有列,可以省略 `usecols` 参数,或者将其设置为 `None`。
```python
train_input = pd.read_excel('test.xlsx', nrows=100)
```
希望这可以帮助到你解决问题!如果还有其他问题,请随时提问。
相关问题
Traceback (most recent call last): File "D:\PyCharm\learning\1\11.py", line 159, in <module> n.train(train_input,train_output) File "D:\PyCharm\learning\1\11.py", line 135, in train for j in self.num_input: TypeError: 'int' object is not iterable
根据你提供的错误信息,出现了一个类型错误:`TypeError: 'int' object is not iterable`。这个错误通常发生在你尝试对一个整数对象进行迭代操作时。
根据你提供的代码片段,错误发生在`for j in self.num_input:`这行代码上。`self.num_input`是一个整数,而不是一个可迭代的对象(如列表、元组等)。因此,你不能使用`for`循环对其进行迭代操作。
如果你想要迭代某个范围内的整数,你可以使用`range()`函数来生成一个整数序列,然后进行迭代。例如:
```python
for j in range(self.num_input):
# 在这里执行迭代操作
```
请确保将代码中的`for j in self.num_input:`替换为上述示例代码,以解决这个类型错误。如果问题仍然存在,请提供更多相关的代码和上下文信息,以便我能够提供更准确的帮助。
Traceback (most recent call last): File "D:\PyCharm\learning\1\BPmain.py", line 16, in <module> nn.train(train_input, train_output, num_epochs=500) File "D:\PyCharm\learning\1\BP.py", line 60, in train self.forward_propagation(x) File "D:\PyCharm\learning\1\BP.py", line 28, in forward_propagation self.input_layer = input_data.reshape(self.num_input, 1) File "D:\anaconda\envs\mytest\lib\site-packages\pandas\core\generic.py", line 5465, in __getattr__ return object.__getattribute__(self, name) AttributeError: 'Series' object has no attribute 'reshape'
根据你提供的错误信息,看起来出现了一个属性错误(AttributeError)。错误信息显示了以下关键行号:
1. 第一个错误是在 "D:\PyCharm\learning\1\BP.py" 文件的第 60 行,即在 `train` 函数中的 `self.forward_propagation(x)` 调用处。
2. 第二个错误是在 "D:\PyCharm\learning\1\BP.py" 文件的第 28 行,即在 `forward_propagation` 方法中的 `input_data.reshape(self.num_input, 1)` 调用处。
根据错误信息,`input_data` 是一个 Pandas Series 对象。Pandas Series 对象没有 `reshape` 属性或方法,因此无法将其重塑为指定的形状。
要解决此问题,你可以通过使用 `values` 属性将 Pandas Series 转换为 NumPy 数组,然后再进行重塑操作。
请参考以下示例代码:
```python
self.input_layer = input_data.values.reshape(self.num_input, 1)
```
将 `input_data` 对象转换为 NumPy 数组后,就可以使用 `reshape` 方法将其重塑为指定形状。这样应该能够解决你遇到的属性错误问题。
如果你还有其他问题,请随时提问。
阅读全文