[Python-es] Obtener índices para un resample con Pandas

AGTUGO agtugo en gmail.com
Vie Jul 11 20:02:12 CEST 2014


de aquí a que me aprueben ese software es como un año, pufff


2014-07-11 1:46 GMT-05:00 Kiko <kikocorreoso en gmail.com>:

>
>>
>> Hay por ahí un compilador de excel que te pasa las ecuaciones de excel a
>> python y las uniones entre formulas las hacen con grafos, con las ventajas
>> de ver las conexiones, haciendo fácil la simplificación, y la optimización.
>> No he podido dar el salto de implementar python en mi trabajo diario que es
>> Ingeniero de Diseño (aviación) con lo que tengo ahorita mis soluciones en
>> python son más impracticas aún que las que ya existen aquí, cosas como
>> poder sacar la información de un JT (formato iso de SIEMENS) no es aún tan
>> trivial y requiere bastante tiempo. Para labores pequeñas como
>> monte-carlo,six-sigma, risk analysis, calculos análiticos, me sirve bien.
>>
>>
> Si funciona, no lo toques!!!
> Existe una cosa que se llama datanitro[1] y otra cosa que se llama PyXLL
> [2] que quizá te resulten interesantes para no reinventar la rueda con
> PySpread.
>
> [1] https://datanitro.com/
> [2] https://www.enthought.com/products/pyxll/
>
>
>>
>> 2014-07-10 2:02 GMT-05:00 Kiko <kikocorreoso en gmail.com>:
>>
>>
>>> El 9 de julio de 2014, 21:34, Kiko <kikocorreoso en gmail.com> escribió:
>>>
>>>
>>>> El 9 de julio de 2014, 18:03, AGTUGO <agtugo en gmail.com> 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
>>>>> Python-es en python.org
>>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>
>>>>>
>>>>
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>>
>> --
>> Arturo Muñoz Tolosa
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


-- 
Arturo Muñoz Tolosa
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140711/a21fd9f1/attachment.html>


Más información sobre la lista de distribución Python-es