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, 2, 3, 4, 5, ..., 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 552, in parse parser = TextParser( File "D:\anaconda\envs\mytest\lib\site-packages\pandas\io\parsers.py", line 2204, in TextParser return TextFileReader(*args, **kwds) File "D:\anaconda\envs\mytest\lib\site-packages\pandas\io\parsers.py", line 819, in __init__ self._engine = self._make_engine(self.engine) File "D:\anaconda\envs\mytest\lib\site-packages\pandas\io\parsers.py", line 1050, in _make_engine return mapping[engine](self.f, **self.options) # type: ignore[call-arg] File "D:\anaconda\envs\mytest\lib\site-packages\pandas\io\parsers.py", line 2242, in __init__ self.usecols, _ = _validate_usecols_arg(kwds["usecols"]) File "D:\anaconda\envs\mytest\lib\site-packages\pandas\io\parsers.py", line 1241, in _validate_usecols_arg raise ValueError(msg) ValueError: 'usecols' must either be list-like of all strings, all unicode, all integers or a callable.
时间: 2023-07-17 15:06:39 浏览: 90
这个错误是由于 `usecols` 参数需要传递一个包含所有字符串、Unicode、整数或可调用对象的列表。根据你的错误信息,`usecols` 参数中包含了省略号(...),导致了这个错误。
确保你在 `usecols` 参数中传递一个有效的列表,例如:
```python
train_input = pd.read_excel('test.xlsx', nrows=100, usecols=[1, 2, 3, 4, 5, ..., 35])
```
请注意,省略号(...)不是有效的列表元素。你需要手动将要读取的列的索引一一列出,而不是使用省略号。
如果要读取从第1列到第35列的所有列,可以使用以下代码:
```python
train_input = pd.read_excel('test.xlsx', nrows=100, usecols=list(range(1, 36)))
```
这将传递一个从1到35的整数列表给 `usecols` 参数。
如果还有其他问题,请随时提问。
相关问题
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:`替换为上述示例代码,以解决这个类型错误。如果问题仍然存在,请提供更多相关的代码和上下文信息,以便我能够提供更准确的帮助。
D:\anaconda\envs\mytest\python.exe D:/PyCharm/learning/1/11.py Traceback (most recent call last): File "D:\PyCharm\learning\1\11.py", line 158, in <module> n.train(train_input) File "D:\PyCharm\learning\1\11.py", line 135, in train inputs = j[0:self.num_in - 1] TypeError: 'float' object is not subscriptable
这个错误是因为你试图对一个浮点数对象进行下标操作,但是浮点数对象是不可被下标的。根据你提供的代码,错误发生在第135行,这行代码尝试对一个名为`j`的浮点数对象进行下标操作。可能是在这之前的代码逻辑有问题,导致`j`被赋值为一个浮点数。你可以检查一下第135行之前的代码,看看是否有地方将`j`赋值为了一个浮点数。