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