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:
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:
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:
Publicación traducida automáticamente
Artículo escrito por parasmadan15 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA