Cualquier valor mayor que 0 debe multiplicarse por 100.
Conjunto de datos de ejemplo:
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 20El resultado esperado para col2 se vería así:
col1 col2 col3 0 A -0.42 30 1 B 9.1 10 2 C 0.23 20No estoy seguro de cómo abordar este si alguien puede proporcionar codificación u orientación usando python/pandas
Usa loc :
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 20Puede usar np.where() para seleccionar 1 para cada valor si es menor que 0 y 100 para valores mayores que 0, y multiplique la columna por la matriz resultante:
df['col2'] *= np.where(df['col2'] > 0, 100, 1)Producción:
>>> df col1 col2 col3 0 A -0.42 30 1 B 9.10 10 2 C 0.23 20Puedes hacer esto:
df['col2'] = [row['col2'] if row['col2']<0 else row['col2']*100 for i,row in df.iterrows()]