pandas TypeError:'float'对象对于dataframe不可迭代

fhity93d  于 2023-03-21  发布在  其他
关注(0)|答案(1)|浏览(125)

为什么它是给'浮动'对象是不可迭代的错误?当我把嵌套循环?

text = []

for i in df['text']:

    string = ""
    for j in i:
        string += j
    text.append(string)

text[2]
63lcw9qa

63lcw9qa1#

@miepsik是对的,你可能在text列中有NaN。
可重现示例:

df = pd.DataFrame({'text': ['Hello', np.nan, 'World']})

text = []
for i in df['text']:
    string = ""
    for j in i:
        string += j
    text.append(string)

输出:

...
TypeError: 'float' object is not iterable

要调试 Dataframe 并查找NaN值,您可以用途:

>>> df.loc[df['text'].isna()]
  text
1  NaN

我所理解的是,你迭代字符串(i),然后循环每个字符(j)并创建一个列表。我不知道你的dataframe到底是什么样子的,但你可以用向量化函数优化你的代码,比如:

>>> df['text'].dropna().tolist()
['Hello', 'World']

相关问题