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