类型错误:“ float”对象不可迭代

时间:2020-07-01 18:32:20

标签: pandas

df ['emp_years']列的o / p为:-

   NaN

 < 1 year 

  3 years

 10+ years

 10+ years

         ...    

 9 years

10+ years

  1 year

 3 years

 3 years

名称:emp_years,长度:10000,dtype:对象

现在我何时尝试在此列上实现此功能

def change(col):
    for x in col:
        print(x)

        
df['emp_years'].apply(change)

我收到类型错误TypeError:“ float”对象不可迭代 有人可以告诉我如何解决这个问题

2 个答案:

答案 0 :(得分:0)

当该列中有NaN值时,通常会出现此错误。当您尝试访问/打印NaN值时,会出现此错误消息。我建议您稍微清理一下数据。一种解决方案是删除该列的NaN值。为此,请使用df.dropna(subset=['emp_years'])。我不知道您是否更改了某些数据类型,但我建议您这样做,下次再提供有关数据集的更多信息或提供一些指向您代码的链接,以便我们可以更好地理解此问题。 祝您编码愉快!

答案 1 :(得分:0)

您应该考虑使用向量化。

按照熊猫文档https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.itertuples.html#pandas.DataFrame.itertuples

所述,查看df.iterrows()df.itertuples()