Pandas DataFrame调用sort_values传ignore_index参数报错排查
报错产生原因
sort_values() 方法的 ignore_index 参数是 Pandas 1.0.0 版本才新增的入参,触发该报错的根本原因是当前运行环境安装的 Pandas 版本低于 1.0.0,旧版本方法未定义该关键字参数,传入后就会抛出参数不识别的 TypeError。
触发报错的示例代码
print(df.sort_values(by='EmpCount',ascending=True,ignore_index=True))
可行解决建议
- 方案一:升级 Pandas 版本到 1.0.0 及以上
根据自身使用的包管理工具执行对应升级命令即可:- pip 环境执行:
pip install --upgrade pandas - conda 环境执行:
conda update pandas
升级完成后原有代码可直接运行,排序完成后会自动将DataFrame的索引重置为从0开始的连续整数,不会保留排序前的旧索引。
- pip 环境执行:
- 方案二:无法升级版本时的兼容写法
移除代码中的ignore_index参数,在排序操作后链式调用reset_index()方法实现完全一致的效果,修改后代码如下:
注意调用print(df.sort_values(by='EmpCount', ascending=True).reset_index(drop=True))reset_index()时必须传入drop=True,否则原索引会被作为单独的一列存入DataFrame,和ignore_index=True的运行效果存在差异。
内容的提问来源于stack exchange,提问作者Alok
相关产品推荐
相关产品推荐

