¡Ha llegado el momento de practicar! Aplicaremos los conceptos aprendidos durante la clase a través de algunas actividades. Resuelva los problemas propuestos mediante códigos utilizando la base de datos proporcionada en el curso.
- Agrupe los datos según la columna "Nível 1 - Setor" para ver el diccionario que contiene las llaves de los grupos formados y la lista de índices para cada grupo.
- Agrupe los datos según la columna "Nível 1 - Setor" y ubique los datos del grupo "Agropecuária".
- Agrupe los datos con base en la columna “Nível 1 - Setor” para identificar la emisión promedio de cada actividad económica en 2021.
- Agrupe los datos con base en la columna "Nível 1 - Setor" para identificar la suma de emisiones de cada actividad económica. Ordene los datos de mayor a menor emisión.
SOLUCIÓN:
- Agrupe los datos según la columna "Nível 1 - Setor" para ver el diccionario que contiene las llaves de los grupos formados y la lista de índices para cada grupo.
import pandas as pd
df = pd.read_excel('/content/GEE_ESTADOS.xlsx')
agrupados_por_sector = df.groupby('Nível 1 - Setor')
# Acceder al diccionario de grupos
dict_grupos = agrupados_por_sector.groups
# Resultado
print("Sectores encontrados (Llaves del diccionario):")
print(dict_grupos.keys())
print("\nDiccionario completo de grupos (llave: lista de índices):")
print(dict_grupos)
- Agrupe los datos según la columna "Nível 1 - Setor" y ubique los datos del grupo "Agropecuária".
agrupados_por_sector = df.groupby('Nível 1 - Setor')
df_agropecuaria = agrupados_por_sector.get_group('Agropecuária')
# resultados
print("Información del grupo 'Agropecuária':")
print(f"Total de registros encontrados: {len(df_agropecuaria)}")
print("\nPrimeras filas del grupo:")
print(df_agropecuaria.head())
- Agrupe los datos con base en la columna “Nível 1 - Setor” para identificar la emisión promedio de cada actividad económica en 2021.
promedio_emisiones_2021 = df.groupby('Nível 1 - Setor')[[2021]].mean()
print("Emisión promedio por Sector en el año 2021:")
print(promedio_emisiones_2021.sort_values(by=2021, ascending=False))
- Agrupe los datos con base en la columna "Nível 1 - Setor" para identificar la suma de emisiones de cada actividad económica. Ordene los datos de mayor a menor emisión.
# Identificamos las columnas de los años (emisiones)
year_columns = [col for col in df.columns if isinstance(col, int) and col >= 1970 and col <= 2021]
# Agrupamos por 'Nível 1 - Setor' y sumamos las emisiones de los años
suma_emisiones_por_sector = df.groupby('Nível 1 - Setor')[year_columns].sum()
# 3. Sumamos todas las columnas de años para obtener una 'Total_Emision'
suma_emisiones_por_sector['Total_Emision'] = suma_emisiones_por_sector[year_columns].sum(axis=1)
# 4. Ordenamos los datos de mayor a menor emisión total
emisiones_ordenadas = suma_emisiones_por_sector.sort_values(by='Total_Emision', ascending=False)
# 5. Mostramos el resultado
print("\nSuma total de emisiones por Sector (1970-2021), ordenado de mayor a menor:")
print(emisiones_ordenadas[['Total_Emision']])