xxyao
xxyao

Reputation: 549

Pandas convert positive number to 1 and negative number to -1

I have a column of positive and negative number. How to convert this column to a new column to realize convert positive number to 1 and negative number to -1?

Upvotes: 8

Views: 10544

Answers (3)

Vj-
Vj-

Reputation: 722

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

no behaviour defined for df == 0

Upvotes: 3

Abhishek Patel
Abhishek Patel

Reputation: 182

It's really easy to perform this task by -

For whole data frame -

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

For specific column -

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

Upvotes: 4

jezrael
jezrael

Reputation: 862611

You need numpy.sign

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

Sample:

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

Upvotes: 16

Related Questions