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

有时候在迭代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只能用于可以迭代的类型。所以就导致了上面的错误。这种细微的错误也是很糟心啊!

【题外话】

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

                                            

                                                                                      

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值