Saltar al contenido

Pandas groupby para valores cero

Esta noticia ha sido evaluado por nuestros expertos para que tengas la garantía de la exactitud de este escrito.

Solución:

Puedes usar esto:

df = df.groupby(['Symbol','Year']).count().unstack(fill_value=0).stack()
print (df)

Producción:

             Action
Symbol Year        
AAPL   2001       2
       2002       0
BAC    2001       0
       2002       2

Puedes usar pivot_table con unstack:

print df.pivot_table(index='Symbol', 
                     columns='Year', 
                     values='Action',
                     fill_value=0, 
                     aggfunc='count').unstack()

Year  Symbol
2001  AAPL      2
      BAC       0
2002  AAPL      0
      BAC       2
dtype: int64

Si necesita una salida como DataFrame usar to_frame:

print df.pivot_table(index='Symbol', 
                     columns='Year', 
                     values='Action',
                     fill_value=0, 
                     aggfunc='count').unstack()
                                     .to_frame()
                                     .rename(columns=0:'Action')

             Action
Year Symbol        
2001 AAPL         2
     BAC          0
2002 AAPL         0
     BAC          2

Tienes la opción de secundar nuestra labor fijando un comentario o valorándolo te damos la bienvenida.

¡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 *