Pandas将正数转换为1,将负数转换为-1

问题描述 投票:3回答:3

我有一列正面和负面的数字。如何将此列转换为新列以实现将正数转换为1而将负数转换为-1?

python pandas
3个回答
7
投票

你需要numpy.sign

df['new'] = np.sign(df['col'])

样品:

df = pd.DataFrame({ 'col':[-1,3,-5,7,1,0]})
df['new'] = np.sign(df['col'])
print (df)

   col  new
0   -1   -1
1    3    1
2   -5   -1
3    7    1
4    1    1
5    0    0

3
投票
df[df < 0] = -1
df[df > 0] = 1

//no behaviour defined for df = 0

3
投票

通过以下方式执行此任务非常容易 -

对于整个数据框架 -

    df[df < 0] = -1
    df[df > 0] = 1

对于特定列 -

   df['column_name'][df['column_name'] < 0] = -1
   df['column_name'][df['column_name'] > 0] = 1
© www.soinside.com 2019 - 2024. All rights reserved.