【问题标题】:FutureWarning: The behavior of `series[i:j]` with an integer-dtype index is deprecatedFutureWarning:不推荐使用具有整数类型索引的 `series[i:j]` 的行为
【发布时间】:2023-01-10 00:15:43
【问题描述】:

在执行操作时:

y_test = y_test[:-2]

我收到以下警告:

FutureWarning:series[i:j] 具有整数类型索引的行为已弃用。在未来的版本中,这将被视为基于标签索引,与例如一致series[i]查找。要保留旧行为,请使用 series.iloc[i:j]。要获得未来的行为,请使用series.loc[i:j]

我必须使用 y_test.loc[:-2] 而不是 y_test[:-2] 吗?那会表现出​​相同的行为吗?

【问题讨论】:

  • 就试一试吧。编程基本上是一种即试即试的方法。
  • 正如警告所解释的那样,这取决于您想要什么。听起来你想要loc,但 Pandas 鼓励你把它具体化,因为它是模棱两可的
  • y_test.loc[:-2] 应该适用于这种情况。

标签: python python-3.x pandas jupyter-notebook jupyter


【解决方案1】:

Pandas 开发人员似乎计划删除 Series 对象的惰性索引,可能使其与必须使用 .loc.iloc 以避免沿列轴索引的 DataFrame 对象一致。你不需要使用新行为,直到您计划使用不支持 Series 对象的这种索引方法的 Pandas 版本,尽管您将继续看到 FutureWarning

作为附加说明,PyCharm 2022.1.1 及更早版本在其 pydev 帮助程序中使用了此已弃用的逻辑。我还没有测试最新版本以查看它是否已被删除。

【讨论】:

  • 截至 2022 年 12 月,它仍然存在于 PyCharm 2022.3 中
  • 使用 Python 控制台和科学模式时,使用 Series.iteritems 而不是新首选的 Series.items 是正确的。
【解决方案2】:

首先,将其转换为数组然后尝试。作为:

y_test = y_test.to_numpy()

y_test = y_test[:-2]

【讨论】:

    猜你喜欢
    • 2021-05-29
    • 2019-03-06
    • 2019-04-14
    • 2019-02-07
    • 2019-02-06
    • 2021-03-02
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    相关资源
    最近更新 更多