pandas.Int64Index 修复 FutureWarning

问题描述 投票:0回答:5

刚刚为我从 excel 加载的数据框收到这个新警告。

我知道如果我要 pd.DataFrame 我可以设置索引,但是我不清楚从文件加载时如何设置数据帧索引类型。

C:\python\python38\lib\site-packages\geopandas\io ile.py:362: FutureWarning: pandas.Int64Index 已弃用,将在未来版本中从 pandas 中删除。使用 pandas.Index 和适当的 dtype 代替。

课堂摘录:

xls = pd.ExcelFile('C:/QGISwork/generic_templates/fielddbtemplate_db.xlsx')
        self.header = xls.parse('generic', header = None)
        self.df = xls.parse('generic', skiprows=4, index_col=0, na_values=['NA'])
python excel pandas dataframe
5个回答
9
投票

我在本地机器上训练

XGBoostClassifier
时遇到了同样的问题。

按照这个链接,我将我的 XGBoost 从

1.5.1
升级到
1.6.1
,所有这些警告都消失了。

要升级版本,您可能首先需要使用卸载当前的 XGBoost 包

pip3 卸载 xgboost

接下来,使用重新安装XGBoost

pip3 安装 xgboost


2
投票

警告仅通过导入 xgboost 产生。除非您使用“警告”库明确禁止警告,否则没有明显的方法来停止警告。

有趣的是,警告仅在使用特定的 Int64Index 方法时生成,而不是等效对象。我认为除非您使用这种方法,否则您不必担心问题。


1
投票

我发现这个警告来自 xgboost compat.py 。我注释掉了 multiindex 和 index64index 的导入部分 警告消失
原因可能是 xgboost 甚至最新版本都没有考虑 pandas 新版本中的弃用。


1
投票

我发现避免此警告的最佳方法是先导入 pandas,然后导入 MultiIndex 和 Int16Dtype,然后再导入依赖于 Panda 索引的任何其他库。这就是我摆脱警告的方式。

import pandas as pd 
from pandas import MultiIndex, Int16Dtype
import xgboost as xgb

在我的例子中,需要索引引用的是 xgboost。在您的情况下,它可能是 geopandas 库。


0
投票

升级xgboost

pip install xgboost --upgrade

在 jupyter 实验室中:

!pip install xgboost --upgrade

我这样做了,问题就消失了

© www.soinside.com 2019 - 2024. All rights reserved.