Skip to content
394 changes: 394 additions & 0 deletions 001 Orden Inverso por Grupos/soluciones 001/purohr_001.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,394 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Mini reto 001"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Ordenar las subseries de forma descendente\n",
"\n",
"La finalidad es ordenar de forma descendente las subseries 1..n que hay en la serie.\n",
"\n",
"Output solicitado:\n",
"\n",
"[6,5,4,3,2,1,4,3,2,1,5,4,3,2,1,2,1,9,8,7,6,5,4,3,2,1]"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 1\n",
"1 2\n",
"2 3\n",
"3 4\n",
"4 5\n",
"5 6\n",
"6 1\n",
"7 2\n",
"8 3\n",
"9 4\n",
"10 1\n",
"11 2\n",
"12 3\n",
"13 4\n",
"14 5\n",
"15 1\n",
"16 2\n",
"17 1\n",
"18 2\n",
"19 3\n",
"20 4\n",
"21 5\n",
"22 6\n",
"23 7\n",
"24 8\n",
"25 9\n",
"dtype: int64"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"serie = pd.Series([1,2,3,4,5,6,1,2,3,4,1,2,3,4,5,1,2,1,2,3,4,5,6,7,8,9])\n",
"serie"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Comprobando que se incluyan todos los indices, asi se organizara la información. El comando verifica en que posiciones estan los 1, que es el valor que se repite en todas las series"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 1\n",
"6 1\n",
"10 1\n",
"15 1\n",
"17 1\n",
"dtype: int64"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a=serie[serie < serie.iloc[1]]\n",
"a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A la serie siguiente se le agrega el ultmimo indice, necesario para que mas adelante se sepa donde termina la jultima mini serie."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 1\n",
"6 1\n",
"10 1\n",
"15 1\n",
"17 1\n",
"25 9\n",
"dtype: int64"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ultimo=pd.Series(serie[len(serie)-1],index=[len(serie)-1])\n",
"a=a.append(ultimo)\n",
"a"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Se comprueba la linea que sirve para modificar el orden de los datos en la serie"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5 6\n",
"4 5\n",
"3 4\n",
"2 3\n",
"1 2\n",
"0 1\n",
"dtype: int64"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"serie.iloc[a.index[0]: a.index[1]].sort_values(ascending=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Se utiliza para verificar que los indices existan y para comprobar que si esten en el lugar correcto"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Int64Index([0, 6, 10, 15, 17, 25], dtype='int64')"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a.index"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Comprobando que se organicen de manera correcta los datos numericos "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5 6\n",
"4 5\n",
"3 4\n",
"2 3\n",
"1 2\n",
"0 1\n",
"dtype: int64"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"final=serie.iloc[list(a.iteritems())[0][0] : list(a.iteritems())[1][0]].sort_values(ascending=False)\n",
"final"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Comprobando que se impriman los indices y su valor correspondiente"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[(0, 1), (6, 1), (10, 1), (15, 1), (17, 1), (25, 9)]\n"
]
}
],
"source": [
"print(list(a.iteritems()))\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Seleccionando los elementos de la lista"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(6, 1)\n"
]
}
],
"source": [
"print(list(a.iteritems())[1])\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ahora se utiliza un for para que recorra cada elemento de la lista, se organiza y se imprime en el orden pedido en el minireto"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5 6\n",
"4 5\n",
"3 4\n",
"2 3\n",
"1 2\n",
"0 1\n",
"dtype: int64\n",
"9 4\n",
"8 3\n",
"7 2\n",
"6 1\n",
"dtype: int64\n",
"14 5\n",
"13 4\n",
"12 3\n",
"11 2\n",
"10 1\n",
"dtype: int64\n",
"16 2\n",
"15 1\n",
"dtype: int64\n",
"24 8\n",
"23 7\n",
"22 6\n",
"21 5\n",
"20 4\n",
"19 3\n",
"18 2\n",
"17 1\n",
"dtype: int64\n"
]
}
],
"source": [
"for index_row,iteracion in zip(a.iteritems(),range(1,len(a+1))):\n",
" #print(index_row[0])\n",
" print(serie.iloc[index_row[0]:a.index[iteracion]].sort_values(ascending=False))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Loading