我在 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/