python 修复了未来警告的索引

2ic8powd  于 2022-12-17  发布在  Python
关注(0)|答案(4)|浏览(186)

只是得到这个新的警告,我的数据框是从Excel加载。
我知道如果我使用pd.dataframe,我可以设置索引,但是当我从文件加载时,我不清楚如何设置dataframe索引类型。
C:\python\python38\库\站点包\geopandas\io\文件。py:362:未来警告: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'])
dsekswqp

dsekswqp1#

我在本地机器上训练XGBoostClassifier时也遇到过同样的问题。
根据这个link,我把我的XGBoost从1.5.1升级到1.6.1,所有这样的警告都消失了。
要升级版本,您可能首先需要使用卸载当前的XGBoost包
pip3卸载xgboost
接下来,使用重新安装XGBoost
pip3安装xgboost

yzuktlbb

yzuktlbb2#

警告仅仅是通过导入xgboost产生的。没有明显的方法来停止警告,除非你使用“警告”库显式地抑制它们。
有趣的是,只有在使用特定的Int64Index方法时才会产生警告,而不是等效的对象。我认为除非你使用这个方法,否则你不必担心问题。

ugmeyewa

ugmeyewa3#

我发现这个警告来自xgboost compat.py。我注解掉了multiindex和index64index的导入部分警告消失了
原因可能是panda新版本中的弃用在xgboost中没有考虑到,即使是最新版本。

bhmjp9jg

bhmjp9jg4#

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

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

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

相关问题