栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas apply自觉无误却一直报类型相关错误的可能原因 XX is not subscriptable/iterable

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas apply自觉无误却一直报类型相关错误的可能原因 XX is not subscriptable/iterable

先说结论

pandas内空值nan的类型是float,apply因为类型出bug大概率就是有脏数据或者空值没处理好!!!

Background

我在做的一个影片数据的分析,genre列是一组以list为元素,list里的内容是该影片的电影题材标签。

我准备apply一下拿到column里每个列表的题材类型,但是一直报错,明明是list呀,为什么提醒我float对象的bug呢?
我以为是因为dataframe中该列的dtype是object所以才出现此类型错误,然而!pandas是无法将column的dtype设置为list的,所有问题还是出在该列的元素上。

于是我用isinstance找了一下非列表类型的元素,果然!pandas的空值类型不是null,实际上是float!

于是我在apply里加了个判断,对nan不做处理,else就直接输出原数据(我是准备后续清洗时统一drop掉,大家按自己需求处理)

pd.Dataframe(train.genres.apply(lambda row:get_genres(row) if isinstance(row,list) else row))

结果就正常出来了!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/350847.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号