Crear una columna con condiciones If-Else-Else en Pandas
Para crear una nueva columna basada en una condición if-elif-else , hay dos enfoques principales:
Enfoque no vectorizado
Este enfoque implica definir una función que opera en filas:
def f(row):
if row['A'] == row['B']:
val = 0
elif row['A'] > row['B']:
val = 1
else:
val = -1
return val
Luego, aplíquelo al marco de datos a lo largo de las filas:
df['C'] = df.apply(f, axis=1)
Enfoque vectorizado
El enfoque vectorizado utiliza np.where para crear la nueva columna directamente:
df['C'] = np.where(
df['A'] == df['B'], 0, np.where(
df['A'] > df['B'], 1, -1))
Este enfoque es más eficiente para conjuntos de datos grandes.
Aquí hay un ejemplo que utiliza el marco de datos proporcionado:
Marco de datos de entrada
A | B |
---|---|
2 | 2 |
3 | 1 |
1 | 3 |
Marco de datos de salida
A | B | C |
---|---|---|
2 | 2 | 0 |
3 | 1 | 1 |
1 | 3 | -1 |
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3