Entiendo el punto pero tengo que pasar por un array intermedio. La idea es agarrar un archivo csv direcatamente a un dataframe y de ahi sacar el dataframe con las combinaciones, el método actual sería:
1.- Importar csv en dataframe 2.- Crear un array del dataframe 3.- Crear los indices de las combinaciones 4.- Usar la notacion de indices para crear el array 5.- Crear el dataset a partir del array Método buscado: 1.- Importar csv en dataframe 2.- Crear indices de las combinaciones 3.- Usar "algo" usando los indices para crear el dataframe nuevo a partir del dataframe viejo 2014-05-13 2:12 GMT-05:00 Kiko <[email protected]>: > > > > El 13 de mayo de 2014, 7:23, AGTUGO <[email protected]> escribió: > > Hola, >> >> 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. >> >> 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. >> >> 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. >> >> #### combinaciones.py >> >> >> import numpy as np >> import itertools >> rows = 10 >> columns =5 >> data = np.arange(rows*columns).reshape(rows,columns) >> print('\n===Data===\n') >> print(data) >> to_mix = np.arange(rows) >> mixed = list(itertools.product(to_mix,to_mix)) >> combination = [x for x in mixed if (x[0]< x[1])] >> combination = np.array(combination) >> print('\n===Combination===\n') >> print(combination) >> >> >> final_data = >> np.hstack((data[combination[:,0],:],data[combination[:,1],:])) >> print('\n===Final Data===\n') >> print(final_data) >> >> >> > 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? > > Sin usar numpy (que deberías tener instalado porque tienes Pandas > instalado, repito): > > from itertools import combinations > > lista = [list(range(i,i+5)) for i in range(0,50,5)] > final = [] > for i in combinations(range(10),2): > final.append(lista[i[0]]+lista[i[1]]) > df = pd.DataFrame(final, columns = range(10)) > > >> >> >> Resultado: >> >> ===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]] >> >> >> >> >> Al parecer no es tan sencillo crear un nuevo dataframe usando los indices >> en panda. Espero que me puedan dar una orientación saludos. >> >> >> >> -- >> 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/ > > -- 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/
