Professional Documents
Culture Documents
import pandas as pd
import numpy as np
%matplotlib inline
import matplotlib
import warnings
warnings.filterwarnings('ignore')
!wget "https://www.imf.org/-/media/Files/Research/CommodityPrices/Monthly/external-
dataapril.ashx" -O data.xls
import pandas as pd
pd.set_option('display.max_columns', None)
data = pd.read_excel('/content/data.xls')
data.head(5)
data
print(data['Commodity'].iloc[0])
print(data['Commodity'].iloc[-1])
data
data.columns = ['Total','Alimentos','Industrial','Agro','Metales','Energia']
data
data.dtypes
data = data.apply(pd.to_numeric)
data.dtypes
data
data['date']=data['date'].dt.strftime('%Y-%m')
data
col = data.pop("date")
data
data=data.dropna()
data
data=data.reset_index(drop=True)
data
data.to_csv('Indices_Commodities.csv')
data.describe()
'Agro','Alimentos','Metales']
plt.tight_layout()
'Agro','Alimentos','Metales']
ax = sns.kdeplot(data[variable1],ax=ax,shade=True, palette='plasma')
plt.tight_layout()
'Agro','Alimentos','Metales']
plt.tight_layout()
fig = plt.figure(figsize=(20,10))
fig.legend()
plt.xlabel('Distribucion', fontsize=12)
plt.ylabel('Densidad', fontsize=12)
plt.show()
fig, ax = plt.subplots(figsize=(20,10))
plt.legend()
plt.ylabel('Density', fontsize=14)
plt.show()
CorrelacionP = data.corr()
CorrelacionP
import pandas as pd
import numpy as np
corr = data.corr()
corr.style.background_gradient(cmap='coolwarm')
g.map(sns.scatterplot)
--------------------------------------------------------------
###Actividad propuesta 3
periods = [
('2003-01', '2007-12'),
('2008-01', '2014-12'),
('2015-01', '2018-12'),
('2019-01', data['date'].max())
means = {}
stds = {}
means_period = {}
stds_period = {}
mean = period_data.mean()
std = period_data.std()
means_period[col] = mean
stds_period[col] = std
means_df = pd.DataFrame(means).T
stds_df = pd.DataFrame(stds).T
print('Means:')
means_df
print('\nStandard deviations:')
stds_df
periods = [
('2003-01', '2007-12'),
('2008-01', '2014-12'),
('2015-01', '2018-12'),
('2019-01', data['date'].max())
means = {}
stds = {}
means_period = {}
stds_period = {}
mean = period_data.mean()
std = period_data.std()
means_period[col] = mean
stds_period[col] = std
means_df = pd.DataFrame(means).T
stds_df = pd.DataFrame(stds).T
print('Means:')
print(means_df)
print('\nStandard deviations:')
print(stds_df)
---------------------------------------------
ACT PRO 4
# Calcular el índice promedio de las columnas 'Alimentos', 'Industrial', 'Agro', 'Metales' y 'Energia'
media_total = data['Total'].mean()
media_promedio = data['Indice_promedio'].mean()
if p < 0.05:
-----------------------------------------
####Actividad Propuesta 5
import pandas as pd
import numpy as np
%matplotlib inline
import matplotlib
import warnings
warnings.filterwarnings('ignore')
!wget "https://www.imf.org/-/media/Files/Research/CommodityPrices/Monthly/external-
dataapril.ashx" -O data.xls
import pandas as pd
pd.set_option('display.max_columns', None)
data = pd.read_excel('/content/data.xls')
data.head(5)
data.drop(data.index[0:3], axis=0, inplace=True)
data
print(data['Commodity'].iloc[0])
print(data['Commodity'].iloc[-1])
data
data.columns = ['Total','Alimentos','Industrial','Agro','Metales','Energia','Fertilizantes']
data
data.dtypes
data = data.apply(pd.to_numeric)
data.dtypes
data
data['date']=data['date'].dt.strftime('%Y-%m')
data
col = data.pop("date")
data
data=data.dropna()
data
data=data.reset_index(drop=True)
data
data.to_csv('Indices_Commodities.csv')
data.describe()
'Agro','Alimentos','Metales','Fertilizantes']
ax = sns.histplot(data[variable1],bins=15,ax=ax, palette='plasma')
plt.tight_layout()
'Agro','Alimentos','Metales','Fertilizantes']
ax = sns.kdeplot(data[variable1],ax=ax,shade=True, palette='plasma')
plt.tight_layout()
'Agro','Alimentos','Metales','Fertilizantes']
plt.tight_layout()
fig = plt.figure(figsize=(20,10))
fig.legend()
plt.xlabel('Distribucion', fontsize=12)
plt.ylabel('Densidad', fontsize=12)
plt.show()
fig, ax = plt.subplots(figsize=(20,10))
plt.legend()
plt.ylabel('Density', fontsize=14)
plt.show()
CorrelacionP = data.corr()
CorrelacionP
import pandas as pd
import numpy as np
corr = data.corr()
corr.style.background_gradient(cmap='coolwarm')
g = sns.PairGrid(data, x_vars=['Agro','Alimentos','Industrial','Metales','Energia','Fertilizantes'],
y_vars='Total', height=5, palette='plasma')
g.map(sns.scatterplot)
import pandas as pd
periods = [
('2003-01', '2007-12'),
('2008-01', '2014-12'),
('2015-01', '2018-12'),
('2019-01', data['date'].max())
means = {}
stds = {}
means_period = {}
stds_period = {}
mean = period_data.mean()
std = period_data.std()
means_period[col] = mean
stds_period[col] = std
means_df = pd.DataFrame(means).T
stds_df = pd.DataFrame(stds).T
print('Means:')
print(means_df)
print('\nStandard deviations:')
print(stds_df)
# Calcular el índice promedio de las columnas 'Alimentos', 'Industrial', 'Agro', 'Metales' ,'Energia'
'Fertilizantes'
media_total = data['Total'].mean()
media_promedio = data['Indice_promedio'].mean()
if p < 0.05:
else:
El código proporcionado realiza varias operaciones relacionadas con el análisis de datos de precios
de productos básicos (commodities). A continuación, se proporciona una explicación detallada de
las diferentes partes del código:
Instalación de bibliotecas:
Se realiza la instalación de las bibliotecas 'xlrd' y 'pandas' utilizando el comando !pip install en
silencio (-q).
Importación de bibliotecas:
Se importan las siguientes bibliotecas necesarias para el análisis de datos: pandas, reduce de la
biblioteca functools, numpy, matplotlib.pyplot y seaborn.
Descarga de datos:
Se utiliza el comando wget para descargar un archivo de datos de precios de productos básicos
desde una URL específica. El archivo se guarda con el nombre 'data.xls'.
Se utiliza la biblioteca pandas para leer el archivo 'data.xls' y cargar los datos en un DataFrame
llamado 'data'.
Se eliminan las primeras tres filas del DataFrame, ya que contienen información irrelevante.
Se convierten los datos en columnas numéricas para asegurar que se puedan realizar cálculos
numéricos en ellos.
Se crea una nueva columna llamada 'date' que representa la fecha en formato de año y mes.
Visualización de datos:
Se utiliza el método plot.line de pandas para trazar varias líneas en función de las columnas
seleccionadas del DataFrame.
Análisis de correlación:
Prueba de hipótesis:
Se definen varios períodos de tiempo utilizando tuplas que representan los rangos de fechas.
Se calculan las medias y desviaciones estándar de las columnas seleccionadas del DataFrame para
cada período de tiempo.
Se realiza una prueba de hipótesis utilizando el método ttest_ind de la biblioteca scipy.stats para
comparar las medias de dos períodos diferentes.
Se calcula un índice promedio a partir de las columnas 'Alimentos', 'Industrial', 'Agro', 'Metales' y
'Energia' y se agrega como una nueva columna llamada 'Indice_promedio' al DataFrame.
Se calcula la media del índice total y el índice promedio utilizando el método mean de pandas.
INFORMACION COMPLEMENTARIA:
El código proporcionado realiza varias tareas relacionadas con el análisis y visualización de datos
de commodities. A continuación se explica paso a paso lo que hace:
Descarga y lectura de datos: El código utiliza el comando wget para descargar un archivo de datos
en formato Excel desde una URL específica. Luego, utiliza la biblioteca pandas para leer el archivo
Excel en un DataFrame llamado "data".