【Python】【DataFrame】TypeError: argument of type 'float' is not iterable

本文探讨在处理DataFrame时遇到TypeError的问题,特别是在尝试移除特定字符并进行数值运算时。错误源于对浮点数使用了不可迭代的'in'操作。文章详细解释了错误原因,并提供了正确的数据类型转换方法。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

有时候在迭代Dataframe的时候会出来一个TypeError,感觉真的是莫名奇妙。比如针对下面这个数据,想把duration里面的字符’s‘去掉,运用下面的代码就报错了。

tempData
Out[12]: 
  duration  likes
0      2.3     89
1       3s     67
tempData.duration = tempData.duration.apply(lambda x:x.replace('s','')*10 if 's' in x else x)

TypeError: argument of type 'float' is not iterable

刚开始以为是dataframe里面的数据类型的原因,因为此时duration的dtype不是object,用下面的代码修改了数据类型结果还是报错。

data.duration = data.duration.astype('object')

后面其实也还是数据类型的原因,只是不是上面那个原因。出现这个问题的原因是 in ,我在代码里面用in判断了‘s'是否在字段里面,但是没有字符’s'的字段数据类型是float不能迭代,in只能用于可以迭代的类型。所以就导致了上面的错误。这种细微的错误也是很糟心啊!

【题外话】

我们从小就开始学英语,但是口语一直落后于我们的听力和阅读。今天给大家推荐一个实用口语课程,由外教中英双语授课,可以帮助我们摆脱中式口语的思维,又不用担心听不懂课程内容。因为是线上课程,可以永久的回看。

                                            

                                                                                      

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值