Combinando múltiples columnas en Pandas groupby con diccionario

Veamos cómo combinar múltiples columnas en Pandas usando groupby un diccionario con la ayuda de diferentes ejemplos.

Ejemplo 1:

# importing pandas as pd 
import pandas as pd 
  
# Creating a dictionary 
d = {'id':['1', '2', '3'],
     'Column 1.1':[14, 15, 16],
     'Column 1.2':[10, 10, 10],
     'Column 1.3':[1, 4, 5],
     'Column 2.1':[1, 2, 3],
     'Column 2.2':[10, 10, 10], }
  
# Converting dictionary into a data-frame 
df = pd.DataFrame(d)
print(df)

Producción:

# Creating the groupby dictionary 
groupby_dict = {'Column 1.1':'Column 1',
                'Column 1.2':'Column 1',
                'Column 1.3':'Column 1',
                'Column 2.1':'Column 2',
                'Column 2.2':'Column 2' }
  
# Set the index of df as Column 'id'
df = df.set_index('id')
  
# Groupby the groupby_dict created above 
df = df.groupby(groupby_dict, axis = 1).min()
print(df)

Producción:

Explicación

  • Aquí hemos agrupado la Columna 1.1, la Columna 1.2 y la Columna 1.3 en la Columna 1 y la Columna 2.1, la Columna 2.2 en la Columna 2.
  • Observe que la salida en cada columna es el valor mínimo de cada fila de las columnas agrupadas. es decir, en la Columna 1, el valor de la primera fila es el valor mínimo de la Columna 1.1 Fila 1, la Columna 1.2 Fila 1 y la Columna 1.3 Fila 1.

 
Ejemplo #2:

# importing pandas as pd 
import pandas as pd 
  
# Create dictionary with data 
dict = {
    "ID":[1, 2, 3],
    "Movies":["The Godfather", "Fight Club", "Casablanca"],
    "Week_1_Viewers":[30, 30, 40],
    "Week_2_Viewers":[60, 40, 80],
    "Week_3_Viewers":[40, 20, 20] };
  
# Convert dictionary to dataframe
df = pd.DataFrame(dict);
print(df)

Producción:

# Create the groupby_dict 
groupby_dict = {"Week_1_Viewers":"Total_Viewers",
           "Week_2_Viewers":"Total_Viewers",
           "Week_3_Viewers":"Total_Viewers",
           "Movies":"Movies" }
  
df = df.set_index('ID')
df = df.groupby(groupby_dict, axis = 1).sum()
print(df)

Producción:

Explicación:

  • Aquí, observe que aunque ‘Películas’ no se combine con otra columna, aún debe estar presente en groupby_dict, de lo contrario no estará en el marco de datos final.
  • Para calcular Total_Viewers hemos utilizado la función .sum() que suma todos los valores de las respectivas filas.

Publicación traducida automáticamente

Artículo escrito por rohitmidha23 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 *