Home > database >  Multiply only positive values within a column by 100
Multiply only positive values within a column by 100

Time:12-12

Any values greater than 0 should be multiplied by 100.

Example dataset:

df = pd.DataFrame({'col1': ['A','B','C'], 'col2':[-0.42,0.091,0.0023], 'col3': [30, 10,20]})

   col1     col2   col3
0     A    -0.42     30
1     B    0.091     10
2     C   0.0023     20

Expected outcome for col2 would look like this:

   col1     col2   col3
0     A    -0.42     30
1     B      9.1     10
2     C     0.23     20

Not sure how to tackle this one if anyone can provide coding or guidance using python/pandas

CodePudding user response:

Use loc indexing:

df.loc[df['col2'] > 0, 'col2'] *= 100
print(df)

# Output:
  col1  col2  col3
0    A -0.42    30
1    B  9.10    10
2    C  0.23    20

CodePudding user response:

You can do like this:

df['col2'] = [row['col2'] if row['col2']<0 else row['col2']*100 for i,row in df.iterrows()]

CodePudding user response:

You can use np.where() to select 1 for each value if it's less than 0, and 100 for values greater than 0, and multiple the column by the resulting array:

df['col2'] *= np.where(df['col2'] > 0, 100, 1)

Output:

>>> df
  col1  col2  col3
0    A -0.42    30
1    B  9.10    10
2    C  0.23    20
  • Related