如何遍历DataFrame每行文本计算positivity值并新增对应存储列
假设你的DataFrame变量名为df,存储文本的列名为content(如果你的实际列名不同,替换成对应名称即可),可以用以下两种方式实现:
方案1:批量处理(优先推荐,运算效率更高)
直接将整列文本一次性传入模型预测,避免逐行循环的性能损耗:
# 取出所有文本转为列表 text_list = df['content'].tolist() # 批量处理文本 seq = tokenizer.texts_to_sequences(text_list) seq = pad_sequences(seq, maxlen=maxlen) # 批量预测 predictions = model.predict(seq) # 把预测结果扁平化后存入新列positivity df['positivity'] = predictions.flatten()
方案2:逐行apply处理(适合小数据量,写法更简洁)
如果你数据量不大,可以用pandas的apply方法逐行计算:
def calc_positivity(text): seq = tokenizer.texts_to_sequences([text]) seq = pad_sequences(seq, maxlen=maxlen) prediction = model.predict(seq, verbose=0) # 关闭预测日志输出 return prediction[0][0] # 按实际返回的数组维度调整取值逻辑 df['positivity'] = df['content'].apply(calc_positivity)
注意:如果你的模型返回的prediction维度和示例不同,需要自行调整取值逻辑,保证最终存入列的是单值即可。
内容的提问来源于stack exchange,提问作者YanRemes
相关产品推荐
相关产品推荐

