Saltar al contenido

Pandas – Groupby con fórmula condicional

La guía paso a paso o código que encontrarás en este artículo es la resolución más eficiente y válida que hallamos a tu duda o problema.

Solución:

Una manera fácil de agrupar eso es usar la suma de esas dos columnas. Si alguno de ellos es positivo, el resultado será mayor que 1. Y groupby acepta un valor arbitrario array siempre que la longitud sea la misma que la del DataFrame, por lo que no necesita agregar una nueva columna.

family = np.where((df['SibSp'] + df['Parch']) >= 1 , 'Has Family', 'No Family')
df.groupby(family)['Survived'].mean()
Out: 
Has Family    0.5
No Family     1.0
Name: Survived, dtype: float64

Use solo una condición si nunca valores en columnas SibSp y Parch son menos como 0:

m1 = (df['SibSp'] > 0) | (df['Parch'] > 0)

df = df.groupby(np.where(m1, 'Has Family', 'No Family'))['Survived'].mean()
print (df)
Has Family    0.5
No Family     1.0
Name: Survived, dtype: float64

Si es imposible, use primero use ambas condiciones:

m1 = (df['SibSp'] > 0) | (df['Parch'] > 0)
m2 = (df['SibSp'] == 0) & (df['Parch'] == 0)
a = np.where(m1, 'Has Family', 
    np.where(m2, 'No Family', 'Not'))

df = df.groupby(a)['Survived'].mean()
print (df)
Has Family    0.5
No Family     1.0
Name: Survived, dtype: float64

Sección de Reseñas y Valoraciones

Más adelante puedes encontrar las observaciones de otros gestores de proyectos, tú igualmente tienes el poder dejar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *