为啥在带有字符串和 NaN 的系列上得到“TypeError:'float' 类型的参数不可迭代”?
Posted
技术标签:
【中文标题】为啥在带有字符串和 NaN 的系列上得到“TypeError:\'float\' 类型的参数不可迭代”?【英文标题】:Why do get a "TypeError: argument of type 'float' is not iterable" on a series with strings and NaN?为什么在带有字符串和 NaN 的系列上得到“TypeError:'float' 类型的参数不可迭代”? 【发布时间】:2021-07-30 15:03:44 【问题描述】:对于包含字符串和 NaN 值的系列,为什么series.apply(not_happy)
其中 not_happy 定义为:
def not_happy(element):
if 'subtring' in element:
return True
else:
return False
给出错误"TypeError: argument of type 'float' is not iterable"
【问题讨论】:
你的系列的 dtype 是什么?字符串(对象)类型?如果是,请查看您的系列是否包含任何 NaN 值。 NaN 值在 Pandas 中被认为是浮点类型。 series.value_counts() 给出了“dtype: int64”,但我可以看到 NaN(我现在理解它的一种浮点数)和字符串。 【参考方案1】:您应用函数的系列中的一个值不是 str 类型,或者您可能缺少一些值。
【讨论】:
【参考方案2】:检查元素的数据类型。
def not_happy(element):
if 'subtring' in str(element):
return True
else:
return False
这将使您的元素字符串类型和工作。
【讨论】:
在这里使用isinstance(element, str)
会更合适。
这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review以上是关于为啥在带有字符串和 NaN 的系列上得到“TypeError:'float' 类型的参数不可迭代”?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在使用 Nginx 和 Gunicorn 的 Django 应用程序上得到 502 Bad Gateway?
为啥我的输出总是以 NaN 的形式出现,我期待输出作为我的系列数据?