> > > > 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 <[email protected]>: > > >> 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/ >> >> > > > -- > Arturo Muñoz Tolosa > > _______________________________________________ > 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/
