在df中,我有一些列的答案在4点Likert量表上,我需要反转,这意味着我需要翻转该列每行的值:4->1、2->3、3->2、4->1
我试过这个:
questDay1Df.loc[questDay1Df['STAI_State_01'] == 4] = 1
questDay1Df.loc[questDay1Df['STAI_State_01'] == 3] = 2
questDay1Df.loc[questDay1Df['STAI_State_01'] == 2] = 3
questDay1Df.loc[questDay1Df['STAI_State_01'] == 1] = 4
问题是,由于它不在同一个命令中,所以这些行当然是分开运行的。例如,如果在下一行中将3更改为2,则它将再次更改为3。有什么想法可以防止这个问题/如何编写一个同时执行所有这些条件更改的命令吗?
提前非常感谢!
您可以使用.replacement((,但我认为这个解决方案更有趣:(
questDay1Df['STAI_State_01'] = np.abs(questDay1Df['STAI_State_01'] - 5)
.replace()
可能性适用范围更广:
questDay1Df['STAI_State_01'] = questDay1Df['STAI_State_01'].replace({
1: 4,
2: 3,
3: 2,
4: 1,
})