<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">El 13 de mayo de 2014, 7:23, AGTUGO <span dir="ltr"><<a href="mailto:agtugo@gmail.com" target="_blank">agtugo@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><div><div>Hola,<br><br></div>He estado tratando de hacer implementacion solamente con panda de lo siguiente que ya tengo con numpy, pero no me ha salido nada bien. Para los mas entradillos con pandas espero que lo siguiente sea trivial.<br>

<br></div>La entrada son datos tabulados de dos dimensiones o una matrix, la idea es formar todas las combinaciones, sin repetir y sin sustitución, de los renglones. La pareja de renglones se ponen en un solo renglon. <br>

<br></div><div>Mi algoritmo actual es crear los indices de las combinaciones posibles, y despues crear la mezcla usando los indices. En codigo sería lo siguiente.<br><br></div><div>#### combinaciones.py<br><br><br>import numpy as np<br>

import itertools<br>rows = 10<br>columns =5<br>data = np.arange(rows*columns).reshape(rows,columns)<br>print('\n===Data===\n')<br>print(data)<br>to_mix = np.arange(rows)<br>mixed = list(itertools.product(to_mix,to_mix))<br>

combination = [x for x in mixed if (x[0]< x[1])] <br>combination = np.array(combination)<br>print('\n===Combination===\n')<br>print(combination)<br><br><br>final_data = np.hstack((data[combination[:,0],:],data[combination[:,1],:]))<br>

print('\n===Final Data===\n')<br>print(final_data)<br><br><br></div></div></blockquote><div><br></div><div>No entiendo muy bien qué quieres hacer. Si tienes Pandas, tienes Numpy.¿Por qué no simplemente haces un DataFrame usando el numpy array final que has obtenido?</div>
<div><br></div><div>Sin usar numpy (que deberías tener instalado porque tienes Pandas instalado, repito):</div><div><div><br></div><div>from itertools import combinations</div><div><br></div><div>lista = [list(range(i,i+5)) for i in range(0,50,5)]</div>
</div><div>final = []</div><div><div>for i in combinations(range(10),2):</div><div>    final.append(lista[i[0]]+lista[i[1]])</div></div><div>df = pd.DataFrame(final, columns = range(10))<br></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><br><br></div><div>Resultado:<br><br><div><div><div><div><pre>===Data===

[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 ..., 
 [35 36 37 38 39]
 [40 41 42 43 44]
 [45 46 47 48 49]]

===Combination===

[[0 1]
 [0 2]
 [0 3]
 ..., 
 [7 8]
 [7 9]
 [8 9]]

===Final Data===

[[ 0  1  2 ...,  7  8  9]
 [ 0  1  2 ..., 12 13 14]
 [ 0  1  2 ..., 17 18 19]
 ..., 
 [35 36 37 ..., 42 43 44]
 [35 36 37 ..., 47 48 49]
 [40 41 42 ..., 47 48 49]]
</pre></div></div></div></div><br></div><div><br><br></div><div>Al parecer no es tan sencillo crear un nuevo dataframe usando los indices en panda. Espero que me puedan dar una orientación saludos.<span class=""><font color="#888888"><br>
</font></span></div><span class=""><font color="#888888"><div><br><br>
<br></div><div><div><div><div>-- <br>Arturo Muñoz Tolosa
</div></div></div></div></font></span></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">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><br></div></div>