# Start writing code here...
Análisis de Gas
Producción Fiscalizada
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
df = pd.read_csv('producciongas.csv', sep=';')
df
df.dtypes
ano_prod= df.groupby('ANO')['PRODUCCION FISCALIZADA - MPCPDC'].sum()
ano_prod= ano_prod.reset_index()
ano_prod
dpto_ano= df.groupby(['DEPARTAMENTO','ANO']).sum()
dpto_ano= dpto_ano.reset_index()
dpto_ano = pd.pivot_table(dpto_ano,columns='DEPARTAMENTO', index='ANO',values= 'PRODUCCION FISCALIZADA - MPCPDC')
dpto_ano
dpto_reg= df.groupby(['DEPARTAMENTO']).sum()
dpto_reg= dpto_reg.reset_index()
dpto_reg['zscore']= dpto_reg['PRODUCCION FISCALIZADA - MPCPDC']/dpto_reg['PRODUCCION FISCALIZADA - MPCPDC'].max()
if (dpto_reg['zscore']<= 0.1).any() == True:
menores = dpto_reg[dpto_reg['zscore']<=0.1].sum()['PRODUCCION FISCALIZADA - MPCPDC']
cuenta = len(dpto_reg[dpto_reg['zscore']<=0.1])
dpto_reg = dpto_reg.sort_values(by=['PRODUCCION FISCALIZADA - MPCPDC'])
m = len(dpto_reg['PRODUCCION FISCALIZADA - MPCPDC'])-cuenta
mayores = dpto_reg['PRODUCCION FISCALIZADA - MPCPDC'].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['PRODUCCION FISCALIZADA - MPCPDC'].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)
dpto_ano= df.groupby(['DEPARTAMENTO','ANO']).sum()
dpto_ano= dpto_ano.reset_index()
dpto_ano = pd.pivot_table(dpto_ano,columns='DEPARTAMENTO', index='ANO',values= 'PRODUCCION FISCALIZADA - MPCPDC')
dpto_ano.plot(kind='bar',stacked=True,figsize=(10,5),cmap='Paired',width=0.5).legend(bbox_to_anchor=(1.0, 1.0))
plt.ylabel('PRODUCCION FISCALIZADA - MPCD')
Cobertura de Usuarios Conectados
df1 = pd.read_csv('coberturagas.csv', sep=';')
df1
dpto_reg= df1.groupby(['DEPARTAMENTO']).sum()
dpto_reg =dpto_reg.sort_values(by=['COBERTURA'], ascending=False)
dpto_reg= dpto_reg.reset_index()
dpto_reg
total_cobertura=dpto_reg['COBERTURA'].sum()
guajira_cobertura= (558686/total_cobertura)*100
guajira_cobertura
dpto_cob=df1.groupby('DEPARTAMENTO')['COBERTURA'].sum()
dpto_cob= dpto_cob.reset_index()
dpto_cob=dpto_cob.sort_values(by='COBERTURA', ascending=False)
dpto_cob
dpto_cob= dpto_cob.reset_index(drop=True)
dpto_cob
dpto_cob.columns
dpto_cob.plot(x='DEPARTAMENTO', y= 'COBERTURA',kind='bar', legend='Reverse')
plt.ticklabel_format(style='plain', axis='y')
plt.ylabel('USUARIOS CONECTADOS A GN')
Reservas de Gas
df2 = pd.read_csv('reservasgas.csv', sep=';')
df2['RESERVAS GN (MPC)']=df2['RESERVAS GN (MPC)']
df2.groupby('DEPARTAMENTO ')['RESERVAS GN (MPC)'].sum().plot(kind='bar', legend='Reverse')
plt.ticklabel_format(style='plain', axis='y')
plt.ylabel('RESERVAS GN (MPC) ')
df2.columns
dpto_ano= df2.groupby(['DEPARTAMENTO ','ANO']).sum()
dpto_ano= dpto_ano.reset_index()
dpto_ano = pd.pivot_table(dpto_ano,columns='DEPARTAMENTO ', index='ANO',values= 'RESERVAS GN (MPC)')
dpto_ano
ano_reserva= df2.groupby('ANO')['RESERVAS GN (MPC)'].sum()
ano_reserva= ano_reserva.reset_index()
ano_reserva
dpto_reg= df2.groupby(['DEPARTAMENTO ']).sum()
dpto_reg= dpto_reg.reset_index()
dpto_reg['zscore']= dpto_reg['RESERVAS GN (MPC)']/dpto_reg['RESERVAS GN (MPC)'].max()
if (dpto_reg['zscore']<= 0.1).any() == True:
menores = dpto_reg[dpto_reg['zscore']<=0.1].sum()['RESERVAS GN (MPC)']
cuenta = len(dpto_reg[dpto_reg['zscore']<=0.1])
dpto_reg = dpto_reg.sort_values(by=['RESERVAS GN (MPC)'])
m = len(dpto_reg['RESERVAS GN (MPC)'])-cuenta
mayores = dpto_reg['RESERVAS GN (MPC)'].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 DEPRATAMENTOS')
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['RESERVAS GN (MPC)'].to_numpy()
etiquetas = dpto_reg['DEPARTAMENTO '].tolist()
explodea = np.zeros(len(y))
explodea[np.argmin(y)]= 0.4
explodea[np.argmax(y)]= 0.1
plt.figure(figsize=(4,4))
colorspie=("pink","teal","blueviolet","lightpink")
plt.pie(y, labels=etiquetas,colors=colorspie,autopct='%1.1f%%',shadow=True,explode=explodea,radius=3)