首页 > 解决方案 > 为什么在使用应用 lambda 时出现错误“浮动”对象不可迭代

问题描述

我尝试将中国省份列表转换为拼音使用拼音包,代码如下:

df['province'] = df['comb_province'].apply(lambda x: pinyin.get(x, format="strip", delimiter=''))

但我收到一条错误消息:'float' 对象不可迭代。为什么会发生这种情况?我该如何解决?

谢谢!

标签: pythonlambdaapplypinyin

解决方案


您可能已经遇到过df["comb_province"] 列中的值numpy.nan或值。None因此,您可以尝试使用以下代码使用 numpy.nan 删除这些行:

df = df[~df["comb_province"].isnull()]

或者,如果您希望使用 numpy.nan 或 None 保留行,则使用以下命令:

df["comb_province"] = df["comb_province"].astype(str)

您的原始代码可能是stripor split,与字符串操作相关的内容,在遇到 numpy.nan 或 None 时会抛出错误。


推荐阅读