El 9 de julio de 2014, 21:34, Kiko <[email protected]> escribió:
> > El 9 de julio de 2014, 18:03, AGTUGO <[email protected]> escribió: > > ¿Podrías pasar una porción de tu código para fines educativos de la >> solución? >> >> > Mañana a primera hora lo tienes. > > De nuevo, gracias. > Ahí va: ---------------------------------------------------------------------------------------------------------------- import numpy as np import pandas as pd # Creo una serie con distribución normal, media 5 y desv estándar 5 # para hacer las pruebas mu = 5 sigma = 5 data = sigma * np.random.randn(300000) + mu index = pd.date_range('1970/01/01', periods = 300000, freq = 'H') # Creo un dataframe de datos horarios datos_de_partida = pd.DataFrame(data, index = index) # Extraigo los máximos (o lo que quieras) mensuales # 1M indica 1 mes # Si quisiera los máximos anuales usaría 1A, etc. grouper = pd.TimeGrouper("1M") ext_group = datos_de_partida.groupby(grouper) # Creo un df con los índices, las fechas de los extremos extremes = ext_group.max() extremes.index = ext_group.idxmax().values # La columna de extremos la llamo 'extremes' extremes.columns = ['extremes'] # Y además creo una columna con las fechas de esos extremos # Las fechas ya las tengo en los índices pero me lo necesito así extremes['dates'] = extremes.index ---------------------------------------------------------------------------------------------------------------- El resultado sería algo así como: extremes dates 1970-01-01 22:00:00 17.937839 1970-01-01 22:00:00 1970-02-20 09:00:00 18.647249 1970-02-20 09:00:00 1970-03-11 06:00:00 25.111108 1970-03-11 06:00:00 1970-04-27 16:00:00 20.998373 1970-04-27 16:00:00 1970-05-17 03:00:00 18.304925 1970-05-17 03:00:00 1970-06-12 23:00:00 20.684410 1970-06-12 23:00:00 1970-07-19 18:00:00 22.098663 1970-07-19 18:00:00 1970-08-13 06:00:00 20.925366 1970-08-13 06:00:00 1970-09-20 03:00:00 20.409511 1970-09-20 03:00:00 ... y continua para cada mes hasta el final del df datos_de_partida Saludos. P.D.: El resultado debe ser 100x más eficiente que mi implementación original \o/ > >> _______________________________________________ >> Python-es mailing list >> [email protected] >> https://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> >
_______________________________________________ Python-es mailing list [email protected] https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
