如何在Python中将Likert比例响应转换为数字响应



我发了一份谷歌表格问卷,在选择的问题中我使用了Likert量表。如何最好地将其转换为数值,以便在我想要尝试的逻辑回归中有用?我已经通过替换函数将其他列转换为数字列。我的数据集现在看起来是这样的:

Q2Q3Q5有点同意>//tr>强烈不同意<1>有点同意
数据 Q1Q4
1 0中立有点不同意3
2 3 强烈同意中立
3 1 中立强烈不同意2

一个选项是replace和替换dict:

replacer = {'Strongly Disagree': 1, 'Somewhat Disagree': 2,
'Neutral': 3,
'Somewhat Agree': 4, 'Strongly Agree': 5}
# Select String Columns
cols = df.columns[df.dtypes == 'object']
# Replace Values in those Columns
df[cols] = df[cols].replace(replacer)

df:

Data  Q1  Q2  Q3  Q4  Q5
0     1   0   4   3   2   3
1     2   3   5   1   3   1
2     3   1   3   4   1   2

备选方案选择选项:

带切片的loc

df.loc[:, 'Q2':'Q4'] = df.loc[:, 'Q2':'Q4'].replace(replacer)

显式列选择:

cols = ['Q2', 'Q3', 'Q4']
df[cols] = df[cols].replace(replacer)

最新更新