numpy 在一定范围内使用python进行重新编码

xpszyzbs  于 2022-11-10  发布在  Python
关注(0)|答案(1)|浏览(136)

我想将数值重新编码为类别1到4。当运行最后一个条件时,它会将所有先前重新编码的值转换为4。我如何在一系列值上重新编码?

df2['col1'] = np.where(df2['col1'] < -1.27, 1,df2['col1'].values)
df2['col1'] = np.where(  (df2['col1'] >= -1.27) & (df2['col1'] < -0.74), 2,df2['col1'].values )
df2['col1'] = np.where(  (df2['col1'] >= -0.74) & (df2['col1'] < -0.075), 3,df2['col1'].values)
df2['col1'] = np.where((df2['col1'] >= -0.075) , 4, df2['col1'].values)
4ioopgfo

4ioopgfo1#

只需确保最后一次比较不包括您已经赋值的值。

df2[df2['col1'] < -1.27] = 1
df2[(df2['col1'] >= -1.27) & (df2['col1'] < -0.74)] = 2
df2[(df2['col1'] >= -0.74) & (df2['col1'] < -0.075)] = 3
df2[(df2['col1'] >= -0.075) & (df2['col1'] < 1)] = 4

如果您的数据实际上包含正值,则必须为新列赋值。

相关问题