运行SVR模型时出现了pandas.errors.IndexingError的报错,最后的解决方法

这个是当时出现的报错
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了

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值