在不同条件下更改df中的列值/在4点刻度上反转答案

2024-09-20 03:48:03 发布

您现在位置:Python中文网/ 问答频道 /正文

在df中,我有一些列带有4点Likert标度的答案,我需要反转,这意味着我需要翻转该列每行中的值:4->;1,2->;3,3->;2,4->;一,

我试过这个:

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。有没有办法防止这个问题/如何编写一个命令,一次完成所有这些条件更改

提前非常感谢


Tags: 答案命令gt示例df条件locstate
1条回答
网友
1楼 · 发布于 2024-09-20 03:48:03

您可以使用.replace(),但我认为这个解决方案更有趣:)

questDay1Df['STAI_State_01'] = np.abs(questDay1Df['STAI_State_01'] - 5)

{}可能性更广泛地适用于:

questDay1Df['STAI_State_01'] = questDay1Df['STAI_State_01'].replace({
    1: 4, 
    2: 3, 
    3: 2, 
    4: 1,
})

相关问题 更多 >