<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Ejercicios de análisis de datos con pandas
Fuente
Step1:  Ejercicios
Sobre el conjunto de datos model
Step2:  Misma matriz scatter para los 1000 registros con mayor velocidad
Step3:  Histórico de la velocidad media
Step4:  Media móvil de los datos agrupados por mes y año
<ASSISTANT_TASK:>
Python Code:
!head ../data/model.txt
import pandas as pd
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib as mpl
from IPython.display import display
model = pd.read_csv(
    "../data/model.txt", delim_whitespace=True, skiprows = 3,
    parse_dates = {'Timestamp': [0, 1]}, index_col = 'Timestamp')
model.head()
Explanation: Ejercicios de análisis de datos con pandas
Fuente: https://github.com/PyDataMadrid2016/Conference-Info/tree/master/workshops_materials/20160408_1100_Pandas_for_beginners/tutorial por Kiko Correoso, licencia MIT
En la carpeta de datos tenemos un fichero que se llama model.txt que contiene datos de medidas de viento: velocidad, orientación, temperatura...
End of explanation
pd.tools.plotting.scatter_matrix(model.loc[model.index[:1000], 'M(m/s)':'D(deg)'])
Explanation: Ejercicios
Sobre el conjunto de datos model:
Representar la matriz scatter de la velocidad y orientación del viento de los primeros mil registros.
Misma matriz scatter para los 1000 registros con mayor velocidad, ordenados.
Histograma de la velocidad del viento con 36 particiones.
Histórico de la velocidad media, con los datos agrupados por años y meses.
Tabla de velocidades medias en función del año (filas) y del mes (columnas).
Gráfica con los históricos de cada año, agrupados por meses, superpuestos.
Representamos la matriz scatter de la velocidad y orientación del viento de los primeros mil registros:
End of explanation
pd.tools.plotting.scatter_matrix(
    model.loc[model.sort_values('M(m/s)', ascending=False).index[:1000],
              'M(m/s)':'D(deg)']
)
model.loc[:, 'M(m/s)'].plot.hist(bins=np.arange(0, 35))
model['month'] = model.index.month
model['year'] = model.index.year
Explanation: Misma matriz scatter para los 1000 registros con mayor velocidad:
End of explanation
model.groupby(by = ['year', 'month']).mean().head(24)
model.groupby(by=['year', 'month']).mean().plot(y='M(m/s)', figsize=(15, 5))
Explanation: Histórico de la velocidad media:
End of explanation
monthly = model.groupby(by=['year', 'month']).mean()
monthly['ma'] = monthly.loc[:, 'M(m/s)'].rolling(5, center=True).mean()
monthly.head()
monthly.loc[:, ['M(m/s)', 'ma']].plot(figsize=(15, 6))
monthly.loc[:, 'M(m/s)'].reset_index().pivot(index='year', columns='month')
monthly.loc[:, 'M(m/s)'].reset_index().pivot(
    index='year', columns='month'
).T.loc['M(m/s)'].plot(
    figsize=(15, 5), legend=False
)
    
Explanation: Media móvil de los datos agrupados por mes y año:
End of explanation
<END_TASK>