# Start writing code here...
Análisis de Carbón por Departamentos
Producción
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv('produccioncarbon.csv', sep=';')
df
df.groupby('Departamento')['Produccion'].sum().plot(kind='bar', legend='Reverse')
plt.ticklabel_format(style='plain', axis='y')
plt.ylabel('Produccion de Carbon en Toneladas')
ano_prod= df.groupby('Ano')['Produccion'].sum()
ano_prod= ano_prod.reset_index()
ano_prod
dptos=df.groupby('Departamento').sum()
dptos=dptos.sort_values(by='Produccion', ascending=False)
dptos
dpto_ano= df.groupby(['Departamento','Ano']).sum()
dpto_ano= dpto_ano.reset_index()
dpto_ano
fig, ax = plt.subplots(figsize = (10, 10))
sns.barplot(x = 'Ano', y = 'Produccion', data = dpto_ano,hue='Departamento')
dpto_ano = pd.pivot_table(dpto_ano,columns='Departamento', index='Ano',values= 'Produccion')
dpto_ano
dpto_ano.columns
dpto_ano['CESAR'].sum()
dpto_ano = pd.pivot_table(dpto_ano,columns='Departamento', index= 'Ano',values= 'Produccion')
dpto_ano
dpto_ano.plot(kind='bar',stacked=True,figsize=(10,10),cmap='Paired')
plt.ylabel("Produccion en toneladas")
plt.ticklabel_format(style='plain', axis='y')
dpto_prod= df.groupby('Departamento')['Produccion'].sum()
dpto_prod= dpto_prod.reset_index()
dpto_prod
dpto_prod= df.groupby('Departamento')['Produccion'].sum()
dpto_prod= dpto_prod.reset_index()
dpto_prod['zscore']= dpto_prod['Produccion']/dpto_prod['Produccion'].max()
if (dpto_prod['zscore']<= 0.2).any() == True:
menores = dpto_prod[dpto_prod['zscore']<=0.2].sum()['Produccion']
cuenta = len(dpto_prod[dpto_prod['zscore']<=0.2])
dpto_prod = dpto_prod.sort_values(by=['Produccion'])
m = len(dpto_prod['Produccion'])-cuenta
mayores = dpto_prod['Produccion'].tail(m)
etiquetas = []
etiquetas.extend(dpto_prod['Departamento'].tail(m).tolist())
nombres = dpto_prod['Departamento'].head(cuenta)
nombres = ','.join(v for v in nombres)
etiquetas.append('OTROS DEPARTAMENTOS')
y=mayores.to_numpy()
y=np.append(y,menores)
explodea=np.zeros(len(y))
explodea[np.argmin(y)]= 0.4
explodea[np.argmax(y)]= 0.2
else:
y = dpto_prod['Produccion'].to_numpy()
etiquetas = dpto_prod['Departamento'].tolist()
explodea = np.zeros(len(y))
explodea[np.argmin(y)]= 0.4
explodea[np.argmax(y)]= 0.2
colorspie=("cadetblue","teal","lightcoral","lightpink")
plt.pie(y, labels=etiquetas, colors= colorspie, autopct='%1.1f%%',shadow=True)
#dpto_prod= df.groupby('Departamento')['Produccion'].sum()
#dpto_prod= dpto_prod.reset_index()
#dpto_prod['zscore']= dpto_prod['Produccion']/dpto_prod['Produccion'].max()
#if (dpto_prod['zscore']<= 0.2).any() == True:
#menores = dpto_prod[dpto_prod['zscore']<=0.2].sum()['Produccion']
#cuenta = len(dpto_prod[dpto_prod['zscore']<=0.2])
#dpto_prod = dpto_prod.sort_values(by=['Produccion'])
#m = len(dpto_prod['Produccion'])-cuenta
#mayores = dpto_prod['Produccion'].tail(m)
#etiquetas = []
#etiquetas.extend(dpto_prod['Departamento'].tail(m).tolist())
#nombres = dpto_prod['Departamento'].head(cuenta)
#nombres = ','.join(v for v in nombres)
#etiquetas.append(nombres)
#y=mayores.to_numpy()
#y=np.append(y,menores)
#explodea=np.zeros(len(y))
#explodea[np.argmin(y)]= 0.4
#explodea[np.argmax(y)]= 0.2
#else:
#y = dpto_prod['Produccion'].to_numpy()
#etiquetas = dpto_prod['Departamento'].tolist()
#explodea = np.zeros(len(y))
#explodea[np.argmin(y)]= 0.4
#explodea[np.argmax(y)]= 0.2
#colorspie=("cadetblue","teal","lightcoral","lightpink")
#plt.pie(y, labels=etiquetas, colors= colorspie, autopct='%1.1f%%',shadow=True)
Regalias
df1 = pd.read_csv('regaliascarbon.csv', sep=';')
df1['Regalias']= df1['Regalias']/1000000000
dpto_ano= df1.groupby('Departamento').sum()
dpto_ano
dpto_ano= df1.groupby(['Departamento','Ano']).sum()
dpto_ano= dpto_ano.reset_index()
dpto_ano = pd.pivot_table(dpto_ano,columns='Departamento', index='Ano',values= 'Regalias')
dpto_ano
dpto_ano.plot(kind='bar',stacked=True,figsize=(15,10),cmap='Paired')
plt.ticklabel_format(style='plain', axis='y')
plt.ylabel("Regalias en Miles de Millones")
dpto_ano= df1.groupby(['Departamento','Ano']).sum()
dpto_ano= dpto_ano.reset_index()
dpto_ano = pd.pivot_table(dpto_ano,columns='Departamento', index='Ano',values= 'Regalias')
dpto_ano
dpto_reg= df1.groupby(['Departamento']).sum()
dpto_reg= dpto_reg.reset_index()
dpto_reg['zscore']= dpto_reg['Regalias']/dpto_reg['Regalias'].max()
if (dpto_reg['zscore']<= 0.2).any() == True:
menores = dpto_reg[dpto_reg['zscore']<=0.2].sum()['Regalias']
cuenta = len(dpto_reg[dpto_reg['zscore']<=0.2])
dpto_reg = dpto_reg.sort_values(by=['Regalias'])
m = len(dpto_reg['Regalias'])-cuenta
mayores = dpto_reg['Regalias'].tail(m)
etiquetas = []
etiquetas.extend(dpto_reg['Departamento'].tail(m).tolist())
nombres = dpto_reg['Departamento'].head(cuenta)
nombres = ','.join(v for v in nombres)
etiquetas.append('OTROS DEPARTAMENTOS')
y=mayores.to_numpy()
y=np.append(y,menores)
explodea=np.zeros(len(y))
explodea[np.argmin(y)]= 0.4
explodea[np.argmax(y)]= 0.1
else:
y = dpto_reg['Regalias'].to_numpy()
etiquetas = dpto_reg['Departamento'].tolist()
explodea = np.zeros(len(y))
explodea[np.argmin(y)]= 0.4
explodea[np.argmax(y)]= 0.1
colorspie=("pink","teal","blueviolet","lightpink")
plt.pie(y, labels=etiquetas,colors=colorspie,autopct='%1.1f%%',shadow=True,explode=explodea)
Exportación Carbón
df2 = pd.read_csv('exportaciones.csv', sep=';')
df2['Toneladas de Carbon Exportadas']=df2['Toneladas de Carbon Exportadas']/1000000
df2
df2.dtypes
df2.groupby('Departamento Origen')['Toneladas de Carbon Exportadas'].sum().plot(kind='bar', legend='Reverse')
plt.ticklabel_format(style='plain', axis='y')
plt.ylabel('Millones de Toneladas de Carbon Exportadas')
dpto_prod= df2.groupby('Departamento Origen')['Toneladas de Carbon Exportadas'].sum()
dpto_prod= dpto_prod.reset_index()
dpto_prod
dpto_prod=dpto_prod.sort_values(by='Toneladas de Carbon Exportadas', ascending=False)
dpto_prod= dpto_prod.reset_index()
dpto_prod
dpto_prod['Toneladas de Carbon Exportadas'].sum()