DataFrame循环将信息写入特定的列和行

DataFrame write information to specific column and row in a loop

我是 Pandas 的新手,想了解如何通过循环读取然后写入 DataFrame 行。

输入信息

Index lemmatized_text MulNB
1     item inexpens   NaN
2     overall exper   NaN
3     screen n't co   NaN
4     screen not co   NaN
5     've view nume   NaN

创建 pandas 数据框

df10 = pd.DataFrame(data, columns = ['MulNB', 'lemmatized_text'])

尝试循环遍历信息的代码:

for i in range(1,len(df10)):
    test=df10['lemmatized_text'].loc[i]
    df10['MulNB'].loc[i]=model.predict(vec.transform(test))
    i+=1

目前它迭代到第 10 行然后停止并显示以下内容:

感谢您对此提供的任何帮助。

您可以使用 apply:

而不是循环
df10['MulNB'] = df10['lemmatized_text'].apply(lambda test: model.predict(vec.transform([test])))

但话又说回来,使用列表推导式可能更有效。

df10['MulNB'] = [model.predict(vec.transform([test])) for test in df10['lemmatized_text']]

我不知道你的模型是如何建立的,但如果它是一个文本挖掘模型,我认为它应该被矢量化:

df10['MulNB'] = model.predict(vec.transform(df10['lemmatized_text']))

为了 update/iterate Pandas Dataframe 中的行,我建议您查看 Pandas 提供的 iterrows()

for i, row in df10.iterrows():
    test = df10.loc[i,'lemmatized_text']
    df10.loc[i,'MulNB'] = model.predict(vec.transform(test))

其他替代方法是使用列表理解。