我有一个Pandas中分类数据的特征向量(虚拟)数据帧,我在该数据帧上附加了一个'rating'列,表示从1到10的连续数据。如何替换所有列中的所有1除了“评级”列以及相应的“评级”列值?
我在多元线性回归模型中使用此功能。这是一个好习惯吗?在机器学习/统计分析概念中,这种方法会被称为什么?
答案 0 :(得分:0)
你可以通过将假人dataframe
乘以评级栏来实现这一点 - 假设我理解正确 - 试试这个:
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/
上发帖答案 1 :(得分:0)
你可以做到
df = df.apply(lambda row: row.replace(1, row['rating']), axis=1)