我发了一份谷歌表格问卷,在选择的问题中我使用了Likert量表。如何最好地将其转换为数值,以便在我想要尝试的逻辑回归中有用?我已经通过替换函数将其他列转换为数字列。我的数据集现在看起来是这样的:
数据 | Q1 | Q2Q3Q4 | Q5||
---|---|---|---|---|
1 | 0 | 有点同意中立 | >有点不同意 | 3 | //tr>
2 | 3 | 强烈同意 | 强烈不同意中立 | <1>|
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)