python - Pandas - 将所有列中的特定值替换为另一列中的相应值

标签 python python-2.7 pandas machine-learning

我在 Pandas 中有一个用于分类数据的特征向量(虚拟)数据框,并且我在该数据框中附加了一个“评级”列,它表示从 1 到 10 的连续数据。如何替换所有列中的所有 1除了具有相应“评级”列值的“评级”列?

我在我的多元线性回归模型中使用此功能。这是一个好的做法吗?在机器学习/统计分析概念中,这种方法被称为什么?

最佳答案

您可以通过将虚拟数据框乘以评级列来完成此操作 - 假设我正确理解您 - 试试这个:

import pandas as pd
# mock dataframe
df = pd.DataFrame( {'alpha':['a','a','b','b','c','e','f','g'],'rating':[1,3,5,7,1,5,10,1]})
# get dummies
df = pd.get_dummies(df)
# multiply dataframe by ratings 
df.ix[:, 1:].mul(df['rating'], axis=0)

输出:

    a   b   c   e   f   g
0   1   0   0   0   0   0
1   3   0   0   0   0   0
2   0   5   0   0   0   0
3   0   7   0   0   0   0
4   0   0   1   0   0   0
5   0   0   0   5   0   0
6   0   0   0   0   10  0
7   0   0   0   0   0   1

至于这是否有用——它是否改善了您用来评估模型的指标?也值得发布在 https://stats.stackexchange.com/

关于python - Pandas - 将所有列中的特定值替换为另一列中的相应值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33509961/

相关文章:

python - Pandas :时间序列数据:如何选择一小时或一天或一分钟的行?

python - 在 NumPy 中,如何在不使用 np.s_ 的情况下从一维数组中提取范围?

Python 错误 : PyThreadState_Get: no current thread after compiling an extension

python - 如何在 Python 中将包含几行的字符串转换为每个单元格包含一行的列表?

python - pycharm控制台如何查看某一列的更多行

python - 根据两列从得分最高的组中选择行

python - 我在将循环中生成的答案存储到不同的数组时遇到问题

python - 在第一个空行写入 CSV

python - 从另一个 Ansible 模块调用一个 Ansible 模块?

Python: Pandas 数据框在每行中分割字符串,偶尔有空行