python - 如何将 numpy 数组附加到 pandas 数据框

标签 python pandas numpy machine-learning scikit-learn

我训练了一个逻辑回归分类器来预测评论是正面的还是负面的。现在,我想将 predict_proba 函数返回的预测概率附加到包含评论的 Pandas 数据框中。我尝试做类似的事情:

test_data['prediction'] = sentiment_model.predict_proba(test_matrix)

显然,这行不通,因为 predict_proba 返回一个 2D-numpy 数组。那么,最有效的方法是什么?我使用 SciKit-Learn 的 CountVectorizer 创建了 test_matrix:

vectorizer = CountVectorizer(token_pattern=r'\b\w+\b')
train_matrix = vectorizer.fit_transform(train_data['review_clean'].values.astype('U'))
test_matrix = vectorizer.transform(test_data['review_clean'].values.astype('U'))

示例数据如下:

| Review                                     | Prediction         |                      
| ------------------------------------------ | ------------------ |
| "Toy was great! Our six-year old loved it!"|   0.986            |

最佳答案

将预测分配给一个变量,然后从变量中提取要分配给 pandas 数据帧 cols 的列。如果 x 是带有预测的二维 numpy 数组,

x = sentiment_model.predict_proba(test_matrix)

然后你可以做,

test_data['prediction0'] = x[:,0]
test_data['prediction1'] = x[:,1]

关于python - 如何将 numpy 数组附加到 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42314542/

相关文章:

python - 使用 NLTK 的数据集行的 POS 标签

python - 使用自举库查找自举置信区间

python - 在 2D numpy 矩阵中查找特定点距离 1 内的所有点

Python - 简单的 for 循环未按预期工作(使用请求模块)

python - Dill 使用 "load"时删除对象

python - 比较两个系列时,如何根据一个系列进行过滤?

python - 本地化 Pandas 日期时间索引时出现 NonExistentTimeError

python - 将列表转换为单独的数据框

python numpy减去作为矩阵的元素

python - 为什么向量化的 numpy 代码比 for 循环慢?