Tengo un Pandas DataFrame
con cuatro columnas, A, B, C, D
. Resulta que, a veces, los valores de B
y C
pueden ser 0
. Por ello, deseo obtener lo siguiente:Pandas DataFrame Aplicar
B[i] = B[i] if B[i] else min(A[i], D[i])
C[i] = C[i] if C[i] else max(A[i], D[i])
donde he utilizado i
para indicar una carrera en todas las filas de la trama. Con las pandas es fácil encontrar las filas que contienen cero columnas:
df[df.B == 0] and df[df.C == 0]
sin embargo no tengo idea de cómo llevar a cabo fácilmente la transformación anterior. Puedo pensar en varios métodos ineficientes y poco eficientes (for
bucles en todo el fotograma) pero nada simple.
Bastante limpio. Sin embargo, creo que puedes salirte con '.max (axis = 1)' en lugar de 'apply (...)'. –
'max()' está bien también, por supuesto, creo que tengo un sesgo hacia 'aplicar' por la forma en que hizo la pregunta :-) –