Pandas - 使用另一列中的相应值替换所有列中的特定值

时间:2015-11-03 22:04:24

标签: python python-2.7 pandas machine-learning

我有一个Pandas中分类数据的特征向量(虚拟)数据帧,我在该数据帧上附加了一个'rating'列,表示从1到10的连续数据。如何替换所有列中的所有1除了“评级”列以及相应的“评级”列值?

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

2 个答案:

答案 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)