¿Cómo listar valores para cada grupo de pandas?

En este artículo, veremos cómo podemos mostrar todos los valores de cada grupo en el que se divide un marco de datos. El dataframe primero se divide en grupos usando el método DataFrame.groupby() . Luego lo modificamos para que cada grupo contenga los valores en una lista.

Primero, vamos a crear un marco de datos:

Python3

# import pandas library
import pandas as pd
  
# create a dataframe
df = pd.DataFrame({'a': ['A', 'A', 'B',
                          'B', 'B', 'C',
                          'C', 'D'], 
                    'b': [1, 2, 5,
                          3, 5, 4,
                          8, 6]})
# show the dataframe                  
df

Producción:

Dataframe

Método 1: usar DataFrame.groupby()  y Series.apply() juntos.
Ejemplo: crearemos listas de todos los valores de cada grupo y las almacenaremos en una nueva columna llamada «valores de lista».

Python3

# import pandas library
import pandas as pd
  
# create a dataframe
df = pd.DataFrame({'a': ['A', 'A', 'B',
                          'B', 'B', 'C',
                          'C', 'D'], 
                    'b': [1, 2, 5,
                          3, 5, 4,
                          8, 6]})
                   
# convert values of each group
# into a list
groups = df.groupby('a')['b'].apply(list)
  
print(groups)
  
# groups store in a new 
# column called listvalues
df1 = groups.reset_index(name 
                         = 'listvalues')
# show the dataframe
df1

Producción:

Group into list

Método 2: Usar DataFrame.groupby()  y  Series.agg() .

Ejemplo: Usamos la función lambda dentro de Series.agg() para convertir todos los valores de un grupo en una lista.

Python3

# import pandas library
import pandas as pd
  
# create a dataframe
df = pd.DataFrame( {'a': ['A', 'A', 'B',
                         'B', 'B', 'C', 
                         'C', 'D'], 
                    'b': [1, 2, 5, 
                         3, 5, 4,
                         8, 6]}
                 )
# convert values of each group
# into a list
groups = df.groupby('a').agg(lambda
                             x: list(x))
  
print(groups)

Producción:

Group into list

Publicación traducida automáticamente

Artículo escrito por parasmadan15 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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