这个是当时出现的报错 Traceback (most recent call last): File "E:\ANACODNA\Lib\site-packages\IPython\core\interactiveshell.py", line 3526, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "C:\Users\psq\AppData\Local\Temp\ipykernel_28648\654163054.py", line 85, in <module> Ytrain = Ytrain.iloc[:,0].ravel() ~~~~~~~~~~~^^^^^ File "E:\ANACODNA\Lib\site-packages\pandas\core\indexing.py", line 1097, in __getitem__ # we should be able to match up the dimensionality here ^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\pandas\core\indexing.py", line 1594, in _getitem_tuple elif isinstance(key, tuple): ^^^^^^^^^^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\pandas\core\indexing.py", line 900, in _validate_tuple_indexer File "E:\ANACODNA\Lib\site-packages\pandas\core\indexing.py", line 939, in _validate_key_length If a tuple key includes an Ellipsis, replace it with an appropriate ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pandas.errors.IndexingError: Too many indexers During handling of the above exception, another exception occurred: Traceback (most recent call last): File "E:\ANACODNA\Lib\site-packages\IPython\core\interactiveshell.py", line 2120, in showtraceback stb = self.InteractiveTB.structured_traceback( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\IPython\core\ultratb.py", line 1435, in structured_traceback return FormattedTB.structured_traceback( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\IPython\core\ultratb.py", line 1326, in structured_traceback return VerboseTB.structured_traceback( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\IPython\core\ultratb.py", line 1173, in structured_traceback formatted_exception = self.format_exception_as_a_whole(etype, evalue, etb, number_of_lines_of_context, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\IPython\core\ultratb.py", line 1088, in format_exception_as_a_whole frames.append(self.format_record(record)) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\IPython\core\ultratb.py", line 970, in format_record frame_info.lines, Colors, self.has_colors, lvals ^^^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\IPython\core\ultratb.py", line 792, in lines return self._sd.lines ^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\stack_data\utils.py", line 145, in cached_property_wrapper value = obj.__dict__[self.func.__name__] = self.func(obj) ^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\stack_data\core.py", line 698, in lines pieces = self.included_pieces ^^^^^^^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\stack_data\utils.py", line 145, in cached_property_wrapper value = obj.__dict__[self.func.__name__] = self.func(obj) ^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\stack_data\core.py", line 649, in included_pieces pos = scope_pieces.index(self.executing_piece) ^^^^^^^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\stack_data\utils.py", line 145, in cached_property_wrapper value = obj.__dict__[self.func.__name__] = self.func(obj) ^^^^^^^^^^^^^^ File "E:\ANACODNA\Lib\site-packages\stack_data\core.py", line 628, in executing_piece return only( ^^^^^ File "E:\ANACODNA\Lib\site-packages\executing\executing.py", line 164, in only raise NotOneValueFound('Expected one value, found 0') executing.executing.NotOneValueFound: Expected one value, found 0
可以看出主要是pandas.errors.IndexingError: Too many indexers的问题
这个是我出问题的代码
Ytrain = Ytrain.iloc[:,0].ravel()
Ytest = Ytest.iloc[:,0].ravel()
我用Print(type(Ytrain))发现它的类型是Series(Ytest同样),这里需要将它的类型转变为DataFrame才可以
于是我用下面两行代码解决了这个问题
Ytrain = Ytrain.to_frame()
Ytest = Ytest.to_frame()
其实前面分割数据集时Xtrain和Xtest都是DataFrame,但是Y这边就变成Series了