pandas 错误提醒:FutureWarning: elementwise comparison failed;

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas 错误提醒:FutureWarning: elementwise comparison failed;相关的知识,希望对你有一定的参考价值。

参考技术A

在数据处理时,对原始数据进行筛选操作,在不注意情况下,会引发 FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison 警告,究其根本原因就是在进行筛选时,对不同类型进行了比较,导致返回错误的结果

可以看出, 字段5 是有2个 7 ,现在想筛选出包含 7 的行

在进行筛选时,对列进行比较,引发错误提醒, FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison ,导致没有筛选出结果

由于在筛选时用的是逻辑索引,可以先看看逻辑索引结果

可以看出,逻辑索引结果均为 False ,所以没有成功筛选出数据,由于模拟的数据量比较小,咱们基本一眼就能看出问题所在,那就是在进行比较时, 字段5 的类型明显为 数值型 ,而在进行比较时用的是 字符型 ‘7’ ,所以导致引发错误提醒,当在进行大量数据操作时,这种错误可能会很难发现

先进行类型转换,然后再进行比较,即可得出正确的结果

我们在进行大数据操作时,一定要对数据类型进行确认,并且是 真实的数据类型 ,至于为什么是真实的数据类型,详情可参考历史文章

已解决FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future


已解决(pandas中DataFrame数据拼接报错)FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead. df = df1.append(df2)






文章目录






报错代码



在pandas模块中,通常我们都需要对类型为DataFrame的数据进行操作,其中最为常见的操作便是拼接了。比如我们将两个Excel表格中的数据读入,随后拼接完成后保存进一个新的Excel表格文件中。

粉丝群里面的一个小伙伴使用.append()方法拼接DataFrame数据,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的小伙伴),报错代码如下:


import pandas as pd

df1 = pd.DataFrame([[1, 2], [3, 4]])
df2 = pd.DataFrame([[5, 6], [7, 8]])

df = df1.append(df2)

print("df1的值为:")
print(df1)
print("df2的值为:")
print(df2)
print("df的值为:")
print(df)


报错信息内容如下







报错翻译



报错信息翻译

未来警告:框架。append方法已弃用,将在未来版本中从Panda中删除。使用熊猫。而是康卡特。instead。




报错原因



报错原因


由于Python pandas模块版本的更替,之后的版本会弃用append方法,小伙伴们修改为下面的语句拼接DataFrame数据即可!!!



解决方法



使用.concat()方法拼接DataFrame数据,案例代码如下:

import pandas as pd

df1 = pd.DataFrame([[1, 2], [3, 4]])
df2 = pd.DataFrame([[5, 6], [7, 8]])

df = pd.concat([df1, df2], ignore_index=True)

print("df1的值为:")
print(df1)
print("df2的值为:")
print(df2)
print("df的值为:")
print(df)

运行结果如下:



以上是此问题报错原因的解决方法,欢迎评论区留言讨论是否能解决,如果有用欢迎点赞收藏文章谢谢支持,博主才有动力持续记录遇到的问题!!!

千人全栈VIP答疑群联系博主帮忙解决报错

由于博主时间精力有限,每天私信人数太多,没办法每个粉丝都及时回复,所以优先回复VIP粉丝,可以通过订阅限时9.9付费专栏《100天精通Python从入门到就业》进入千人全栈VIP答疑群,获得优先解答机会(代码指导、远程服务),白嫖80G学习资料大礼包,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html

  • 优点作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会),此专栏文章是专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试!

  • 专栏福利简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等

  • 注意:如果希望得到及时回复,订阅专栏后私信博主进千人VIP答疑群

免费资料获取,更多粉丝福利,关注下方公众号获取

以上是关于pandas 错误提醒:FutureWarning: elementwise comparison failed;的主要内容,如果未能解决你的问题,请参考以下文章

从 Pandas 聚合中重命名结果列(“FutureWarning:不推荐使用带有重命名的字典”)

FutureWarning: pandas.Int64Index is deprecated and will be removed ... in a future version. 解决方法

FutureWarning: pandas.Int64Index is deprecated and will be removed ... in a future version. 解决方法

Pandas FutureWarning:字符的列迭代将在未来版本中被弃用

已解决FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future

为啥我得到这个错误结果=方法(y)FutureWarning:元素比较失败;而是返回标量