Content for Decem's Python course.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

last updates

+3942 -358
+1 -1
Curso de Python - Tema 01.ipynb
··· 49 49 "\n", 50 50 "Python se desarrolla bajo una licencia open source, aprobada por la OSI, haciendo que sea libre de ser usado y distribuido, incluso para uso comercial. La licencia de Python es administrada por la Python Software Foundation.\n", 51 51 "\n", 52 - "En julio de 2019, Python se encuentra como el tercer lenguaje en popularidad, según el [índice TIOBE](https://www.tiobe.com/tiobe-index//?6671423=1), sólo detrás de Java, C y superando a C++." 52 + "En agosto de 2019, Python se encuentra como el tercer lenguaje en popularidad, según el [índice TIOBE](https://www.tiobe.com/tiobe-index//?6671423=1), sólo detrás de Java, C y superando a C++." 53 53 ] 54 54 }, 55 55 {
+24 -24
Curso de Python - Tema 03.ipynb
··· 8 8 } 9 9 }, 10 10 "source": [ 11 - "## 3. Objetos Built-in (int, float,str, ”usar Python como una calculadora”) " 11 + "## 3. Objetos Built-in (int, float,str,...) " 12 12 ] 13 13 }, 14 14 { ··· 132 132 }, 133 133 { 134 134 "cell_type": "code", 135 - "execution_count": 2, 135 + "execution_count": 3, 136 136 "metadata": { 137 137 "slideshow": { 138 138 "slide_type": "fragment" ··· 145 145 "121.605" 146 146 ] 147 147 }, 148 - "execution_count": 2, 148 + "execution_count": 3, 149 149 "metadata": {}, 150 150 "output_type": "execute_result" 151 151 } ··· 181 181 }, 182 182 { 183 183 "cell_type": "code", 184 - "execution_count": 3, 184 + "execution_count": 4, 185 185 "metadata": { 186 186 "slideshow": { 187 187 "slide_type": "slide" ··· 194 194 "900" 195 195 ] 196 196 }, 197 - "execution_count": 3, 197 + "execution_count": 4, 198 198 "metadata": {}, 199 199 "output_type": "execute_result" 200 200 } ··· 219 219 }, 220 220 { 221 221 "cell_type": "code", 222 - "execution_count": 4, 222 + "execution_count": 5, 223 223 "metadata": { 224 224 "slideshow": { 225 225 "slide_type": "fragment" ··· 228 228 "outputs": [ 229 229 { 230 230 "ename": "SyntaxError", 231 - "evalue": "invalid syntax (<ipython-input-4-4c8ddce8d5a2>, line 1)", 231 + "evalue": "invalid syntax (<ipython-input-5-4c8ddce8d5a2>, line 1)", 232 232 "output_type": "error", 233 233 "traceback": [ 234 - "\u001b[0;36m File \u001b[0;32m\"<ipython-input-4-4c8ddce8d5a2>\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 2var = \"foo\"\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" 234 + "\u001b[0;36m File \u001b[0;32m\"<ipython-input-5-4c8ddce8d5a2>\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m 2var = \"foo\"\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" 235 235 ] 236 236 } 237 237 ], ··· 241 241 }, 242 242 { 243 243 "cell_type": "code", 244 - "execution_count": 5, 244 + "execution_count": 6, 245 245 "metadata": { 246 246 "slideshow": { 247 247 "slide_type": "fragment" ··· 250 250 "outputs": [ 251 251 { 252 252 "ename": "SyntaxError", 253 - "evalue": "invalid syntax (<ipython-input-5-34daa86cb8f6>, line 1)", 253 + "evalue": "invalid syntax (<ipython-input-6-34daa86cb8f6>, line 1)", 254 254 "output_type": "error", 255 255 "traceback": [ 256 - "\u001b[0;36m File \u001b[0;32m\"<ipython-input-5-34daa86cb8f6>\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m break = 100\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" 256 + "\u001b[0;36m File \u001b[0;32m\"<ipython-input-6-34daa86cb8f6>\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m break = 100\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" 257 257 ] 258 258 } 259 259 ], ··· 263 263 }, 264 264 { 265 265 "cell_type": "code", 266 - "execution_count": 6, 266 + "execution_count": 7, 267 267 "metadata": { 268 268 "slideshow": { 269 269 "slide_type": "slide" ··· 298 298 }, 299 299 { 300 300 "cell_type": "code", 301 - "execution_count": 7, 301 + "execution_count": 8, 302 302 "metadata": { 303 303 "slideshow": { 304 304 "slide_type": "fragment" ··· 421 421 }, 422 422 { 423 423 "cell_type": "code", 424 - "execution_count": 8, 424 + "execution_count": 9, 425 425 "metadata": { 426 426 "slideshow": { 427 427 "slide_type": "slide" ··· 445 445 }, 446 446 { 447 447 "cell_type": "code", 448 - "execution_count": 9, 448 + "execution_count": 10, 449 449 "metadata": { 450 450 "slideshow": { 451 451 "slide_type": "fragment" ··· 459 459 "traceback": [ 460 460 "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 461 461 "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", 462 - "\u001b[0;32m<ipython-input-9-54675649332c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# no se puede modificar, da una excepción\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mword\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"a\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 462 + "\u001b[0;32m<ipython-input-10-54675649332c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# no se puede modificar, da una excepción\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mword\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"a\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 463 463 "\u001b[0;31mTypeError\u001b[0m: 'str' object does not support item assignment" 464 464 ] 465 465 } ··· 769 769 }, 770 770 { 771 771 "cell_type": "code", 772 - "execution_count": 16, 772 + "execution_count": 15, 773 773 "metadata": { 774 774 "slideshow": { 775 775 "slide_type": "fragment" ··· 782 782 "'Python'" 783 783 ] 784 784 }, 785 - "execution_count": 16, 785 + "execution_count": 15, 786 786 "metadata": {}, 787 787 "output_type": "execute_result" 788 788 } ··· 806 806 }, 807 807 { 808 808 "cell_type": "code", 809 - "execution_count": 18, 809 + "execution_count": 19, 810 810 "metadata": { 811 811 "slideshow": { 812 812 "slide_type": "slide" ··· 819 819 "b'De perdidos al rio'" 820 820 ] 821 821 }, 822 - "execution_count": 18, 822 + "execution_count": 19, 823 823 "metadata": {}, 824 824 "output_type": "execute_result" 825 825 } ··· 831 831 }, 832 832 { 833 833 "cell_type": "code", 834 - "execution_count": 19, 834 + "execution_count": 21, 835 835 "metadata": { 836 836 "slideshow": { 837 837 "slide_type": "fragment" ··· 844 844 "'De perdidos al rio'" 845 845 ] 846 846 }, 847 - "execution_count": 19, 847 + "execution_count": 21, 848 848 "metadata": {}, 849 849 "output_type": "execute_result" 850 850 } ··· 855 855 }, 856 856 { 857 857 "cell_type": "code", 858 - "execution_count": 20, 858 + "execution_count": 22, 859 859 "metadata": { 860 860 "slideshow": { 861 861 "slide_type": "fragment" ··· 868 868 "b'De perdidos al rio'" 869 869 ] 870 870 }, 871 - "execution_count": 20, 871 + "execution_count": 22, 872 872 "metadata": {}, 873 873 "output_type": "execute_result" 874 874 }
+183 -32
Curso de Python - Tema 04.ipynb
··· 37 37 }, 38 38 { 39 39 "cell_type": "code", 40 - "execution_count": null, 40 + "execution_count": 1, 41 41 "metadata": { 42 42 "slideshow": { 43 43 "slide_type": "fragment" 44 44 } 45 45 }, 46 - "outputs": [], 46 + "outputs": [ 47 + { 48 + "data": { 49 + "text/plain": [ 50 + "[1, 4, 9, 16, 25]" 51 + ] 52 + }, 53 + "execution_count": 1, 54 + "metadata": {}, 55 + "output_type": "execute_result" 56 + } 57 + ], 47 58 "source": [ 48 59 "squares = [1, 4, 9, 16, 25]\n", 49 60 "squares" ··· 62 73 }, 63 74 { 64 75 "cell_type": "code", 65 - "execution_count": null, 76 + "execution_count": 3, 66 77 "metadata": { 67 78 "slideshow": { 68 79 "slide_type": "fragment" 69 80 } 70 81 }, 71 - "outputs": [], 82 + "outputs": [ 83 + { 84 + "data": { 85 + "text/plain": [ 86 + "[]" 87 + ] 88 + }, 89 + "execution_count": 3, 90 + "metadata": {}, 91 + "output_type": "execute_result" 92 + } 93 + ], 72 94 "source": [ 73 - "squares = list(1)\n", 95 + "squares = list()\n", 74 96 "squares" 75 97 ] 76 98 }, ··· 89 111 }, 90 112 { 91 113 "cell_type": "code", 92 - "execution_count": null, 114 + "execution_count": 4, 93 115 "metadata": { 94 116 "slideshow": { 95 117 "slide_type": "fragment" 96 118 } 97 119 }, 98 - "outputs": [], 120 + "outputs": [ 121 + { 122 + "data": { 123 + "text/plain": [ 124 + "1" 125 + ] 126 + }, 127 + "execution_count": 4, 128 + "metadata": {}, 129 + "output_type": "execute_result" 130 + } 131 + ], 99 132 "source": [ 100 133 "squares = [1, 4, 9, 16, 25]\n", 101 134 "squares[0]" ··· 114 147 }, 115 148 { 116 149 "cell_type": "code", 117 - "execution_count": null, 150 + "execution_count": 10, 118 151 "metadata": { 119 152 "slideshow": { 120 153 "slide_type": "fragment" 121 154 } 122 155 }, 123 - "outputs": [], 156 + "outputs": [ 157 + { 158 + "name": "stdout", 159 + "output_type": "stream", 160 + "text": [ 161 + "[1, 4, 9, 16, 25]\n", 162 + "[1, 4, 9, 16]\n", 163 + "[4, 9, 16]\n" 164 + ] 165 + } 166 + ], 124 167 "source": [ 125 - "print(squares[:1:-1]) # el primer elemento\n", 168 + "print(squares[:100]) # el primer elemento\n", 126 169 "print(squares[:-1]) # todos menos el último elemento\n", 127 170 "print(squares[1:-1]) # todos menos el primero y el último elemento" 128 171 ] ··· 140 183 }, 141 184 { 142 185 "cell_type": "code", 143 - "execution_count": null, 186 + "execution_count": 11, 144 187 "metadata": { 145 188 "slideshow": { 146 189 "slide_type": "fragment" 147 190 } 148 191 }, 149 - "outputs": [], 192 + "outputs": [ 193 + { 194 + "data": { 195 + "text/plain": [ 196 + "5" 197 + ] 198 + }, 199 + "execution_count": 11, 200 + "metadata": {}, 201 + "output_type": "execute_result" 202 + } 203 + ], 150 204 "source": [ 151 205 "len(squares)" 152 206 ] ··· 164 218 }, 165 219 { 166 220 "cell_type": "code", 167 - "execution_count": null, 221 + "execution_count": 12, 168 222 "metadata": { 169 223 "slideshow": { 170 224 "slide_type": "fragment" 171 225 } 172 226 }, 173 - "outputs": [], 227 + "outputs": [ 228 + { 229 + "data": { 230 + "text/plain": [ 231 + "True" 232 + ] 233 + }, 234 + "execution_count": 12, 235 + "metadata": {}, 236 + "output_type": "execute_result" 237 + } 238 + ], 174 239 "source": [ 175 240 "16 in squares" 176 241 ] ··· 271 336 }, 272 337 { 273 338 "cell_type": "code", 274 - "execution_count": null, 339 + "execution_count": 13, 275 340 "metadata": { 276 341 "slideshow": { 277 342 "slide_type": "slide" 278 343 } 279 344 }, 280 - "outputs": [], 345 + "outputs": [ 346 + { 347 + "name": "stdout", 348 + "output_type": "stream", 349 + "text": [ 350 + "2\n", 351 + "0\n", 352 + "3\n", 353 + "6\n", 354 + "['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']\n", 355 + "['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']\n", 356 + "['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']\n", 357 + "pear\n" 358 + ] 359 + } 360 + ], 281 361 "source": [ 282 362 "fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']\n", 283 363 "print(fruits.count('apple'))\n", ··· 312 392 }, 313 393 { 314 394 "cell_type": "code", 315 - "execution_count": null, 395 + "execution_count": 17, 316 396 "metadata": { 317 397 "slideshow": { 318 398 "slide_type": "slide" 319 399 } 320 400 }, 321 - "outputs": [], 401 + "outputs": [ 402 + { 403 + "name": "stdout", 404 + "output_type": "stream", 405 + "text": [ 406 + "(1, 4, 9, 16, 25)\n", 407 + "()\n", 408 + "('lonely',)\n" 409 + ] 410 + } 411 + ], 322 412 "source": [ 323 413 "squares = 1, 4, 9, 16, 25\n", 324 - "empty = ()\n", 325 - "one = ('lonely',)\n", 414 + "empty = tuple()\n", 415 + "one = 'lonely', \n", 326 416 "\n", 327 417 "print(squares)\n", 328 418 "print(empty)\n", ··· 331 421 }, 332 422 { 333 423 "cell_type": "code", 334 - "execution_count": null, 424 + "execution_count": 18, 335 425 "metadata": { 336 426 "slideshow": { 337 427 "slide_type": "fragment" 338 428 } 339 429 }, 340 - "outputs": [], 430 + "outputs": [ 431 + { 432 + "ename": "TypeError", 433 + "evalue": "'tuple' object does not support item assignment", 434 + "output_type": "error", 435 + "traceback": [ 436 + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 437 + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", 438 + "\u001b[0;32m<ipython-input-18-7fc785aa63fe>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0msquares\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 439 + "\u001b[0;31mTypeError\u001b[0m: 'tuple' object does not support item assignment" 440 + ] 441 + } 442 + ], 341 443 "source": [ 342 444 "squares [0] = 2" 343 445 ] ··· 355 457 }, 356 458 { 357 459 "cell_type": "code", 358 - "execution_count": null, 460 + "execution_count": 22, 359 461 "metadata": { 360 462 "slideshow": { 361 463 "slide_type": "fragment" 362 464 } 363 465 }, 364 - "outputs": [], 466 + "outputs": [ 467 + { 468 + "name": "stdout", 469 + "output_type": "stream", 470 + "text": [ 471 + "apple bannana orange\n" 472 + ] 473 + } 474 + ], 365 475 "source": [ 366 476 "t = \"apple\", \"bannana\", \"orange\"\n", 367 477 "x, y, z = t\n", ··· 385 495 }, 386 496 { 387 497 "cell_type": "code", 388 - "execution_count": null, 498 + "execution_count": 23, 389 499 "metadata": { 390 500 "slideshow": { 391 501 "slide_type": "slide" 392 502 } 393 503 }, 394 - "outputs": [], 504 + "outputs": [ 505 + { 506 + "name": "stdout", 507 + "output_type": "stream", 508 + "text": [ 509 + "{1, 4, 9, 16, 25}\n", 510 + "{1, 4, 9, 16, 25}\n", 511 + "{1, 4, 36, 9, 16, 25}\n" 512 + ] 513 + } 514 + ], 395 515 "source": [ 396 516 "squares = {1, 4, 9, 16, 25}\n", 397 517 "print(squares)\n", ··· 500 620 }, 501 621 { 502 622 "cell_type": "code", 503 - "execution_count": null, 623 + "execution_count": 24, 504 624 "metadata": { 505 625 "slideshow": { 506 626 "slide_type": "slide" 507 627 } 508 628 }, 509 - "outputs": [], 629 + "outputs": [ 630 + { 631 + "name": "stdout", 632 + "output_type": "stream", 633 + "text": [ 634 + "False\n", 635 + "False\n", 636 + "True\n", 637 + "False\n", 638 + "False\n", 639 + "{1, 2, 3, 34, 5, 4, 6, 8, 10, 12, 13, 14, 16, 21, 55}\n", 640 + "{8, 2}\n", 641 + "{1, 34, 3, 5, 13, 21, 55}\n" 642 + ] 643 + } 644 + ], 510 645 "source": [ 511 646 "fib1 = {1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55}\n", 512 647 "fib2 = {1 , 2 , 3 , 5 , 8}\n", ··· 544 679 }, 545 680 { 546 681 "cell_type": "code", 547 - "execution_count": null, 682 + "execution_count": 25, 548 683 "metadata": { 549 684 "slideshow": { 550 685 "slide_type": "slide" 551 686 } 552 687 }, 553 - "outputs": [], 688 + "outputs": [ 689 + { 690 + "name": "stdout", 691 + "output_type": "stream", 692 + "text": [ 693 + "Antonio\n" 694 + ] 695 + } 696 + ], 554 697 "source": [ 555 698 "person = {'name': 'Antonio', 'age': 42}\n", 556 699 "print(person['name'])" ··· 558 701 }, 559 702 { 560 703 "cell_type": "code", 561 - "execution_count": null, 704 + "execution_count": 26, 562 705 "metadata": { 563 706 "slideshow": { 564 707 "slide_type": "fragment" 565 708 } 566 709 }, 567 - "outputs": [], 710 + "outputs": [ 711 + { 712 + "name": "stdout", 713 + "output_type": "stream", 714 + "text": [ 715 + "{'name': 'Antonio', 'age': 42, 'last_name': 'Smith'}\n" 716 + ] 717 + } 718 + ], 568 719 "source": [ 569 720 "person['last_name'] = 'Smith'\n", 570 721 "print(person)"
+168 -21
Curso de Python - Tema 05.ipynb
··· 63 63 }, 64 64 { 65 65 "cell_type": "code", 66 - "execution_count": null, 66 + "execution_count": 2, 67 67 "metadata": { 68 68 "slideshow": { 69 69 "slide_type": "slide" 70 70 } 71 71 }, 72 - "outputs": [], 72 + "outputs": [ 73 + { 74 + "name": "stdout", 75 + "output_type": "stream", 76 + "text": [ 77 + "Introduce un entero: 1.3\n" 78 + ] 79 + }, 80 + { 81 + "ename": "ValueError", 82 + "evalue": "invalid literal for int() with base 10: '1.3'", 83 + "output_type": "error", 84 + "traceback": [ 85 + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 86 + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", 87 + "\u001b[0;32m<ipython-input-2-aeca75f7f533>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minput\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Introduce un entero: \"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Negativo cambiado a cero'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", 88 + "\u001b[0;31mValueError\u001b[0m: invalid literal for int() with base 10: '1.3'" 89 + ] 90 + } 91 + ], 73 92 "source": [ 74 93 "x = int(input(\"Introduce un entero: \"))\n", 75 94 "if x < 0:\n", ··· 171 190 }, 172 191 { 173 192 "cell_type": "code", 174 - "execution_count": null, 193 + "execution_count": 3, 175 194 "metadata": { 176 195 "slideshow": { 177 196 "slide_type": "slide" 178 197 } 179 198 }, 180 - "outputs": [], 199 + "outputs": [ 200 + { 201 + "name": "stdout", 202 + "output_type": "stream", 203 + "text": [ 204 + "a\n", 205 + "b\n", 206 + "c\n" 207 + ] 208 + } 209 + ], 181 210 "source": [ 182 211 "my_items = ['a', 'b', 'c']\n", 183 212 "\n", ··· 222 251 }, 223 252 { 224 253 "cell_type": "code", 225 - "execution_count": null, 254 + "execution_count": 4, 226 255 "metadata": { 227 256 "slideshow": { 228 257 "slide_type": "slide" 229 258 } 230 259 }, 231 - "outputs": [], 260 + "outputs": [ 261 + { 262 + "name": "stdout", 263 + "output_type": "stream", 264 + "text": [ 265 + "cat 3\n", 266 + "window 6\n", 267 + "defenestrate 12\n" 268 + ] 269 + } 270 + ], 232 271 "source": [ 233 272 "words = ['cat', 'window', 'defenestrate']\n", 234 273 "for word in words:\n", ··· 237 276 }, 238 277 { 239 278 "cell_type": "code", 240 - "execution_count": null, 279 + "execution_count": 5, 241 280 "metadata": { 242 281 "slideshow": { 243 282 "slide_type": "fragment" 244 283 } 245 284 }, 246 - "outputs": [], 285 + "outputs": [ 286 + { 287 + "name": "stdout", 288 + "output_type": "stream", 289 + "text": [ 290 + "p\n", 291 + "n\n", 292 + "e\n", 293 + "u\n", 294 + "m\n", 295 + "o\n", 296 + "n\n", 297 + "o\n", 298 + "u\n", 299 + "l\n", 300 + "t\n", 301 + "r\n", 302 + "a\n", 303 + "m\n", 304 + "i\n", 305 + "c\n", 306 + "r\n", 307 + "o\n", 308 + "s\n", 309 + "c\n", 310 + "o\n", 311 + "p\n", 312 + "i\n", 313 + "c\n", 314 + "s\n", 315 + "i\n", 316 + "l\n", 317 + "i\n", 318 + "c\n", 319 + "o\n", 320 + "v\n", 321 + "o\n", 322 + "l\n", 323 + "c\n", 324 + "a\n", 325 + "n\n", 326 + "o\n", 327 + "c\n", 328 + "o\n", 329 + "n\n", 330 + "i\n", 331 + "o\n", 332 + "s\n", 333 + "i\n", 334 + "s\n" 335 + ] 336 + } 337 + ], 247 338 "source": [ 248 339 "word = 'pneumonoultramicroscopicsilicovolcanoconiosis'\n", 249 340 "for letter in word:\n", ··· 302 393 }, 303 394 { 304 395 "cell_type": "code", 305 - "execution_count": null, 396 + "execution_count": 6, 306 397 "metadata": { 307 398 "slideshow": { 308 399 "slide_type": "slide" 309 400 } 310 401 }, 311 - "outputs": [], 402 + "outputs": [ 403 + { 404 + "name": "stdout", 405 + "output_type": "stream", 406 + "text": [ 407 + "0 Mary\n", 408 + "1 had\n", 409 + "2 a\n", 410 + "3 little\n", 411 + "4 lamb\n" 412 + ] 413 + } 414 + ], 312 415 "source": [ 313 416 "a = ['Mary', 'had', 'a', 'little', 'lamb']\n", 314 417 "for i in range(len(a)):\n", ··· 363 466 }, 364 467 { 365 468 "cell_type": "code", 366 - "execution_count": null, 469 + "execution_count": 12, 367 470 "metadata": { 368 471 "slideshow": { 369 472 "slide_type": "slide" 370 473 } 371 474 }, 372 - "outputs": [], 475 + "outputs": [ 476 + { 477 + "name": "stdout", 478 + "output_type": "stream", 479 + "text": [ 480 + "<map object at 0x106fd79e8>\n", 481 + "Despues del continue\n", 482 + "Despues del continue\n", 483 + "Despues del continue\n", 484 + "9\n" 485 + ] 486 + } 487 + ], 373 488 "source": [ 374 489 "elements = map(lambda x: x **2, range(10))\n", 375 490 "print(elements)\n", ··· 377 492 "for element in elements:\n", 378 493 " if element > n:\n", 379 494 " print(element)\n", 380 - " continue\n", 381 - " print(\"Despues del continue\")\n", 495 + " break\n", 496 + " print(\"Despues del if \")\n", 382 497 "else:\n", 383 498 " print(f\"No hay un número mayor que {n}\")" 384 499 ] ··· 470 585 }, 471 586 { 472 587 "cell_type": "code", 473 - "execution_count": null, 588 + "execution_count": 13, 474 589 "metadata": { 475 590 "slideshow": { 476 591 "slide_type": "slide" 477 592 } 478 593 }, 479 - "outputs": [], 594 + "outputs": [ 595 + { 596 + "name": "stdout", 597 + "output_type": "stream", 598 + "text": [ 599 + "5\n", 600 + "8\n", 601 + "11\n", 602 + "14\n", 603 + "17\n", 604 + "20\n" 605 + ] 606 + } 607 + ], 480 608 "source": [ 481 609 "from itertools import count\n", 482 610 "\n", ··· 489 617 }, 490 618 { 491 619 "cell_type": "code", 492 - "execution_count": null, 620 + "execution_count": 1, 493 621 "metadata": { 494 622 "slideshow": { 495 623 "slide_type": "slide" 496 624 } 497 625 }, 498 - "outputs": [], 626 + "outputs": [ 627 + { 628 + "name": "stdout", 629 + "output_type": "stream", 630 + "text": [ 631 + "P\n", 632 + "y\n", 633 + "t\n", 634 + "h\n", 635 + "o\n", 636 + "n\n", 637 + "P\n", 638 + "y\n", 639 + "t\n", 640 + "h\n", 641 + "o\n", 642 + "n\n" 643 + ] 644 + } 645 + ], 499 646 "source": [ 500 647 "from itertools import cycle\n", 501 648 "\n", 502 - "list(cycle(\"Python\"))\n", 649 + "\n", 503 650 "counter = 0 \n", 504 - "for eleme,nt in cycle(\"Python\"):\n", 651 + "for element in cycle(\"Python\"):\n", 505 652 " print(element)\n", 506 653 " counter += 1\n", 507 654 " if counter == 12: \n", ··· 510 657 }, 511 658 { 512 659 "cell_type": "code", 513 - "execution_count": null, 660 + "execution_count": 1, 514 661 "metadata": { 515 662 "slideshow": { 516 663 "slide_type": "slide"
+106 -31
Curso de Python - Tema 06.ipynb
··· 47 47 }, 48 48 { 49 49 "cell_type": "code", 50 - "execution_count": null, 50 + "execution_count": 1, 51 51 "metadata": { 52 52 "slideshow": { 53 53 "slide_type": "slide" 54 54 } 55 55 }, 56 - "outputs": [], 56 + "outputs": [ 57 + { 58 + "name": "stdout", 59 + "output_type": "stream", 60 + "text": [ 61 + "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 \n" 62 + ] 63 + } 64 + ], 57 65 "source": [ 58 66 "def fib(n): \n", 59 67 " \"\"\"Muestra la secuencia de Fibonacci hasta n.\"\"\"\n", ··· 79 87 }, 80 88 { 81 89 "cell_type": "code", 82 - "execution_count": null, 90 + "execution_count": 2, 83 91 "metadata": { 84 92 "slideshow": { 85 93 "slide_type": "slide" 86 94 } 87 95 }, 88 - "outputs": [], 96 + "outputs": [ 97 + { 98 + "data": { 99 + "text/plain": [ 100 + "<function __main__.fib(n)>" 101 + ] 102 + }, 103 + "execution_count": 2, 104 + "metadata": {}, 105 + "output_type": "execute_result" 106 + } 107 + ], 89 108 "source": [ 90 109 "fib" 91 110 ] 92 111 }, 93 112 { 94 113 "cell_type": "code", 95 - "execution_count": null, 114 + "execution_count": 3, 96 115 "metadata": { 97 116 "slideshow": { 98 117 "slide_type": "fragment" 99 118 } 100 119 }, 101 - "outputs": [], 120 + "outputs": [ 121 + { 122 + "name": "stdout", 123 + "output_type": "stream", 124 + "text": [ 125 + "4585580472 4585580472\n" 126 + ] 127 + } 128 + ], 102 129 "source": [ 103 130 "f = fib\n", 104 131 "print(id(f), id(fib))" ··· 152 179 }, 153 180 { 154 181 "cell_type": "code", 155 - "execution_count": null, 182 + "execution_count": 4, 156 183 "metadata": { 157 184 "slideshow": { 158 185 "slide_type": "subslide" 159 186 } 160 187 }, 161 - "outputs": [], 188 + "outputs": [ 189 + { 190 + "name": "stdout", 191 + "output_type": "stream", 192 + "text": [ 193 + "Argumentos posicionales: (10, 2)\n", 194 + "Argumentos por nombre: {'test': 'foo', 'c': 23}\n" 195 + ] 196 + } 197 + ], 162 198 "source": [ 163 199 "def generic_arguments(*args, **kwargs):\n", 164 200 " print(\"Argumentos posicionales:\", args)\n", 165 201 " print(\"Argumentos por nombre:\", kwargs)\n", 166 202 "\n", 167 - "d = {\"test\": \"foo\", \"c\": 26}\n", 168 - "generic_arguments(**d)" 203 + "generic_arguments(10, 2, test=\"foo\", c=23)" 169 204 ] 170 205 }, 171 206 { ··· 183 218 }, 184 219 { 185 220 "cell_type": "code", 186 - "execution_count": null, 221 + "execution_count": 12, 187 222 "metadata": { 188 223 "slideshow": { 189 224 "slide_type": "slide" 190 225 } 191 226 }, 192 - "outputs": [], 227 + "outputs": [ 228 + { 229 + "name": "stdout", 230 + "output_type": "stream", 231 + "text": [ 232 + "[('water', 1), ('food', 2), ('air', 3)]\n", 233 + "[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]\n" 234 + ] 235 + } 236 + ], 193 237 "source": [ 194 238 "l = [(\"food\", 2), (\"water\", 1), (\"air\", 3)]\n", 195 - "l.sort(key=lambda x: x[1], reverse=True)\n", 239 + "\n", 240 + "l.sort(key=lambda x: x[1])\n", 196 241 "print(l)\n", 197 242 "\n", 198 - "\n", 199 - "def foo(x):\n", 200 - " return x[1]\n", 201 - "l.sort(key=foo, reverse=True)\n", 202 - "print(l)" 243 + "l = range(10)\n", 244 + "print(list(map(lambda x: x * 2, l)))\n" 203 245 ] 204 246 }, 205 247 { 206 248 "cell_type": "code", 207 - "execution_count": null, 249 + "execution_count": 5, 208 250 "metadata": { 209 251 "slideshow": { 210 252 "slide_type": "slide" 211 253 } 212 254 }, 213 - "outputs": [], 255 + "outputs": [ 256 + { 257 + "name": "stdout", 258 + "output_type": "stream", 259 + "text": [ 260 + "<function <lambda> at 0x111526e18>\n", 261 + "6\n" 262 + ] 263 + } 264 + ], 214 265 "source": [ 215 266 "print(lambda x: x[1])\n", 216 267 "\n", ··· 228 279 "source": [ 229 280 "### Generadores\n", 230 281 "\n", 231 - "Los generadores son herramientas simples y sencillas para crear iteradores. Un generador se escribe igual que cualquier función, sólo que se usa la instrucción `yield` para devolver los datos, de forma que un **generador produce una secuencia de datos en vez de un valor único**." 282 + "Los generadores son herramientas simples y sencillas para crear iteradores.\n", 283 + "\n", 284 + "Un generador se escribe igual que cualquier función, sólo que se usa la instrucción `yield` para devolver los datos, de forma que un **generador produce una secuencia de datos en vez de un valor único**." 232 285 ] 233 286 }, 234 287 { 235 288 "cell_type": "code", 236 - "execution_count": null, 289 + "execution_count": 13, 237 290 "metadata": { 238 291 "slideshow": { 239 292 "slide_type": "slide" 240 293 } 241 294 }, 242 - "outputs": [], 295 + "outputs": [ 296 + { 297 + "name": "stdout", 298 + "output_type": "stream", 299 + "text": [ 300 + "<generator object countdown at 0x1115085e8>\n", 301 + "[2, 1]\n" 302 + ] 303 + } 304 + ], 243 305 "source": [ 244 306 "def countdown(n):\n", 245 307 " while n > 0:\n", 246 308 " yield n\n", 247 309 " n -= 1\n", 248 310 "\n", 249 - "gen = countdown(10)\n", 311 + "gen = countdown(2)\n", 250 312 "print(gen)\n", 251 - "print(next(gen))\n", 252 - "print(next(gen))\n" 313 + "print(list(gen))" 253 314 ] 254 315 }, 255 316 { ··· 265 326 }, 266 327 { 267 328 "cell_type": "code", 268 - "execution_count": null, 329 + "execution_count": 19, 269 330 "metadata": { 270 331 "slideshow": { 271 332 "slide_type": "slide" 272 333 } 273 334 }, 274 - "outputs": [], 335 + "outputs": [ 336 + { 337 + "name": "stdout", 338 + "output_type": "stream", 339 + "text": [ 340 + "Cuenta atrás desde: 10\n", 341 + "10\n", 342 + "8\n", 343 + "6\n", 344 + "4\n", 345 + "2\n" 346 + ] 347 + } 348 + ], 275 349 "source": [ 276 350 "def countdown(n):\n", 277 351 " print(\"Cuenta atrás desde:\", n)\n", ··· 279 353 " yield n\n", 280 354 " n -= 1\n", 281 355 "\n", 282 - "x = countdown(10)\n", 283 - "print(x)\n", 284 - "next(x)" 356 + "gen = countdown(10)\n", 357 + "for x in gen:\n", 358 + " print(x)\n", 359 + " next(gen)" 285 360 ] 286 361 } 287 362 ],
+35 -6
Curso de Python - Tema 07.ipynb
··· 8 8 } 9 9 }, 10 10 "source": [ 11 - "## 7. Orientación a objetos (“Todo es un objeto en Python”)" 11 + "## 7. Orientación a objetos" 12 12 ] 13 13 }, 14 14 { ··· 87 87 }, 88 88 { 89 89 "cell_type": "code", 90 - "execution_count": null, 90 + "execution_count": 1, 91 91 "metadata": { 92 92 "slideshow": { 93 93 "slide_type": "slide" ··· 104 104 }, 105 105 { 106 106 "cell_type": "code", 107 - "execution_count": null, 107 + "execution_count": 2, 108 108 "metadata": { 109 109 "slideshow": { 110 110 "slide_type": "slide" 111 111 } 112 112 }, 113 - "outputs": [], 113 + "outputs": [ 114 + { 115 + "name": "stdout", 116 + "output_type": "stream", 117 + "text": [ 118 + "3\n", 119 + "3\n", 120 + "[1, 2, 3]\n", 121 + "[1, 2, 3, 4]\n" 122 + ] 123 + } 124 + ], 114 125 "source": [ 115 126 "var = 3\n", 116 127 "print(var)\n", ··· 187 198 }, 188 199 { 189 200 "cell_type": "code", 190 - "execution_count": null, 201 + "execution_count": 3, 191 202 "metadata": { 192 203 "slideshow": { 193 204 "slide_type": "slide" 194 205 } 195 206 }, 196 - "outputs": [], 207 + "outputs": [ 208 + { 209 + "name": "stdout", 210 + "output_type": "stream", 211 + "text": [ 212 + "Después de la asignación local: test spam\n", 213 + "Después de la asignación nonocal: nonlocal spam\n", 214 + "Después de la asignación global: nonlocal spam\n", 215 + "En el scope global: global spam\n" 216 + ] 217 + } 218 + ], 197 219 "source": [ 198 220 "def scope_test():\n", 199 221 " def do_local():\n", ··· 218 240 "scope_test()\n", 219 241 "print(\"En el scope global:\", spam)" 220 242 ] 243 + }, 244 + { 245 + "cell_type": "code", 246 + "execution_count": null, 247 + "metadata": {}, 248 + "outputs": [], 249 + "source": [] 221 250 } 222 251 ], 223 252 "metadata": {
+129 -25
Curso de Python - Tema 08.ipynb
··· 65 65 }, 66 66 { 67 67 "cell_type": "code", 68 - "execution_count": null, 68 + "execution_count": 10, 69 69 "metadata": { 70 70 "slideshow": { 71 71 "slide_type": "slide" 72 72 } 73 73 }, 74 - "outputs": [], 74 + "outputs": [ 75 + { 76 + "name": "stdout", 77 + "output_type": "stream", 78 + "text": [ 79 + "42\n" 80 + ] 81 + } 82 + ], 75 83 "source": [ 76 84 "class MyClass:\n", 77 85 " \"\"\"A simple example class\"\"\"\n", ··· 82 90 " def g(self, value):\n", 83 91 " self.i = value\n", 84 92 "\n", 85 - "print(MyClass.i)\n", 86 - "print(MyClass.f)" 93 + "x = MyClass()\n", 94 + "x.g(42)\n", 95 + "print(x.i)" 87 96 ] 88 97 }, 89 98 { 90 99 "cell_type": "markdown", 91 100 "metadata": { 92 101 "slideshow": { 93 - "slide_type": "fragment" 102 + "slide_type": "slide" 94 103 } 95 104 }, 96 105 "source": [ ··· 107 116 }, 108 117 { 109 118 "cell_type": "code", 110 - "execution_count": null, 119 + "execution_count": 16, 111 120 "metadata": { 112 121 "slideshow": { 113 - "slide_type": "fragment" 122 + "slide_type": "slide" 114 123 } 115 124 }, 116 - "outputs": [], 125 + "outputs": [ 126 + { 127 + "name": "stdout", 128 + "output_type": "stream", 129 + "text": [ 130 + "42\n", 131 + "27\n" 132 + ] 133 + } 134 + ], 117 135 "source": [ 136 + "class MyClass:\n", 137 + " i = 123\n", 118 138 "x = MyClass() # nueva instancia de MyClass\n", 139 + "y = MyClass()\n", 140 + "x.i = 42\n", 141 + "MyClass.i = 27\n", 119 142 "print(x.i)\n", 120 - "print(x.f())" 143 + "print(y.i)" 121 144 ] 122 145 }, 123 146 { ··· 146 169 }, 147 170 { 148 171 "cell_type": "code", 149 - "execution_count": null, 172 + "execution_count": 22, 150 173 "metadata": { 151 174 "slideshow": { 152 175 "slide_type": "fragment" 153 176 } 154 177 }, 155 - "outputs": [], 178 + "outputs": [ 179 + { 180 + "name": "stdout", 181 + "output_type": "stream", 182 + "text": [ 183 + "4435586128\n", 184 + "4435586240\n", 185 + "{}\n", 186 + "{}\n" 187 + ] 188 + }, 189 + { 190 + "ename": "AttributeError", 191 + "evalue": "'MyClass' object has no attribute 'data2'", 192 + "output_type": "error", 193 + "traceback": [ 194 + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 195 + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", 196 + "\u001b[0;32m<ipython-input-22-64b050e3e0e8>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 20\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", 197 + "\u001b[0;31mAttributeError\u001b[0m: 'MyClass' object has no attribute 'data2'" 198 + ] 199 + } 200 + ], 156 201 "source": [ 157 202 "class MyClass:\n", 158 203 " def __init__(self):\n", 159 - " self.data = []" 204 + " self.data = []\n", 205 + "\n", 206 + " def add(self, x):\n", 207 + " self.data.append(x)\n", 208 + " def f(self):\n", 209 + " print(self.data2)\n", 210 + "\n", 211 + "x = MyClass()\n", 212 + "y = MyClass()\n", 213 + "print(id(x))\n", 214 + "print(id(y))\n", 215 + "x.add(1)\n", 216 + "y.add(2)\n", 217 + "x.data2=dict()\n", 218 + "x.f = \n", 219 + "\n", 220 + "print(x.data2)\n", 221 + "print(y.data2)" 160 222 ] 161 223 }, 162 224 { ··· 174 236 }, 175 237 { 176 238 "cell_type": "code", 177 - "execution_count": null, 239 + "execution_count": 23, 178 240 "metadata": { 179 241 "slideshow": { 180 242 "slide_type": "slide" 181 243 } 182 244 }, 183 - "outputs": [], 245 + "outputs": [ 246 + { 247 + "name": "stdout", 248 + "output_type": "stream", 249 + "text": [ 250 + "1\n", 251 + "0\n" 252 + ] 253 + } 254 + ], 184 255 "source": [ 185 256 "class MyClass:\n", 186 257 "\n", ··· 213 284 }, 214 285 { 215 286 "cell_type": "code", 216 - "execution_count": null, 287 + "execution_count": 24, 217 288 "metadata": { 218 289 "slideshow": { 219 - "slide_type": "fragment" 290 + "slide_type": "slide" 220 291 } 221 292 }, 222 - "outputs": [], 293 + "outputs": [ 294 + { 295 + "name": "stdout", 296 + "output_type": "stream", 297 + "text": [ 298 + "42\n" 299 + ] 300 + } 301 + ], 223 302 "source": [ 224 303 "x = MyClass()\n", 225 304 "x.value = 42\n", ··· 243 322 }, 244 323 { 245 324 "cell_type": "code", 246 - "execution_count": null, 325 + "execution_count": 25, 247 326 "metadata": { 327 + "scrolled": true, 248 328 "slideshow": { 249 329 "slide_type": "slide" 250 330 } 251 331 }, 252 - "outputs": [], 332 + "outputs": [ 333 + { 334 + "name": "stdout", 335 + "output_type": "stream", 336 + "text": [ 337 + "Soy estático!\n", 338 + "Soy un nuevo atributo de clase!\n" 339 + ] 340 + } 341 + ], 253 342 "source": [ 254 343 "class MyClass:\n", 255 344 "\n", 256 - " def __init__(self):\n", 345 + " def __init__(self, x):\n", 257 346 " self.data = []\n", 347 + " self.x = x\n", 258 348 "\n", 259 349 " @staticmethod\n", 260 350 " def some_static_stuff():\n", ··· 263 353 " @classmethod\n", 264 354 " def some_class_stuff(cls):\n", 265 355 " cls.class_attribute = \"Soy un nuevo atributo de clase!\"\n", 266 - "\n", 356 + "MyClass(19)\n", 267 357 "MyClass.some_static_stuff()\n", 268 358 "MyClass.some_class_stuff()\n", 269 359 "print(MyClass.class_attribute)" ··· 295 385 "cell_type": "markdown", 296 386 "metadata": { 297 387 "slideshow": { 298 - "slide_type": "fragment" 388 + "slide_type": "slide" 299 389 } 300 390 }, 301 391 "source": [ ··· 427 517 }, 428 518 { 429 519 "cell_type": "code", 430 - "execution_count": null, 520 + "execution_count": 3, 431 521 "metadata": { 432 522 "slideshow": { 433 523 "slide_type": "slide" 434 524 } 435 525 }, 436 - "outputs": [], 526 + "outputs": [ 527 + { 528 + "name": "stdout", 529 + "output_type": "stream", 530 + "text": [ 531 + "init de Mapping\n", 532 + "update de Mapping\n", 533 + "update de MappingSubclass\n" 534 + ] 535 + } 536 + ], 437 537 "source": [ 438 538 "class Mapping:\n", 439 539 " def __init__(self, iterable):\n", ··· 455 555 " # proporciona un nuevo método update, con parámetros distintos\n", 456 556 " # pero no rompe la implementación de __init__()\n", 457 557 " for item in zip(keys, values):\n", 458 - " self.items_list.append(item)" 558 + " self.items_list.append(item)\n", 559 + " __update = update\n", 560 + " \n", 561 + "sm = MappingSubclass(\"abc\")\n", 562 + "sm.update(list(range(5)), \"abcde\")" 459 563 ] 460 564 }, 461 565 {
+502 -76
Curso de Python - Tema 10.ipynb
··· 44 44 }, 45 45 { 46 46 "cell_type": "code", 47 - "execution_count": null, 47 + "execution_count": 1, 48 48 "metadata": { 49 49 "slideshow": { 50 50 "slide_type": "fragment" ··· 90 90 } 91 91 }, 92 92 "source": [ 93 + "![Axis](./img/axis.jpg)" 94 + ] 95 + }, 96 + { 97 + "cell_type": "markdown", 98 + "metadata": { 99 + "slideshow": { 100 + "slide_type": "slide" 101 + } 102 + }, 103 + "source": [ 93 104 "Por ejemplo, las coordenadas de un punto en un espacio tridimensional `[1, 2, 1]` tienen un `axis`. Este tiene tres elementos en él, por lo que decimos que tiene una longitud de `3`. \n", 94 105 "\n", 95 106 "En el ejemplo siguiente, la matriz tiene dos dimensiones, el primero tiene una longitud de 2 y el segundo de 3:\n", ··· 102 113 }, 103 114 { 104 115 "cell_type": "code", 105 - "execution_count": null, 116 + "execution_count": 9, 106 117 "metadata": { 107 118 "slideshow": { 108 119 "slide_type": "slide" 109 120 } 110 121 }, 111 - "outputs": [], 122 + "outputs": [ 123 + { 124 + "name": "stdout", 125 + "output_type": "stream", 126 + "text": [ 127 + "[[1. 2.]\n", 128 + " [3. 4.]]\n", 129 + "[[5. 6.]\n", 130 + " [7. 8.]]\n" 131 + ] 132 + } 133 + ], 112 134 "source": [ 113 135 "import numpy as np\n", 114 136 "\n", ··· 116 138 "y = np.array([[5,6],[7,8]], dtype=np.float64)\n", 117 139 "\n", 118 140 "print(x)\n", 119 - "print(y)" 141 + "print(y)\n" 120 142 ] 121 143 }, 122 144 { ··· 277 299 }, 278 300 { 279 301 "cell_type": "code", 280 - "execution_count": null, 302 + "execution_count": 2, 281 303 "metadata": { 282 304 "slideshow": { 283 305 "slide_type": "slide" 284 306 } 285 307 }, 286 - "outputs": [], 308 + "outputs": [ 309 + { 310 + "name": "stdout", 311 + "output_type": "stream", 312 + "text": [ 313 + "[2 3 4]\n", 314 + "[[1.5 2. 3. ]\n", 315 + " [4. 5. 6. ]]\n", 316 + "[[1.+0.j 2.+0.j]\n", 317 + " [3.+0.j 4.+0.j]]\n" 318 + ] 319 + } 320 + ], 287 321 "source": [ 288 322 "a = np.array([2,3,4])\n", 289 323 "print(a)\n", ··· 308 342 }, 309 343 { 310 344 "cell_type": "code", 311 - "execution_count": null, 345 + "execution_count": 3, 312 346 "metadata": { 313 347 "slideshow": { 314 348 "slide_type": "fragment" 315 349 } 316 350 }, 317 - "outputs": [], 351 + "outputs": [ 352 + { 353 + "data": { 354 + "text/plain": [ 355 + "array([[0., 0., 0., 0.],\n", 356 + " [0., 0., 0., 0.],\n", 357 + " [0., 0., 0., 0.]])" 358 + ] 359 + }, 360 + "execution_count": 3, 361 + "metadata": {}, 362 + "output_type": "execute_result" 363 + } 364 + ], 318 365 "source": [ 319 366 "np.zeros( (3,4) )" 320 367 ] ··· 332 379 }, 333 380 { 334 381 "cell_type": "code", 335 - "execution_count": null, 382 + "execution_count": 4, 336 383 "metadata": { 337 384 "slideshow": { 338 385 "slide_type": "fragment" 339 386 } 340 387 }, 341 - "outputs": [], 388 + "outputs": [ 389 + { 390 + "data": { 391 + "text/plain": [ 392 + "array([[[1, 1, 1, 1],\n", 393 + " [1, 1, 1, 1],\n", 394 + " [1, 1, 1, 1]],\n", 395 + "\n", 396 + " [[1, 1, 1, 1],\n", 397 + " [1, 1, 1, 1],\n", 398 + " [1, 1, 1, 1]]], dtype=int16)" 399 + ] 400 + }, 401 + "execution_count": 4, 402 + "metadata": {}, 403 + "output_type": "execute_result" 404 + } 405 + ], 342 406 "source": [ 343 407 "np.ones( (2,3,4), dtype=np.int16 ) " 344 408 ] ··· 356 420 }, 357 421 { 358 422 "cell_type": "code", 359 - "execution_count": null, 423 + "execution_count": 6, 360 424 "metadata": { 361 425 "slideshow": { 362 426 "slide_type": "fragment" 363 427 } 364 428 }, 365 - "outputs": [], 429 + "outputs": [ 430 + { 431 + "data": { 432 + "text/plain": [ 433 + "array([[1.5, 2. , 3. ],\n", 434 + " [4. , 5. , 6. ]])" 435 + ] 436 + }, 437 + "execution_count": 6, 438 + "metadata": {}, 439 + "output_type": "execute_result" 440 + } 441 + ], 366 442 "source": [ 367 443 "np.empty( (2,3) )" 368 444 ] ··· 380 456 }, 381 457 { 382 458 "cell_type": "code", 383 - "execution_count": null, 459 + "execution_count": 7, 384 460 "metadata": { 385 461 "slideshow": { 386 462 "slide_type": "fragment" 387 463 } 388 464 }, 389 - "outputs": [], 465 + "outputs": [ 466 + { 467 + "data": { 468 + "text/plain": [ 469 + "array([10, 15, 20, 25])" 470 + ] 471 + }, 472 + "execution_count": 7, 473 + "metadata": {}, 474 + "output_type": "execute_result" 475 + } 476 + ], 390 477 "source": [ 391 478 "np.arange( 10, 30, 5 )" 392 479 ] ··· 417 504 }, 418 505 { 419 506 "cell_type": "code", 420 - "execution_count": null, 507 + "execution_count": 11, 421 508 "metadata": { 422 509 "slideshow": { 423 510 "slide_type": "fragment" 424 511 } 425 512 }, 426 - "outputs": [], 513 + "outputs": [ 514 + { 515 + "name": "stdout", 516 + "output_type": "stream", 517 + "text": [ 518 + "[[ 6. 8.]\n", 519 + " [10. 12.]]\n", 520 + "[[ 6. 8.]\n", 521 + " [10. 12.]]\n" 522 + ] 523 + } 524 + ], 427 525 "source": [ 428 526 "print(x + y)\n", 429 527 "print(np.add(x, y))\n" ··· 442 540 }, 443 541 { 444 542 "cell_type": "code", 445 - "execution_count": null, 543 + "execution_count": 12, 446 544 "metadata": { 447 545 "slideshow": { 448 546 "slide_type": "fragment" 449 547 } 450 548 }, 451 - "outputs": [], 549 + "outputs": [ 550 + { 551 + "name": "stdout", 552 + "output_type": "stream", 553 + "text": [ 554 + "[[-4. -4.]\n", 555 + " [-4. -4.]]\n", 556 + "[[-4. -4.]\n", 557 + " [-4. -4.]]\n" 558 + ] 559 + } 560 + ], 452 561 "source": [ 453 562 "print(x - y)\n", 454 563 "print(np.subtract(x, y))" ··· 467 576 }, 468 577 { 469 578 "cell_type": "code", 470 - "execution_count": null, 579 + "execution_count": 13, 471 580 "metadata": { 472 581 "slideshow": { 473 582 "slide_type": "fragment" 474 583 } 475 584 }, 476 - "outputs": [], 585 + "outputs": [ 586 + { 587 + "name": "stdout", 588 + "output_type": "stream", 589 + "text": [ 590 + "[[ 5. 12.]\n", 591 + " [21. 32.]]\n", 592 + "[[ 5. 12.]\n", 593 + " [21. 32.]]\n" 594 + ] 595 + } 596 + ], 477 597 "source": [ 478 598 "print(x * y)\n", 479 599 "print(np.multiply(x, y))" ··· 492 612 }, 493 613 { 494 614 "cell_type": "code", 495 - "execution_count": null, 615 + "execution_count": 14, 496 616 "metadata": { 497 617 "slideshow": { 498 618 "slide_type": "fragment" 499 619 } 500 620 }, 501 - "outputs": [], 621 + "outputs": [ 622 + { 623 + "name": "stdout", 624 + "output_type": "stream", 625 + "text": [ 626 + "[[0.2 0.33333333]\n", 627 + " [0.42857143 0.5 ]]\n", 628 + "[[0.2 0.33333333]\n", 629 + " [0.42857143 0.5 ]]\n" 630 + ] 631 + } 632 + ], 502 633 "source": [ 503 634 "print(x / y)\n", 504 635 "print(np.divide(x, y))" ··· 517 648 }, 518 649 { 519 650 "cell_type": "code", 520 - "execution_count": null, 651 + "execution_count": 15, 521 652 "metadata": { 522 653 "slideshow": { 523 654 "slide_type": "fragment" 524 655 } 525 656 }, 526 - "outputs": [], 657 + "outputs": [ 658 + { 659 + "name": "stdout", 660 + "output_type": "stream", 661 + "text": [ 662 + "[[1. 1.41421356]\n", 663 + " [1.73205081 2. ]]\n" 664 + ] 665 + } 666 + ], 527 667 "source": [ 528 668 "print(np.sqrt(x))" 529 669 ] ··· 554 694 }, 555 695 { 556 696 "cell_type": "code", 557 - "execution_count": null, 697 + "execution_count": 16, 558 698 "metadata": { 559 699 "slideshow": { 560 700 "slide_type": "slide" ··· 571 711 }, 572 712 { 573 713 "cell_type": "code", 574 - "execution_count": null, 714 + "execution_count": 17, 575 715 "metadata": { 576 716 "slideshow": { 577 717 "slide_type": "slide" 578 718 } 579 719 }, 580 - "outputs": [], 720 + "outputs": [ 721 + { 722 + "name": "stdout", 723 + "output_type": "stream", 724 + "text": [ 725 + "219\n", 726 + "219\n" 727 + ] 728 + } 729 + ], 581 730 "source": [ 582 731 "# Producto de vectores\n", 583 732 "print(v.dot(w))\n", ··· 586 735 }, 587 736 { 588 737 "cell_type": "code", 589 - "execution_count": null, 738 + "execution_count": 18, 590 739 "metadata": { 591 740 "slideshow": { 592 741 "slide_type": "slide" 593 742 } 594 743 }, 595 - "outputs": [], 744 + "outputs": [ 745 + { 746 + "name": "stdout", 747 + "output_type": "stream", 748 + "text": [ 749 + "[29 67]\n", 750 + "[29 67]\n" 751 + ] 752 + } 753 + ], 596 754 "source": [ 597 755 "# Producto de matriz y vector\n", 598 756 "print(x.dot(v))\n", ··· 601 759 }, 602 760 { 603 761 "cell_type": "code", 604 - "execution_count": null, 762 + "execution_count": 19, 605 763 "metadata": { 606 764 "slideshow": { 607 765 "slide_type": "slide" 608 766 } 609 767 }, 610 - "outputs": [], 768 + "outputs": [ 769 + { 770 + "name": "stdout", 771 + "output_type": "stream", 772 + "text": [ 773 + "[[19 22]\n", 774 + " [43 50]]\n", 775 + "[[19 22]\n", 776 + " [43 50]]\n" 777 + ] 778 + } 779 + ], 611 780 "source": [ 612 781 "# Producto de matrices\n", 613 782 "print(x.dot(y))\n", ··· 627 796 }, 628 797 { 629 798 "cell_type": "code", 630 - "execution_count": null, 799 + "execution_count": 20, 631 800 "metadata": { 632 801 "slideshow": { 633 802 "slide_type": "fragment" 634 803 } 635 804 }, 636 - "outputs": [], 805 + "outputs": [ 806 + { 807 + "name": "stdout", 808 + "output_type": "stream", 809 + "text": [ 810 + "10\n", 811 + "[4 6]\n", 812 + "[3 7]\n" 813 + ] 814 + } 815 + ], 637 816 "source": [ 638 817 "x = np.array([[1,2],[3,4]])\n", 639 818 "\n", ··· 655 834 }, 656 835 { 657 836 "cell_type": "code", 658 - "execution_count": null, 837 + "execution_count": 21, 659 838 "metadata": { 660 839 "slideshow": { 661 840 "slide_type": "fragment" 662 841 } 663 842 }, 664 - "outputs": [], 843 + "outputs": [ 844 + { 845 + "name": "stdout", 846 + "output_type": "stream", 847 + "text": [ 848 + "0.04329492611551744\n", 849 + "0.9711252229239533\n", 850 + "[0.82846602 0.97112522]\n", 851 + "[0.91695312 0.91763796 0.97112522]\n" 852 + ] 853 + } 854 + ], 665 855 "source": [ 666 856 "a = np.random.random((2,3))\n", 667 857 "print(a.min())\n", ··· 683 873 }, 684 874 { 685 875 "cell_type": "code", 686 - "execution_count": null, 876 + "execution_count": 22, 687 877 "metadata": { 688 878 "slideshow": { 689 879 "slide_type": "fragment" 690 880 } 691 881 }, 692 - "outputs": [], 882 + "outputs": [ 883 + { 884 + "data": { 885 + "text/plain": [ 886 + "array([[ 0, 1, 2, 3],\n", 887 + " [ 4, 5, 6, 7],\n", 888 + " [ 8, 9, 10, 11]])" 889 + ] 890 + }, 891 + "execution_count": 22, 892 + "metadata": {}, 893 + "output_type": "execute_result" 894 + } 895 + ], 693 896 "source": [ 694 897 "a = np.arange(12).reshape(3,4)\n", 695 898 "a" ··· 697 900 }, 698 901 { 699 902 "cell_type": "code", 700 - "execution_count": null, 903 + "execution_count": 23, 701 904 "metadata": { 702 905 "slideshow": { 703 906 "slide_type": "slide" 704 907 } 705 908 }, 706 - "outputs": [], 909 + "outputs": [ 910 + { 911 + "data": { 912 + "text/plain": [ 913 + "array([ 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66])" 914 + ] 915 + }, 916 + "execution_count": 23, 917 + "metadata": {}, 918 + "output_type": "execute_result" 919 + } 920 + ], 707 921 "source": [ 708 922 "a.cumsum()" 709 923 ] 710 924 }, 711 925 { 712 926 "cell_type": "code", 713 - "execution_count": null, 927 + "execution_count": 25, 714 928 "metadata": { 715 929 "slideshow": { 716 930 "slide_type": "fragment" 717 931 } 718 932 }, 719 - "outputs": [], 933 + "outputs": [ 934 + { 935 + "data": { 936 + "text/plain": [ 937 + "array([[ 0, 1, 2, 3],\n", 938 + " [ 4, 6, 8, 10],\n", 939 + " [12, 15, 18, 21]])" 940 + ] 941 + }, 942 + "execution_count": 25, 943 + "metadata": {}, 944 + "output_type": "execute_result" 945 + } 946 + ], 720 947 "source": [ 721 - "a.cumsum(axis=1)" 948 + "a.cumsum(axis=0)" 722 949 ] 723 950 }, 724 951 { ··· 736 963 }, 737 964 { 738 965 "cell_type": "code", 739 - "execution_count": null, 966 + "execution_count": 32, 740 967 "metadata": { 741 968 "slideshow": { 742 969 "slide_type": "slide" 743 970 } 744 971 }, 745 - "outputs": [], 972 + "outputs": [ 973 + { 974 + "data": { 975 + "text/plain": [ 976 + "array([ 0, 1, 8, 27, 64, 125, 216, 343, 512, 729])" 977 + ] 978 + }, 979 + "execution_count": 32, 980 + "metadata": {}, 981 + "output_type": "execute_result" 982 + } 983 + ], 746 984 "source": [ 747 985 "a = np.arange(10)**3\n", 748 986 "a" ··· 750 988 }, 751 989 { 752 990 "cell_type": "code", 753 - "execution_count": null, 991 + "execution_count": 27, 754 992 "metadata": { 755 993 "slideshow": { 756 994 "slide_type": "fragment" 757 995 } 758 996 }, 759 - "outputs": [], 997 + "outputs": [ 998 + { 999 + "data": { 1000 + "text/plain": [ 1001 + "8" 1002 + ] 1003 + }, 1004 + "execution_count": 27, 1005 + "metadata": {}, 1006 + "output_type": "execute_result" 1007 + } 1008 + ], 760 1009 "source": [ 761 1010 "a[2]" 762 1011 ] 763 1012 }, 764 1013 { 765 1014 "cell_type": "code", 766 - "execution_count": null, 1015 + "execution_count": 28, 767 1016 "metadata": { 768 1017 "slideshow": { 769 1018 "slide_type": "fragment" 770 1019 } 771 1020 }, 772 - "outputs": [], 1021 + "outputs": [ 1022 + { 1023 + "data": { 1024 + "text/plain": [ 1025 + "array([ 8, 27, 64])" 1026 + ] 1027 + }, 1028 + "execution_count": 28, 1029 + "metadata": {}, 1030 + "output_type": "execute_result" 1031 + } 1032 + ], 773 1033 "source": [ 774 1034 "a[2:5]" 775 1035 ] 776 1036 }, 777 1037 { 778 1038 "cell_type": "code", 779 - "execution_count": null, 1039 + "execution_count": 33, 780 1040 "metadata": { 781 1041 "slideshow": { 782 1042 "slide_type": "slide" 783 1043 } 784 1044 }, 785 - "outputs": [], 1045 + "outputs": [ 1046 + { 1047 + "data": { 1048 + "text/plain": [ 1049 + "array([-1000, 1, -1000, 27, -1000, 125, 216, 343, 512,\n", 1050 + " 729])" 1051 + ] 1052 + }, 1053 + "execution_count": 33, 1054 + "metadata": {}, 1055 + "output_type": "execute_result" 1056 + } 1057 + ], 786 1058 "source": [ 787 1059 "a[:6:2] = -1000\n", 788 1060 "a" ··· 801 1073 }, 802 1074 { 803 1075 "cell_type": "code", 804 - "execution_count": null, 1076 + "execution_count": 34, 805 1077 "metadata": { 806 1078 "slideshow": { 807 1079 "slide_type": "slide" 808 1080 } 809 1081 }, 810 - "outputs": [], 1082 + "outputs": [ 1083 + { 1084 + "data": { 1085 + "text/plain": [ 1086 + "array([[ 0, 1, 2, 3],\n", 1087 + " [10, 11, 12, 13],\n", 1088 + " [20, 21, 22, 23],\n", 1089 + " [30, 31, 32, 33],\n", 1090 + " [40, 41, 42, 43]])" 1091 + ] 1092 + }, 1093 + "execution_count": 34, 1094 + "metadata": {}, 1095 + "output_type": "execute_result" 1096 + } 1097 + ], 811 1098 "source": [ 812 1099 "b = np.fromfunction(lambda x, y: 10 * x + y, (5,4),dtype=int)\n", 813 1100 "b" ··· 815 1102 }, 816 1103 { 817 1104 "cell_type": "code", 818 - "execution_count": null, 1105 + "execution_count": 35, 819 1106 "metadata": { 820 1107 "slideshow": { 821 1108 "slide_type": "fragment" 822 1109 } 823 1110 }, 824 - "outputs": [], 1111 + "outputs": [ 1112 + { 1113 + "data": { 1114 + "text/plain": [ 1115 + "23" 1116 + ] 1117 + }, 1118 + "execution_count": 35, 1119 + "metadata": {}, 1120 + "output_type": "execute_result" 1121 + } 1122 + ], 825 1123 "source": [ 826 1124 " b[2,3]" 827 1125 ] 828 1126 }, 829 1127 { 830 1128 "cell_type": "code", 831 - "execution_count": null, 1129 + "execution_count": 37, 832 1130 "metadata": { 833 1131 "slideshow": { 834 1132 "slide_type": "slide" 835 1133 } 836 1134 }, 837 - "outputs": [], 1135 + "outputs": [ 1136 + { 1137 + "data": { 1138 + "text/plain": [ 1139 + "array([11, 12, 13])" 1140 + ] 1141 + }, 1142 + "execution_count": 37, 1143 + "metadata": {}, 1144 + "output_type": "execute_result" 1145 + } 1146 + ], 838 1147 "source": [ 839 - "b[0:5, 1] " 1148 + "b[1, 1:4] " 840 1149 ] 841 1150 }, 842 1151 { 843 1152 "cell_type": "code", 844 - "execution_count": null, 1153 + "execution_count": 39, 845 1154 "metadata": { 846 1155 "slideshow": { 847 1156 "slide_type": "fragment" 848 1157 } 849 1158 }, 850 - "outputs": [], 1159 + "outputs": [ 1160 + { 1161 + "data": { 1162 + "text/plain": [ 1163 + "array([ 1, 11, 21, 31, 41])" 1164 + ] 1165 + }, 1166 + "execution_count": 39, 1167 + "metadata": {}, 1168 + "output_type": "execute_result" 1169 + } 1170 + ], 851 1171 "source": [ 852 - "b[ : ,1]" 1172 + "x = 1\n", 1173 + "b[ : ,x]" 853 1174 ] 854 1175 }, 855 1176 { 856 1177 "cell_type": "code", 857 - "execution_count": null, 1178 + "execution_count": 40, 858 1179 "metadata": { 859 1180 "slideshow": { 860 1181 "slide_type": "fragment" 861 1182 } 862 1183 }, 863 - "outputs": [], 1184 + "outputs": [ 1185 + { 1186 + "data": { 1187 + "text/plain": [ 1188 + "array([[10, 11, 12, 13],\n", 1189 + " [20, 21, 22, 23]])" 1190 + ] 1191 + }, 1192 + "execution_count": 40, 1193 + "metadata": {}, 1194 + "output_type": "execute_result" 1195 + } 1196 + ], 864 1197 "source": [ 865 1198 "b[1:3, : ]" 866 1199 ] ··· 886 1219 }, 887 1220 { 888 1221 "cell_type": "code", 889 - "execution_count": null, 1222 + "execution_count": 45, 890 1223 "metadata": { 891 1224 "slideshow": { 892 1225 "slide_type": "slide" 893 1226 } 894 1227 }, 895 - "outputs": [], 1228 + "outputs": [ 1229 + { 1230 + "data": { 1231 + "text/plain": [ 1232 + "array([[[12, 13],\n", 1233 + " [14, 15],\n", 1234 + " [16, 17]],\n", 1235 + "\n", 1236 + " [[18, 19],\n", 1237 + " [20, 21],\n", 1238 + " [22, 23]]])" 1239 + ] 1240 + }, 1241 + "execution_count": 45, 1242 + "metadata": {}, 1243 + "output_type": "execute_result" 1244 + } 1245 + ], 896 1246 "source": [ 897 - "c = np.arange(12).reshape(2,2,3)\n", 1247 + "c = np.arange(24).reshape(2,2,3,2)\n", 898 1248 "c[1,...]" 899 1249 ] 900 1250 }, 901 1251 { 902 1252 "cell_type": "code", 903 - "execution_count": null, 1253 + "execution_count": 47, 904 1254 "metadata": { 905 1255 "slideshow": { 906 1256 "slide_type": "fragment" 907 1257 } 908 1258 }, 909 - "outputs": [], 1259 + "outputs": [ 1260 + { 1261 + "data": { 1262 + "text/plain": [ 1263 + "array([[[ 1, 3, 5],\n", 1264 + " [ 7, 9, 11]],\n", 1265 + "\n", 1266 + " [[13, 15, 17],\n", 1267 + " [19, 21, 23]]])" 1268 + ] 1269 + }, 1270 + "execution_count": 47, 1271 + "metadata": {}, 1272 + "output_type": "execute_result" 1273 + } 1274 + ], 910 1275 "source": [ 911 - " c[...,2]" 1276 + " c[...,1]" 912 1277 ] 913 1278 }, 914 1279 { ··· 926 1291 }, 927 1292 { 928 1293 "cell_type": "code", 929 - "execution_count": null, 1294 + "execution_count": 49, 930 1295 "metadata": { 931 1296 "slideshow": { 932 1297 "slide_type": "slide" 933 1298 } 934 1299 }, 935 - "outputs": [], 1300 + "outputs": [ 1301 + { 1302 + "name": "stdout", 1303 + "output_type": "stream", 1304 + "text": [ 1305 + "[0 1 2 3]\n", 1306 + "[10 11 12 13]\n", 1307 + "[20 21 22 23]\n", 1308 + "[30 31 32 33]\n", 1309 + "[40 41 42 43]\n" 1310 + ] 1311 + } 1312 + ], 936 1313 "source": [ 937 1314 "for row in b:\n", 938 1315 " print(row)" ··· 951 1328 }, 952 1329 { 953 1330 "cell_type": "code", 954 - "execution_count": null, 1331 + "execution_count": 50, 955 1332 "metadata": { 956 1333 "slideshow": { 957 1334 "slide_type": "fragment" 958 1335 } 959 1336 }, 960 - "outputs": [], 1337 + "outputs": [ 1338 + { 1339 + "name": "stdout", 1340 + "output_type": "stream", 1341 + "text": [ 1342 + "0\n", 1343 + "1\n", 1344 + "2\n", 1345 + "3\n", 1346 + "10\n", 1347 + "11\n", 1348 + "12\n", 1349 + "13\n", 1350 + "20\n", 1351 + "21\n", 1352 + "22\n", 1353 + "23\n", 1354 + "30\n", 1355 + "31\n", 1356 + "32\n", 1357 + "33\n", 1358 + "40\n", 1359 + "41\n", 1360 + "42\n", 1361 + "43\n" 1362 + ] 1363 + } 1364 + ], 961 1365 "source": [ 962 1366 "for element in b.flat:\n", 963 1367 " print(element)" ··· 980 1384 }, 981 1385 { 982 1386 "cell_type": "code", 983 - "execution_count": null, 1387 + "execution_count": 51, 984 1388 "metadata": { 985 1389 "slideshow": { 986 1390 "slide_type": "slide" 987 1391 } 988 1392 }, 989 - "outputs": [], 1393 + "outputs": [ 1394 + { 1395 + "data": { 1396 + "text/plain": [ 1397 + "array([2., 4., 6.])" 1398 + ] 1399 + }, 1400 + "execution_count": 51, 1401 + "metadata": {}, 1402 + "output_type": "execute_result" 1403 + } 1404 + ], 990 1405 "source": [ 991 1406 "a = np.array([1.0, 2.0, 3.0])\n", 992 1407 "b = np.array([2.0, 2.0, 2.0])\n", ··· 995 1410 }, 996 1411 { 997 1412 "cell_type": "code", 998 - "execution_count": null, 1413 + "execution_count": 52, 999 1414 "metadata": { 1000 1415 "slideshow": { 1001 1416 "slide_type": "slide" 1002 1417 } 1003 1418 }, 1004 - "outputs": [], 1419 + "outputs": [ 1420 + { 1421 + "data": { 1422 + "text/plain": [ 1423 + "array([2., 4., 6.])" 1424 + ] 1425 + }, 1426 + "execution_count": 52, 1427 + "metadata": {}, 1428 + "output_type": "execute_result" 1429 + } 1430 + ], 1005 1431 "source": [ 1006 1432 "a = np.array([1.0, 2.0, 3.0])\n", 1007 1433 "b = 2.0\n",
+2466 -97
Curso de Python - Tema 11.ipynb
··· 39 39 }, 40 40 { 41 41 "cell_type": "code", 42 - "execution_count": null, 42 + "execution_count": 1, 43 43 "metadata": { 44 44 "slideshow": { 45 45 "slide_type": "fragment" ··· 47 47 }, 48 48 "outputs": [], 49 49 "source": [ 50 - "import pandas as pd" 50 + "import pandas as pd\n", 51 + "import numpy as np" 51 52 ] 52 53 }, 53 54 { ··· 76 77 }, 77 78 { 78 79 "cell_type": "code", 79 - "execution_count": null, 80 + "execution_count": 2, 80 81 "metadata": { 81 82 "slideshow": { 82 83 "slide_type": "fragment" 83 84 } 84 85 }, 85 - "outputs": [], 86 + "outputs": [ 87 + { 88 + "data": { 89 + "text/plain": [ 90 + "0 1.0\n", 91 + "1 3.0\n", 92 + "2 5.0\n", 93 + "3 NaN\n", 94 + "4 6.0\n", 95 + "5 8.0\n", 96 + "dtype: float64" 97 + ] 98 + }, 99 + "execution_count": 2, 100 + "metadata": {}, 101 + "output_type": "execute_result" 102 + } 103 + ], 86 104 "source": [ 87 105 "s = pd.Series([1,3,5,np.nan,6,8])\n", 88 106 "s" ··· 105 123 }, 106 124 { 107 125 "cell_type": "code", 108 - "execution_count": null, 126 + "execution_count": 7, 109 127 "metadata": { 110 128 "slideshow": { 111 - "slide_type": "fragment" 129 + "slide_type": "slide" 112 130 } 113 131 }, 114 132 "outputs": [], 115 133 "source": [ 116 134 "df = pd.DataFrame({\n", 117 - " 'A' : 1.,\n", 135 + " 'A' : [1., 2., np.nan, None],\n", 118 136 " 'B' : pd.Timestamp('20130102'),\n", 119 137 " 'C' : pd.Series(1,index=list(range(4)),dtype='float32'),\n", 120 138 " 'D' : np.array([3] * 4,dtype='int32'),\n", 121 139 " 'E' : pd.Categorical([\"test\",\"train\",\"test\",\"train\"]),\n", 122 - " 'F' : 'foo' \n", 123 - "})\n", 140 + " 'F' : 'foo'\n", 141 + "})" 142 + ] 143 + }, 144 + { 145 + "cell_type": "code", 146 + "execution_count": 4, 147 + "metadata": { 148 + "slideshow": { 149 + "slide_type": "slide" 150 + } 151 + }, 152 + "outputs": [ 153 + { 154 + "data": { 155 + "text/html": [ 156 + "<div>\n", 157 + "<style scoped>\n", 158 + " .dataframe tbody tr th:only-of-type {\n", 159 + " vertical-align: middle;\n", 160 + " }\n", 161 + "\n", 162 + " .dataframe tbody tr th {\n", 163 + " vertical-align: top;\n", 164 + " }\n", 165 + "\n", 166 + " .dataframe thead th {\n", 167 + " text-align: right;\n", 168 + " }\n", 169 + "</style>\n", 170 + "<table border=\"1\" class=\"dataframe\">\n", 171 + " <thead>\n", 172 + " <tr style=\"text-align: right;\">\n", 173 + " <th></th>\n", 174 + " <th>A</th>\n", 175 + " <th>B</th>\n", 176 + " <th>C</th>\n", 177 + " <th>D</th>\n", 178 + " <th>E</th>\n", 179 + " <th>F</th>\n", 180 + " </tr>\n", 181 + " </thead>\n", 182 + " <tbody>\n", 183 + " <tr>\n", 184 + " <th>0</th>\n", 185 + " <td>1.0</td>\n", 186 + " <td>2013-01-02</td>\n", 187 + " <td>1.0</td>\n", 188 + " <td>3</td>\n", 189 + " <td>test</td>\n", 190 + " <td>foo</td>\n", 191 + " </tr>\n", 192 + " <tr>\n", 193 + " <th>1</th>\n", 194 + " <td>2.0</td>\n", 195 + " <td>2013-01-02</td>\n", 196 + " <td>1.0</td>\n", 197 + " <td>3</td>\n", 198 + " <td>train</td>\n", 199 + " <td>foo</td>\n", 200 + " </tr>\n", 201 + " <tr>\n", 202 + " <th>2</th>\n", 203 + " <td>NaN</td>\n", 204 + " <td>2013-01-02</td>\n", 205 + " <td>1.0</td>\n", 206 + " <td>3</td>\n", 207 + " <td>test</td>\n", 208 + " <td>foo</td>\n", 209 + " </tr>\n", 210 + " <tr>\n", 211 + " <th>3</th>\n", 212 + " <td>NaN</td>\n", 213 + " <td>2013-01-02</td>\n", 214 + " <td>1.0</td>\n", 215 + " <td>3</td>\n", 216 + " <td>train</td>\n", 217 + " <td>foo</td>\n", 218 + " </tr>\n", 219 + " </tbody>\n", 220 + "</table>\n", 221 + "</div>" 222 + ], 223 + "text/plain": [ 224 + " A B C D E F\n", 225 + "0 1.0 2013-01-02 1.0 3 test foo\n", 226 + "1 2.0 2013-01-02 1.0 3 train foo\n", 227 + "2 NaN 2013-01-02 1.0 3 test foo\n", 228 + "3 NaN 2013-01-02 1.0 3 train foo" 229 + ] 230 + }, 231 + "execution_count": 4, 232 + "metadata": {}, 233 + "output_type": "execute_result" 234 + } 235 + ], 236 + "source": [ 124 237 "df" 125 238 ] 126 239 }, 127 240 { 128 241 "cell_type": "code", 129 - "execution_count": null, 242 + "execution_count": 8, 130 243 "metadata": { 131 244 "slideshow": { 132 245 "slide_type": "slide" 133 246 } 134 247 }, 135 - "outputs": [], 248 + "outputs": [ 249 + { 250 + "data": { 251 + "text/plain": [ 252 + "A float64\n", 253 + "B datetime64[ns]\n", 254 + "C float32\n", 255 + "D int32\n", 256 + "E category\n", 257 + "F object\n", 258 + "dtype: object" 259 + ] 260 + }, 261 + "execution_count": 8, 262 + "metadata": {}, 263 + "output_type": "execute_result" 264 + } 265 + ], 136 266 "source": [ 137 267 "df.dtypes" 138 268 ] ··· 150 280 }, 151 281 { 152 282 "cell_type": "code", 153 - "execution_count": null, 283 + "execution_count": 9, 154 284 "metadata": { 155 285 "slideshow": { 156 286 "slide_type": "slide" 157 287 } 158 288 }, 159 - "outputs": [], 289 + "outputs": [ 290 + { 291 + "data": { 292 + "text/plain": [ 293 + "DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',\n", 294 + " '2013-01-05', '2013-01-06'],\n", 295 + " dtype='datetime64[ns]', freq='D')" 296 + ] 297 + }, 298 + "execution_count": 9, 299 + "metadata": {}, 300 + "output_type": "execute_result" 301 + } 302 + ], 160 303 "source": [ 161 304 "dates = pd.date_range('20130101', periods=6)\n", 162 305 "dates" ··· 164 307 }, 165 308 { 166 309 "cell_type": "code", 167 - "execution_count": null, 310 + "execution_count": 12, 168 311 "metadata": { 169 312 "slideshow": { 170 313 "slide_type": "slide" 171 314 } 172 315 }, 173 - "outputs": [], 316 + "outputs": [ 317 + { 318 + "data": { 319 + "text/html": [ 320 + "<div>\n", 321 + "<style scoped>\n", 322 + " .dataframe tbody tr th:only-of-type {\n", 323 + " vertical-align: middle;\n", 324 + " }\n", 325 + "\n", 326 + " .dataframe tbody tr th {\n", 327 + " vertical-align: top;\n", 328 + " }\n", 329 + "\n", 330 + " .dataframe thead th {\n", 331 + " text-align: right;\n", 332 + " }\n", 333 + "</style>\n", 334 + "<table border=\"1\" class=\"dataframe\">\n", 335 + " <thead>\n", 336 + " <tr style=\"text-align: right;\">\n", 337 + " <th></th>\n", 338 + " <th>A</th>\n", 339 + " <th>B</th>\n", 340 + " <th>C</th>\n", 341 + " <th>D</th>\n", 342 + " </tr>\n", 343 + " </thead>\n", 344 + " <tbody>\n", 345 + " <tr>\n", 346 + " <th>2013-01-01</th>\n", 347 + " <td>-0.679399</td>\n", 348 + " <td>-0.564244</td>\n", 349 + " <td>-0.395166</td>\n", 350 + " <td>-0.004622</td>\n", 351 + " </tr>\n", 352 + " <tr>\n", 353 + " <th>2013-01-02</th>\n", 354 + " <td>2.147829</td>\n", 355 + " <td>-0.991826</td>\n", 356 + " <td>-1.004833</td>\n", 357 + " <td>0.168517</td>\n", 358 + " </tr>\n", 359 + " <tr>\n", 360 + " <th>2013-01-03</th>\n", 361 + " <td>0.398068</td>\n", 362 + " <td>-0.536610</td>\n", 363 + " <td>-0.773990</td>\n", 364 + " <td>-1.075894</td>\n", 365 + " </tr>\n", 366 + " <tr>\n", 367 + " <th>2013-01-04</th>\n", 368 + " <td>-1.185011</td>\n", 369 + " <td>1.988697</td>\n", 370 + " <td>-0.770427</td>\n", 371 + " <td>-0.472499</td>\n", 372 + " </tr>\n", 373 + " <tr>\n", 374 + " <th>2013-01-05</th>\n", 375 + " <td>-0.359634</td>\n", 376 + " <td>0.338176</td>\n", 377 + " <td>0.105786</td>\n", 378 + " <td>0.359107</td>\n", 379 + " </tr>\n", 380 + " <tr>\n", 381 + " <th>2013-01-06</th>\n", 382 + " <td>-0.555880</td>\n", 383 + " <td>1.115044</td>\n", 384 + " <td>-2.108126</td>\n", 385 + " <td>0.139896</td>\n", 386 + " </tr>\n", 387 + " </tbody>\n", 388 + "</table>\n", 389 + "</div>" 390 + ], 391 + "text/plain": [ 392 + " A B C D\n", 393 + "2013-01-01 -0.679399 -0.564244 -0.395166 -0.004622\n", 394 + "2013-01-02 2.147829 -0.991826 -1.004833 0.168517\n", 395 + "2013-01-03 0.398068 -0.536610 -0.773990 -1.075894\n", 396 + "2013-01-04 -1.185011 1.988697 -0.770427 -0.472499\n", 397 + "2013-01-05 -0.359634 0.338176 0.105786 0.359107\n", 398 + "2013-01-06 -0.555880 1.115044 -2.108126 0.139896" 399 + ] 400 + }, 401 + "execution_count": 12, 402 + "metadata": {}, 403 + "output_type": "execute_result" 404 + } 405 + ], 174 406 "source": [ 175 407 "df2 = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))\n", 176 408 "df2" ··· 189 421 "En un DataFrame de `pandas` se pueden realizar operaciones a lo largo de los dos ejes, o `axis`.\n", 190 422 "\n", 191 423 "- Si en una operación especificamos `axis=0` nos referimos a loas índices, es decir, estaremos diciendo que la operación se realiza para todas las filas.\n", 192 - "- Si en una operación especificamos `axis=1` estaremos diciendo que la operación se realiza para todas las columnas.\n", 193 - "\n", 194 - "\n", 424 + "- Si en una operación especificamos `axis=1` estaremos diciendo que la operación se realiza para todas las columnas." 425 + ] 426 + }, 427 + { 428 + "cell_type": "markdown", 429 + "metadata": { 430 + "slideshow": { 431 + "slide_type": "slide" 432 + } 433 + }, 434 + "source": [ 195 435 "![Axis](./img/axis.jpg)" 196 436 ] 197 437 }, ··· 208 448 }, 209 449 { 210 450 "cell_type": "code", 211 - "execution_count": null, 451 + "execution_count": 13, 212 452 "metadata": { 213 453 "slideshow": { 214 454 "slide_type": "slide" 215 455 } 216 456 }, 217 - "outputs": [], 457 + "outputs": [ 458 + { 459 + "data": { 460 + "text/html": [ 461 + "<div>\n", 462 + "<style scoped>\n", 463 + " .dataframe tbody tr th:only-of-type {\n", 464 + " vertical-align: middle;\n", 465 + " }\n", 466 + "\n", 467 + " .dataframe tbody tr th {\n", 468 + " vertical-align: top;\n", 469 + " }\n", 470 + "\n", 471 + " .dataframe thead th {\n", 472 + " text-align: right;\n", 473 + " }\n", 474 + "</style>\n", 475 + "<table border=\"1\" class=\"dataframe\">\n", 476 + " <thead>\n", 477 + " <tr style=\"text-align: right;\">\n", 478 + " <th></th>\n", 479 + " <th>A</th>\n", 480 + " <th>B</th>\n", 481 + " <th>C</th>\n", 482 + " <th>D</th>\n", 483 + " </tr>\n", 484 + " </thead>\n", 485 + " <tbody>\n", 486 + " <tr>\n", 487 + " <th>2013-01-01</th>\n", 488 + " <td>-0.679399</td>\n", 489 + " <td>-0.564244</td>\n", 490 + " <td>-0.395166</td>\n", 491 + " <td>-0.004622</td>\n", 492 + " </tr>\n", 493 + " <tr>\n", 494 + " <th>2013-01-02</th>\n", 495 + " <td>2.147829</td>\n", 496 + " <td>-0.991826</td>\n", 497 + " <td>-1.004833</td>\n", 498 + " <td>0.168517</td>\n", 499 + " </tr>\n", 500 + " </tbody>\n", 501 + "</table>\n", 502 + "</div>" 503 + ], 504 + "text/plain": [ 505 + " A B C D\n", 506 + "2013-01-01 -0.679399 -0.564244 -0.395166 -0.004622\n", 507 + "2013-01-02 2.147829 -0.991826 -1.004833 0.168517" 508 + ] 509 + }, 510 + "execution_count": 13, 511 + "metadata": {}, 512 + "output_type": "execute_result" 513 + } 514 + ], 218 515 "source": [ 219 516 "df2.head(2)" 220 517 ] 221 518 }, 222 519 { 223 520 "cell_type": "code", 224 - "execution_count": null, 521 + "execution_count": 14, 225 522 "metadata": { 226 523 "slideshow": { 227 524 "slide_type": "slide" 228 525 } 229 526 }, 230 - "outputs": [], 527 + "outputs": [ 528 + { 529 + "data": { 530 + "text/html": [ 531 + "<div>\n", 532 + "<style scoped>\n", 533 + " .dataframe tbody tr th:only-of-type {\n", 534 + " vertical-align: middle;\n", 535 + " }\n", 536 + "\n", 537 + " .dataframe tbody tr th {\n", 538 + " vertical-align: top;\n", 539 + " }\n", 540 + "\n", 541 + " .dataframe thead th {\n", 542 + " text-align: right;\n", 543 + " }\n", 544 + "</style>\n", 545 + "<table border=\"1\" class=\"dataframe\">\n", 546 + " <thead>\n", 547 + " <tr style=\"text-align: right;\">\n", 548 + " <th></th>\n", 549 + " <th>A</th>\n", 550 + " <th>B</th>\n", 551 + " <th>C</th>\n", 552 + " <th>D</th>\n", 553 + " </tr>\n", 554 + " </thead>\n", 555 + " <tbody>\n", 556 + " <tr>\n", 557 + " <th>2013-01-05</th>\n", 558 + " <td>-0.359634</td>\n", 559 + " <td>0.338176</td>\n", 560 + " <td>0.105786</td>\n", 561 + " <td>0.359107</td>\n", 562 + " </tr>\n", 563 + " <tr>\n", 564 + " <th>2013-01-06</th>\n", 565 + " <td>-0.555880</td>\n", 566 + " <td>1.115044</td>\n", 567 + " <td>-2.108126</td>\n", 568 + " <td>0.139896</td>\n", 569 + " </tr>\n", 570 + " </tbody>\n", 571 + "</table>\n", 572 + "</div>" 573 + ], 574 + "text/plain": [ 575 + " A B C D\n", 576 + "2013-01-05 -0.359634 0.338176 0.105786 0.359107\n", 577 + "2013-01-06 -0.555880 1.115044 -2.108126 0.139896" 578 + ] 579 + }, 580 + "execution_count": 14, 581 + "metadata": {}, 582 + "output_type": "execute_result" 583 + } 584 + ], 231 585 "source": [ 232 586 "df2.tail(2)" 233 587 ] 234 588 }, 235 589 { 236 590 "cell_type": "code", 237 - "execution_count": null, 591 + "execution_count": 15, 238 592 "metadata": { 239 593 "slideshow": { 240 594 "slide_type": "slide" 241 595 } 242 596 }, 243 - "outputs": [], 597 + "outputs": [ 598 + { 599 + "data": { 600 + "text/plain": [ 601 + "DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',\n", 602 + " '2013-01-05', '2013-01-06'],\n", 603 + " dtype='datetime64[ns]', freq='D')" 604 + ] 605 + }, 606 + "execution_count": 15, 607 + "metadata": {}, 608 + "output_type": "execute_result" 609 + } 610 + ], 244 611 "source": [ 245 612 "df2.index" 246 613 ] 247 614 }, 248 615 { 249 616 "cell_type": "code", 250 - "execution_count": null, 617 + "execution_count": 16, 251 618 "metadata": { 252 619 "slideshow": { 253 620 "slide_type": "slide" 254 621 } 255 622 }, 256 - "outputs": [], 623 + "outputs": [ 624 + { 625 + "data": { 626 + "text/plain": [ 627 + "Index(['A', 'B', 'C', 'D'], dtype='object')" 628 + ] 629 + }, 630 + "execution_count": 16, 631 + "metadata": {}, 632 + "output_type": "execute_result" 633 + } 634 + ], 257 635 "source": [ 258 636 "df2.columns" 259 637 ] ··· 273 651 }, 274 652 { 275 653 "cell_type": "code", 276 - "execution_count": null, 654 + "execution_count": 18, 277 655 "metadata": { 278 656 "slideshow": { 279 - "slide_type": "fragment" 657 + "slide_type": "slide" 280 658 } 281 659 }, 282 - "outputs": [], 660 + "outputs": [ 661 + { 662 + "data": { 663 + "text/plain": [ 664 + "array([[-0.67939947, -0.5642441 , -0.39516608, -0.00462202],\n", 665 + " [ 2.14782856, -0.99182561, -1.00483345, 0.16851747],\n", 666 + " [ 0.39806756, -0.53661026, -0.77399033, -1.07589368],\n", 667 + " [-1.18501088, 1.98869725, -0.77042661, -0.47249893],\n", 668 + " [-0.35963418, 0.3381756 , 0.10578614, 0.35910665],\n", 669 + " [-0.55588001, 1.11504445, -2.10812582, 0.13989579]])" 670 + ] 671 + }, 672 + "execution_count": 18, 673 + "metadata": {}, 674 + "output_type": "execute_result" 675 + } 676 + ], 283 677 "source": [ 284 - "df2.to_numpy()" 678 + "df2.to_numpy()\n" 285 679 ] 286 680 }, 287 681 { ··· 299 693 }, 300 694 { 301 695 "cell_type": "code", 302 - "execution_count": null, 696 + "execution_count": 19, 303 697 "metadata": { 304 698 "slideshow": { 305 699 "slide_type": "slide" 306 700 } 307 701 }, 308 - "outputs": [], 702 + "outputs": [ 703 + { 704 + "data": { 705 + "text/html": [ 706 + "<div>\n", 707 + "<style scoped>\n", 708 + " .dataframe tbody tr th:only-of-type {\n", 709 + " vertical-align: middle;\n", 710 + " }\n", 711 + "\n", 712 + " .dataframe tbody tr th {\n", 713 + " vertical-align: top;\n", 714 + " }\n", 715 + "\n", 716 + " .dataframe thead th {\n", 717 + " text-align: right;\n", 718 + " }\n", 719 + "</style>\n", 720 + "<table border=\"1\" class=\"dataframe\">\n", 721 + " <thead>\n", 722 + " <tr style=\"text-align: right;\">\n", 723 + " <th></th>\n", 724 + " <th>A</th>\n", 725 + " <th>B</th>\n", 726 + " <th>C</th>\n", 727 + " <th>D</th>\n", 728 + " </tr>\n", 729 + " </thead>\n", 730 + " <tbody>\n", 731 + " <tr>\n", 732 + " <th>count</th>\n", 733 + " <td>6.000000</td>\n", 734 + " <td>6.000000</td>\n", 735 + " <td>6.000000</td>\n", 736 + " <td>6.000000</td>\n", 737 + " </tr>\n", 738 + " <tr>\n", 739 + " <th>mean</th>\n", 740 + " <td>-0.039005</td>\n", 741 + " <td>0.224873</td>\n", 742 + " <td>-0.824459</td>\n", 743 + " <td>-0.147582</td>\n", 744 + " </tr>\n", 745 + " <tr>\n", 746 + " <th>std</th>\n", 747 + " <td>1.188837</td>\n", 748 + " <td>1.148846</td>\n", 749 + " <td>0.739655</td>\n", 750 + " <td>0.534241</td>\n", 751 + " </tr>\n", 752 + " <tr>\n", 753 + " <th>min</th>\n", 754 + " <td>-1.185011</td>\n", 755 + " <td>-0.991826</td>\n", 756 + " <td>-2.108126</td>\n", 757 + " <td>-1.075894</td>\n", 758 + " </tr>\n", 759 + " <tr>\n", 760 + " <th>25%</th>\n", 761 + " <td>-0.648520</td>\n", 762 + " <td>-0.557336</td>\n", 763 + " <td>-0.947123</td>\n", 764 + " <td>-0.355530</td>\n", 765 + " </tr>\n", 766 + " <tr>\n", 767 + " <th>50%</th>\n", 768 + " <td>-0.457757</td>\n", 769 + " <td>-0.099217</td>\n", 770 + " <td>-0.772208</td>\n", 771 + " <td>0.067637</td>\n", 772 + " </tr>\n", 773 + " <tr>\n", 774 + " <th>75%</th>\n", 775 + " <td>0.208642</td>\n", 776 + " <td>0.920827</td>\n", 777 + " <td>-0.488981</td>\n", 778 + " <td>0.161362</td>\n", 779 + " </tr>\n", 780 + " <tr>\n", 781 + " <th>max</th>\n", 782 + " <td>2.147829</td>\n", 783 + " <td>1.988697</td>\n", 784 + " <td>0.105786</td>\n", 785 + " <td>0.359107</td>\n", 786 + " </tr>\n", 787 + " </tbody>\n", 788 + "</table>\n", 789 + "</div>" 790 + ], 791 + "text/plain": [ 792 + " A B C D\n", 793 + "count 6.000000 6.000000 6.000000 6.000000\n", 794 + "mean -0.039005 0.224873 -0.824459 -0.147582\n", 795 + "std 1.188837 1.148846 0.739655 0.534241\n", 796 + "min -1.185011 -0.991826 -2.108126 -1.075894\n", 797 + "25% -0.648520 -0.557336 -0.947123 -0.355530\n", 798 + "50% -0.457757 -0.099217 -0.772208 0.067637\n", 799 + "75% 0.208642 0.920827 -0.488981 0.161362\n", 800 + "max 2.147829 1.988697 0.105786 0.359107" 801 + ] 802 + }, 803 + "execution_count": 19, 804 + "metadata": {}, 805 + "output_type": "execute_result" 806 + } 807 + ], 309 808 "source": [ 310 809 "df2.describe()" 311 810 ] ··· 325 824 }, 326 825 { 327 826 "cell_type": "code", 328 - "execution_count": null, 827 + "execution_count": 20, 329 828 "metadata": { 330 829 "slideshow": { 331 830 "slide_type": "slide" 332 831 } 333 832 }, 334 - "outputs": [], 833 + "outputs": [ 834 + { 835 + "data": { 836 + "text/html": [ 837 + "<div>\n", 838 + "<style scoped>\n", 839 + " .dataframe tbody tr th:only-of-type {\n", 840 + " vertical-align: middle;\n", 841 + " }\n", 842 + "\n", 843 + " .dataframe tbody tr th {\n", 844 + " vertical-align: top;\n", 845 + " }\n", 846 + "\n", 847 + " .dataframe thead th {\n", 848 + " text-align: right;\n", 849 + " }\n", 850 + "</style>\n", 851 + "<table border=\"1\" class=\"dataframe\">\n", 852 + " <thead>\n", 853 + " <tr style=\"text-align: right;\">\n", 854 + " <th></th>\n", 855 + " <th>2013-01-01</th>\n", 856 + " <th>2013-01-02</th>\n", 857 + " <th>2013-01-03</th>\n", 858 + " <th>2013-01-04</th>\n", 859 + " <th>2013-01-05</th>\n", 860 + " <th>2013-01-06</th>\n", 861 + " </tr>\n", 862 + " </thead>\n", 863 + " <tbody>\n", 864 + " <tr>\n", 865 + " <th>A</th>\n", 866 + " <td>-0.679399</td>\n", 867 + " <td>2.147829</td>\n", 868 + " <td>0.398068</td>\n", 869 + " <td>-1.185011</td>\n", 870 + " <td>-0.359634</td>\n", 871 + " <td>-0.555880</td>\n", 872 + " </tr>\n", 873 + " <tr>\n", 874 + " <th>B</th>\n", 875 + " <td>-0.564244</td>\n", 876 + " <td>-0.991826</td>\n", 877 + " <td>-0.536610</td>\n", 878 + " <td>1.988697</td>\n", 879 + " <td>0.338176</td>\n", 880 + " <td>1.115044</td>\n", 881 + " </tr>\n", 882 + " <tr>\n", 883 + " <th>C</th>\n", 884 + " <td>-0.395166</td>\n", 885 + " <td>-1.004833</td>\n", 886 + " <td>-0.773990</td>\n", 887 + " <td>-0.770427</td>\n", 888 + " <td>0.105786</td>\n", 889 + " <td>-2.108126</td>\n", 890 + " </tr>\n", 891 + " <tr>\n", 892 + " <th>D</th>\n", 893 + " <td>-0.004622</td>\n", 894 + " <td>0.168517</td>\n", 895 + " <td>-1.075894</td>\n", 896 + " <td>-0.472499</td>\n", 897 + " <td>0.359107</td>\n", 898 + " <td>0.139896</td>\n", 899 + " </tr>\n", 900 + " </tbody>\n", 901 + "</table>\n", 902 + "</div>" 903 + ], 904 + "text/plain": [ 905 + " 2013-01-01 2013-01-02 2013-01-03 2013-01-04 2013-01-05 2013-01-06\n", 906 + "A -0.679399 2.147829 0.398068 -1.185011 -0.359634 -0.555880\n", 907 + "B -0.564244 -0.991826 -0.536610 1.988697 0.338176 1.115044\n", 908 + "C -0.395166 -1.004833 -0.773990 -0.770427 0.105786 -2.108126\n", 909 + "D -0.004622 0.168517 -1.075894 -0.472499 0.359107 0.139896" 910 + ] 911 + }, 912 + "execution_count": 20, 913 + "metadata": {}, 914 + "output_type": "execute_result" 915 + } 916 + ], 335 917 "source": [ 336 918 "df2.T" 337 919 ] ··· 351 933 }, 352 934 { 353 935 "cell_type": "code", 354 - "execution_count": null, 936 + "execution_count": 21, 355 937 "metadata": { 356 938 "slideshow": { 357 939 "slide_type": "slide" 358 940 } 359 941 }, 360 - "outputs": [], 942 + "outputs": [ 943 + { 944 + "data": { 945 + "text/html": [ 946 + "<div>\n", 947 + "<style scoped>\n", 948 + " .dataframe tbody tr th:only-of-type {\n", 949 + " vertical-align: middle;\n", 950 + " }\n", 951 + "\n", 952 + " .dataframe tbody tr th {\n", 953 + " vertical-align: top;\n", 954 + " }\n", 955 + "\n", 956 + " .dataframe thead th {\n", 957 + " text-align: right;\n", 958 + " }\n", 959 + "</style>\n", 960 + "<table border=\"1\" class=\"dataframe\">\n", 961 + " <thead>\n", 962 + " <tr style=\"text-align: right;\">\n", 963 + " <th></th>\n", 964 + " <th>D</th>\n", 965 + " <th>C</th>\n", 966 + " <th>B</th>\n", 967 + " <th>A</th>\n", 968 + " </tr>\n", 969 + " </thead>\n", 970 + " <tbody>\n", 971 + " <tr>\n", 972 + " <th>2013-01-01</th>\n", 973 + " <td>-0.004622</td>\n", 974 + " <td>-0.395166</td>\n", 975 + " <td>-0.564244</td>\n", 976 + " <td>-0.679399</td>\n", 977 + " </tr>\n", 978 + " <tr>\n", 979 + " <th>2013-01-02</th>\n", 980 + " <td>0.168517</td>\n", 981 + " <td>-1.004833</td>\n", 982 + " <td>-0.991826</td>\n", 983 + " <td>2.147829</td>\n", 984 + " </tr>\n", 985 + " <tr>\n", 986 + " <th>2013-01-03</th>\n", 987 + " <td>-1.075894</td>\n", 988 + " <td>-0.773990</td>\n", 989 + " <td>-0.536610</td>\n", 990 + " <td>0.398068</td>\n", 991 + " </tr>\n", 992 + " <tr>\n", 993 + " <th>2013-01-04</th>\n", 994 + " <td>-0.472499</td>\n", 995 + " <td>-0.770427</td>\n", 996 + " <td>1.988697</td>\n", 997 + " <td>-1.185011</td>\n", 998 + " </tr>\n", 999 + " <tr>\n", 1000 + " <th>2013-01-05</th>\n", 1001 + " <td>0.359107</td>\n", 1002 + " <td>0.105786</td>\n", 1003 + " <td>0.338176</td>\n", 1004 + " <td>-0.359634</td>\n", 1005 + " </tr>\n", 1006 + " <tr>\n", 1007 + " <th>2013-01-06</th>\n", 1008 + " <td>0.139896</td>\n", 1009 + " <td>-2.108126</td>\n", 1010 + " <td>1.115044</td>\n", 1011 + " <td>-0.555880</td>\n", 1012 + " </tr>\n", 1013 + " </tbody>\n", 1014 + "</table>\n", 1015 + "</div>" 1016 + ], 1017 + "text/plain": [ 1018 + " D C B A\n", 1019 + "2013-01-01 -0.004622 -0.395166 -0.564244 -0.679399\n", 1020 + "2013-01-02 0.168517 -1.004833 -0.991826 2.147829\n", 1021 + "2013-01-03 -1.075894 -0.773990 -0.536610 0.398068\n", 1022 + "2013-01-04 -0.472499 -0.770427 1.988697 -1.185011\n", 1023 + "2013-01-05 0.359107 0.105786 0.338176 -0.359634\n", 1024 + "2013-01-06 0.139896 -2.108126 1.115044 -0.555880" 1025 + ] 1026 + }, 1027 + "execution_count": 21, 1028 + "metadata": {}, 1029 + "output_type": "execute_result" 1030 + } 1031 + ], 361 1032 "source": [ 362 1033 "df2.sort_index(axis=1, ascending=False)" 363 1034 ] 364 1035 }, 365 1036 { 366 1037 "cell_type": "code", 367 - "execution_count": null, 1038 + "execution_count": 22, 368 1039 "metadata": { 369 1040 "slideshow": { 370 1041 "slide_type": "slide" 371 1042 } 372 1043 }, 373 - "outputs": [], 1044 + "outputs": [ 1045 + { 1046 + "data": { 1047 + "text/html": [ 1048 + "<div>\n", 1049 + "<style scoped>\n", 1050 + " .dataframe tbody tr th:only-of-type {\n", 1051 + " vertical-align: middle;\n", 1052 + " }\n", 1053 + "\n", 1054 + " .dataframe tbody tr th {\n", 1055 + " vertical-align: top;\n", 1056 + " }\n", 1057 + "\n", 1058 + " .dataframe thead th {\n", 1059 + " text-align: right;\n", 1060 + " }\n", 1061 + "</style>\n", 1062 + "<table border=\"1\" class=\"dataframe\">\n", 1063 + " <thead>\n", 1064 + " <tr style=\"text-align: right;\">\n", 1065 + " <th></th>\n", 1066 + " <th>A</th>\n", 1067 + " <th>B</th>\n", 1068 + " <th>C</th>\n", 1069 + " <th>D</th>\n", 1070 + " </tr>\n", 1071 + " </thead>\n", 1072 + " <tbody>\n", 1073 + " <tr>\n", 1074 + " <th>2013-01-02</th>\n", 1075 + " <td>2.147829</td>\n", 1076 + " <td>-0.991826</td>\n", 1077 + " <td>-1.004833</td>\n", 1078 + " <td>0.168517</td>\n", 1079 + " </tr>\n", 1080 + " <tr>\n", 1081 + " <th>2013-01-01</th>\n", 1082 + " <td>-0.679399</td>\n", 1083 + " <td>-0.564244</td>\n", 1084 + " <td>-0.395166</td>\n", 1085 + " <td>-0.004622</td>\n", 1086 + " </tr>\n", 1087 + " <tr>\n", 1088 + " <th>2013-01-03</th>\n", 1089 + " <td>0.398068</td>\n", 1090 + " <td>-0.536610</td>\n", 1091 + " <td>-0.773990</td>\n", 1092 + " <td>-1.075894</td>\n", 1093 + " </tr>\n", 1094 + " <tr>\n", 1095 + " <th>2013-01-05</th>\n", 1096 + " <td>-0.359634</td>\n", 1097 + " <td>0.338176</td>\n", 1098 + " <td>0.105786</td>\n", 1099 + " <td>0.359107</td>\n", 1100 + " </tr>\n", 1101 + " <tr>\n", 1102 + " <th>2013-01-06</th>\n", 1103 + " <td>-0.555880</td>\n", 1104 + " <td>1.115044</td>\n", 1105 + " <td>-2.108126</td>\n", 1106 + " <td>0.139896</td>\n", 1107 + " </tr>\n", 1108 + " <tr>\n", 1109 + " <th>2013-01-04</th>\n", 1110 + " <td>-1.185011</td>\n", 1111 + " <td>1.988697</td>\n", 1112 + " <td>-0.770427</td>\n", 1113 + " <td>-0.472499</td>\n", 1114 + " </tr>\n", 1115 + " </tbody>\n", 1116 + "</table>\n", 1117 + "</div>" 1118 + ], 1119 + "text/plain": [ 1120 + " A B C D\n", 1121 + "2013-01-02 2.147829 -0.991826 -1.004833 0.168517\n", 1122 + "2013-01-01 -0.679399 -0.564244 -0.395166 -0.004622\n", 1123 + "2013-01-03 0.398068 -0.536610 -0.773990 -1.075894\n", 1124 + "2013-01-05 -0.359634 0.338176 0.105786 0.359107\n", 1125 + "2013-01-06 -0.555880 1.115044 -2.108126 0.139896\n", 1126 + "2013-01-04 -1.185011 1.988697 -0.770427 -0.472499" 1127 + ] 1128 + }, 1129 + "execution_count": 22, 1130 + "metadata": {}, 1131 + "output_type": "execute_result" 1132 + } 1133 + ], 374 1134 "source": [ 375 1135 "df2.sort_values(by='B')" 376 1136 ] ··· 450 1210 }, 451 1211 { 452 1212 "cell_type": "code", 453 - "execution_count": null, 1213 + "execution_count": 23, 454 1214 "metadata": { 455 1215 "slideshow": { 456 1216 "slide_type": "slide" 457 1217 } 458 1218 }, 459 - "outputs": [], 1219 + "outputs": [ 1220 + { 1221 + "data": { 1222 + "text/plain": [ 1223 + "2013-01-01 -0.679399\n", 1224 + "2013-01-02 2.147829\n", 1225 + "2013-01-03 0.398068\n", 1226 + "2013-01-04 -1.185011\n", 1227 + "2013-01-05 -0.359634\n", 1228 + "2013-01-06 -0.555880\n", 1229 + "Freq: D, Name: A, dtype: float64" 1230 + ] 1231 + }, 1232 + "execution_count": 23, 1233 + "metadata": {}, 1234 + "output_type": "execute_result" 1235 + } 1236 + ], 460 1237 "source": [ 461 1238 "df2['A']" 462 1239 ] 463 1240 }, 464 1241 { 465 1242 "cell_type": "code", 466 - "execution_count": null, 1243 + "execution_count": 24, 467 1244 "metadata": { 468 1245 "slideshow": { 469 1246 "slide_type": "fragment" 470 1247 } 471 1248 }, 472 - "outputs": [], 1249 + "outputs": [ 1250 + { 1251 + "data": { 1252 + "text/plain": [ 1253 + "2013-01-01 -0.679399\n", 1254 + "2013-01-02 2.147829\n", 1255 + "2013-01-03 0.398068\n", 1256 + "2013-01-04 -1.185011\n", 1257 + "2013-01-05 -0.359634\n", 1258 + "2013-01-06 -0.555880\n", 1259 + "Freq: D, Name: A, dtype: float64" 1260 + ] 1261 + }, 1262 + "execution_count": 24, 1263 + "metadata": {}, 1264 + "output_type": "execute_result" 1265 + } 1266 + ], 473 1267 "source": [ 474 1268 "df2.A" 475 1269 ] 476 1270 }, 477 1271 { 478 1272 "cell_type": "code", 479 - "execution_count": null, 1273 + "execution_count": 25, 480 1274 "metadata": { 481 1275 "slideshow": { 482 1276 "slide_type": "slide" 483 1277 } 484 1278 }, 485 - "outputs": [], 1279 + "outputs": [ 1280 + { 1281 + "data": { 1282 + "text/html": [ 1283 + "<div>\n", 1284 + "<style scoped>\n", 1285 + " .dataframe tbody tr th:only-of-type {\n", 1286 + " vertical-align: middle;\n", 1287 + " }\n", 1288 + "\n", 1289 + " .dataframe tbody tr th {\n", 1290 + " vertical-align: top;\n", 1291 + " }\n", 1292 + "\n", 1293 + " .dataframe thead th {\n", 1294 + " text-align: right;\n", 1295 + " }\n", 1296 + "</style>\n", 1297 + "<table border=\"1\" class=\"dataframe\">\n", 1298 + " <thead>\n", 1299 + " <tr style=\"text-align: right;\">\n", 1300 + " <th></th>\n", 1301 + " <th>A</th>\n", 1302 + " <th>B</th>\n", 1303 + " <th>C</th>\n", 1304 + " <th>D</th>\n", 1305 + " </tr>\n", 1306 + " </thead>\n", 1307 + " <tbody>\n", 1308 + " <tr>\n", 1309 + " <th>2013-01-01</th>\n", 1310 + " <td>-0.679399</td>\n", 1311 + " <td>-0.564244</td>\n", 1312 + " <td>-0.395166</td>\n", 1313 + " <td>-0.004622</td>\n", 1314 + " </tr>\n", 1315 + " <tr>\n", 1316 + " <th>2013-01-02</th>\n", 1317 + " <td>2.147829</td>\n", 1318 + " <td>-0.991826</td>\n", 1319 + " <td>-1.004833</td>\n", 1320 + " <td>0.168517</td>\n", 1321 + " </tr>\n", 1322 + " <tr>\n", 1323 + " <th>2013-01-03</th>\n", 1324 + " <td>0.398068</td>\n", 1325 + " <td>-0.536610</td>\n", 1326 + " <td>-0.773990</td>\n", 1327 + " <td>-1.075894</td>\n", 1328 + " </tr>\n", 1329 + " </tbody>\n", 1330 + "</table>\n", 1331 + "</div>" 1332 + ], 1333 + "text/plain": [ 1334 + " A B C D\n", 1335 + "2013-01-01 -0.679399 -0.564244 -0.395166 -0.004622\n", 1336 + "2013-01-02 2.147829 -0.991826 -1.004833 0.168517\n", 1337 + "2013-01-03 0.398068 -0.536610 -0.773990 -1.075894" 1338 + ] 1339 + }, 1340 + "execution_count": 25, 1341 + "metadata": {}, 1342 + "output_type": "execute_result" 1343 + } 1344 + ], 486 1345 "source": [ 487 1346 "df2[0:3]" 488 1347 ] 489 1348 }, 490 1349 { 491 1350 "cell_type": "code", 492 - "execution_count": null, 1351 + "execution_count": 26, 493 1352 "metadata": { 494 1353 "slideshow": { 495 1354 "slide_type": "fragment" 496 1355 } 497 1356 }, 498 - "outputs": [], 1357 + "outputs": [ 1358 + { 1359 + "data": { 1360 + "text/html": [ 1361 + "<div>\n", 1362 + "<style scoped>\n", 1363 + " .dataframe tbody tr th:only-of-type {\n", 1364 + " vertical-align: middle;\n", 1365 + " }\n", 1366 + "\n", 1367 + " .dataframe tbody tr th {\n", 1368 + " vertical-align: top;\n", 1369 + " }\n", 1370 + "\n", 1371 + " .dataframe thead th {\n", 1372 + " text-align: right;\n", 1373 + " }\n", 1374 + "</style>\n", 1375 + "<table border=\"1\" class=\"dataframe\">\n", 1376 + " <thead>\n", 1377 + " <tr style=\"text-align: right;\">\n", 1378 + " <th></th>\n", 1379 + " <th>A</th>\n", 1380 + " <th>B</th>\n", 1381 + " <th>C</th>\n", 1382 + " <th>D</th>\n", 1383 + " </tr>\n", 1384 + " </thead>\n", 1385 + " <tbody>\n", 1386 + " <tr>\n", 1387 + " <th>2013-01-02</th>\n", 1388 + " <td>2.147829</td>\n", 1389 + " <td>-0.991826</td>\n", 1390 + " <td>-1.004833</td>\n", 1391 + " <td>0.168517</td>\n", 1392 + " </tr>\n", 1393 + " <tr>\n", 1394 + " <th>2013-01-03</th>\n", 1395 + " <td>0.398068</td>\n", 1396 + " <td>-0.536610</td>\n", 1397 + " <td>-0.773990</td>\n", 1398 + " <td>-1.075894</td>\n", 1399 + " </tr>\n", 1400 + " <tr>\n", 1401 + " <th>2013-01-04</th>\n", 1402 + " <td>-1.185011</td>\n", 1403 + " <td>1.988697</td>\n", 1404 + " <td>-0.770427</td>\n", 1405 + " <td>-0.472499</td>\n", 1406 + " </tr>\n", 1407 + " </tbody>\n", 1408 + "</table>\n", 1409 + "</div>" 1410 + ], 1411 + "text/plain": [ 1412 + " A B C D\n", 1413 + "2013-01-02 2.147829 -0.991826 -1.004833 0.168517\n", 1414 + "2013-01-03 0.398068 -0.536610 -0.773990 -1.075894\n", 1415 + "2013-01-04 -1.185011 1.988697 -0.770427 -0.472499" 1416 + ] 1417 + }, 1418 + "execution_count": 26, 1419 + "metadata": {}, 1420 + "output_type": "execute_result" 1421 + } 1422 + ], 499 1423 "source": [ 500 1424 "df2['20130102':'20130104']" 501 1425 ] 502 1426 }, 503 1427 { 504 1428 "cell_type": "code", 505 - "execution_count": null, 1429 + "execution_count": 27, 506 1430 "metadata": { 507 1431 "slideshow": { 508 1432 "slide_type": "fragment" 509 1433 } 510 1434 }, 511 - "outputs": [], 1435 + "outputs": [ 1436 + { 1437 + "data": { 1438 + "text/plain": [ 1439 + "A -0.679399\n", 1440 + "B -0.564244\n", 1441 + "C -0.395166\n", 1442 + "D -0.004622\n", 1443 + "Name: 2013-01-01 00:00:00, dtype: float64" 1444 + ] 1445 + }, 1446 + "execution_count": 27, 1447 + "metadata": {}, 1448 + "output_type": "execute_result" 1449 + } 1450 + ], 512 1451 "source": [ 513 1452 "df2.loc[dates[0]]" 514 1453 ] 515 1454 }, 516 1455 { 517 1456 "cell_type": "code", 518 - "execution_count": null, 1457 + "execution_count": 28, 519 1458 "metadata": { 520 1459 "slideshow": { 521 1460 "slide_type": "slide" 522 1461 } 523 1462 }, 524 - "outputs": [], 1463 + "outputs": [ 1464 + { 1465 + "data": { 1466 + "text/html": [ 1467 + "<div>\n", 1468 + "<style scoped>\n", 1469 + " .dataframe tbody tr th:only-of-type {\n", 1470 + " vertical-align: middle;\n", 1471 + " }\n", 1472 + "\n", 1473 + " .dataframe tbody tr th {\n", 1474 + " vertical-align: top;\n", 1475 + " }\n", 1476 + "\n", 1477 + " .dataframe thead th {\n", 1478 + " text-align: right;\n", 1479 + " }\n", 1480 + "</style>\n", 1481 + "<table border=\"1\" class=\"dataframe\">\n", 1482 + " <thead>\n", 1483 + " <tr style=\"text-align: right;\">\n", 1484 + " <th></th>\n", 1485 + " <th>A</th>\n", 1486 + " <th>B</th>\n", 1487 + " </tr>\n", 1488 + " </thead>\n", 1489 + " <tbody>\n", 1490 + " <tr>\n", 1491 + " <th>2013-01-01</th>\n", 1492 + " <td>-0.679399</td>\n", 1493 + " <td>-0.564244</td>\n", 1494 + " </tr>\n", 1495 + " <tr>\n", 1496 + " <th>2013-01-02</th>\n", 1497 + " <td>2.147829</td>\n", 1498 + " <td>-0.991826</td>\n", 1499 + " </tr>\n", 1500 + " <tr>\n", 1501 + " <th>2013-01-03</th>\n", 1502 + " <td>0.398068</td>\n", 1503 + " <td>-0.536610</td>\n", 1504 + " </tr>\n", 1505 + " <tr>\n", 1506 + " <th>2013-01-04</th>\n", 1507 + " <td>-1.185011</td>\n", 1508 + " <td>1.988697</td>\n", 1509 + " </tr>\n", 1510 + " <tr>\n", 1511 + " <th>2013-01-05</th>\n", 1512 + " <td>-0.359634</td>\n", 1513 + " <td>0.338176</td>\n", 1514 + " </tr>\n", 1515 + " <tr>\n", 1516 + " <th>2013-01-06</th>\n", 1517 + " <td>-0.555880</td>\n", 1518 + " <td>1.115044</td>\n", 1519 + " </tr>\n", 1520 + " </tbody>\n", 1521 + "</table>\n", 1522 + "</div>" 1523 + ], 1524 + "text/plain": [ 1525 + " A B\n", 1526 + "2013-01-01 -0.679399 -0.564244\n", 1527 + "2013-01-02 2.147829 -0.991826\n", 1528 + "2013-01-03 0.398068 -0.536610\n", 1529 + "2013-01-04 -1.185011 1.988697\n", 1530 + "2013-01-05 -0.359634 0.338176\n", 1531 + "2013-01-06 -0.555880 1.115044" 1532 + ] 1533 + }, 1534 + "execution_count": 28, 1535 + "metadata": {}, 1536 + "output_type": "execute_result" 1537 + } 1538 + ], 525 1539 "source": [ 526 1540 "df2.loc[:, ['A', 'B']]" 527 1541 ] 528 1542 }, 529 1543 { 530 1544 "cell_type": "code", 531 - "execution_count": null, 1545 + "execution_count": 29, 532 1546 "metadata": { 533 1547 "slideshow": { 534 1548 "slide_type": "slide" 535 1549 } 536 1550 }, 537 - "outputs": [], 1551 + "outputs": [ 1552 + { 1553 + "data": { 1554 + "text/html": [ 1555 + "<div>\n", 1556 + "<style scoped>\n", 1557 + " .dataframe tbody tr th:only-of-type {\n", 1558 + " vertical-align: middle;\n", 1559 + " }\n", 1560 + "\n", 1561 + " .dataframe tbody tr th {\n", 1562 + " vertical-align: top;\n", 1563 + " }\n", 1564 + "\n", 1565 + " .dataframe thead th {\n", 1566 + " text-align: right;\n", 1567 + " }\n", 1568 + "</style>\n", 1569 + "<table border=\"1\" class=\"dataframe\">\n", 1570 + " <thead>\n", 1571 + " <tr style=\"text-align: right;\">\n", 1572 + " <th></th>\n", 1573 + " <th>A</th>\n", 1574 + " <th>B</th>\n", 1575 + " </tr>\n", 1576 + " </thead>\n", 1577 + " <tbody>\n", 1578 + " <tr>\n", 1579 + " <th>2013-01-02</th>\n", 1580 + " <td>2.147829</td>\n", 1581 + " <td>-0.991826</td>\n", 1582 + " </tr>\n", 1583 + " <tr>\n", 1584 + " <th>2013-01-03</th>\n", 1585 + " <td>0.398068</td>\n", 1586 + " <td>-0.536610</td>\n", 1587 + " </tr>\n", 1588 + " <tr>\n", 1589 + " <th>2013-01-04</th>\n", 1590 + " <td>-1.185011</td>\n", 1591 + " <td>1.988697</td>\n", 1592 + " </tr>\n", 1593 + " </tbody>\n", 1594 + "</table>\n", 1595 + "</div>" 1596 + ], 1597 + "text/plain": [ 1598 + " A B\n", 1599 + "2013-01-02 2.147829 -0.991826\n", 1600 + "2013-01-03 0.398068 -0.536610\n", 1601 + "2013-01-04 -1.185011 1.988697" 1602 + ] 1603 + }, 1604 + "execution_count": 29, 1605 + "metadata": {}, 1606 + "output_type": "execute_result" 1607 + } 1608 + ], 538 1609 "source": [ 539 1610 "df2.loc['20130102':'20130104', ['A', 'B']]" 540 1611 ] 541 1612 }, 542 1613 { 543 1614 "cell_type": "code", 544 - "execution_count": null, 1615 + "execution_count": 30, 545 1616 "metadata": { 546 1617 "slideshow": { 547 1618 "slide_type": "slide" 548 1619 } 549 1620 }, 550 - "outputs": [], 1621 + "outputs": [ 1622 + { 1623 + "data": { 1624 + "text/plain": [ 1625 + "A 2.147829\n", 1626 + "B -0.991826\n", 1627 + "Name: 2013-01-02 00:00:00, dtype: float64" 1628 + ] 1629 + }, 1630 + "execution_count": 30, 1631 + "metadata": {}, 1632 + "output_type": "execute_result" 1633 + } 1634 + ], 551 1635 "source": [ 552 1636 "df2.loc['20130102', ['A', 'B']]" 553 1637 ] 554 1638 }, 555 1639 { 556 1640 "cell_type": "code", 557 - "execution_count": null, 1641 + "execution_count": 31, 558 1642 "metadata": { 559 1643 "slideshow": { 560 1644 "slide_type": "slide" 561 1645 } 562 1646 }, 563 - "outputs": [], 1647 + "outputs": [ 1648 + { 1649 + "data": { 1650 + "text/plain": [ 1651 + "A -1.185011\n", 1652 + "B 1.988697\n", 1653 + "C -0.770427\n", 1654 + "D -0.472499\n", 1655 + "Name: 2013-01-04 00:00:00, dtype: float64" 1656 + ] 1657 + }, 1658 + "execution_count": 31, 1659 + "metadata": {}, 1660 + "output_type": "execute_result" 1661 + } 1662 + ], 564 1663 "source": [ 565 1664 "df2.iloc[3]" 566 1665 ] 567 1666 }, 568 1667 { 569 1668 "cell_type": "code", 570 - "execution_count": null, 1669 + "execution_count": 32, 571 1670 "metadata": { 572 1671 "slideshow": { 573 1672 "slide_type": "slide" 574 1673 } 575 1674 }, 576 - "outputs": [], 1675 + "outputs": [ 1676 + { 1677 + "data": { 1678 + "text/html": [ 1679 + "<div>\n", 1680 + "<style scoped>\n", 1681 + " .dataframe tbody tr th:only-of-type {\n", 1682 + " vertical-align: middle;\n", 1683 + " }\n", 1684 + "\n", 1685 + " .dataframe tbody tr th {\n", 1686 + " vertical-align: top;\n", 1687 + " }\n", 1688 + "\n", 1689 + " .dataframe thead th {\n", 1690 + " text-align: right;\n", 1691 + " }\n", 1692 + "</style>\n", 1693 + "<table border=\"1\" class=\"dataframe\">\n", 1694 + " <thead>\n", 1695 + " <tr style=\"text-align: right;\">\n", 1696 + " <th></th>\n", 1697 + " <th>A</th>\n", 1698 + " <th>B</th>\n", 1699 + " </tr>\n", 1700 + " </thead>\n", 1701 + " <tbody>\n", 1702 + " <tr>\n", 1703 + " <th>2013-01-04</th>\n", 1704 + " <td>-1.185011</td>\n", 1705 + " <td>1.988697</td>\n", 1706 + " </tr>\n", 1707 + " <tr>\n", 1708 + " <th>2013-01-05</th>\n", 1709 + " <td>-0.359634</td>\n", 1710 + " <td>0.338176</td>\n", 1711 + " </tr>\n", 1712 + " </tbody>\n", 1713 + "</table>\n", 1714 + "</div>" 1715 + ], 1716 + "text/plain": [ 1717 + " A B\n", 1718 + "2013-01-04 -1.185011 1.988697\n", 1719 + "2013-01-05 -0.359634 0.338176" 1720 + ] 1721 + }, 1722 + "execution_count": 32, 1723 + "metadata": {}, 1724 + "output_type": "execute_result" 1725 + } 1726 + ], 577 1727 "source": [ 578 1728 "df2.iloc[3:5, 0:2]" 579 1729 ] ··· 593 1743 }, 594 1744 { 595 1745 "cell_type": "code", 596 - "execution_count": null, 1746 + "execution_count": 33, 597 1747 "metadata": { 598 1748 "slideshow": { 599 1749 "slide_type": "slide" 600 1750 } 601 1751 }, 602 - "outputs": [], 1752 + "outputs": [ 1753 + { 1754 + "data": { 1755 + "text/html": [ 1756 + "<div>\n", 1757 + "<style scoped>\n", 1758 + " .dataframe tbody tr th:only-of-type {\n", 1759 + " vertical-align: middle;\n", 1760 + " }\n", 1761 + "\n", 1762 + " .dataframe tbody tr th {\n", 1763 + " vertical-align: top;\n", 1764 + " }\n", 1765 + "\n", 1766 + " .dataframe thead th {\n", 1767 + " text-align: right;\n", 1768 + " }\n", 1769 + "</style>\n", 1770 + "<table border=\"1\" class=\"dataframe\">\n", 1771 + " <thead>\n", 1772 + " <tr style=\"text-align: right;\">\n", 1773 + " <th></th>\n", 1774 + " <th>A</th>\n", 1775 + " <th>B</th>\n", 1776 + " <th>C</th>\n", 1777 + " <th>D</th>\n", 1778 + " </tr>\n", 1779 + " </thead>\n", 1780 + " <tbody>\n", 1781 + " <tr>\n", 1782 + " <th>2013-01-02</th>\n", 1783 + " <td>2.147829</td>\n", 1784 + " <td>-0.991826</td>\n", 1785 + " <td>-1.004833</td>\n", 1786 + " <td>0.168517</td>\n", 1787 + " </tr>\n", 1788 + " <tr>\n", 1789 + " <th>2013-01-03</th>\n", 1790 + " <td>0.398068</td>\n", 1791 + " <td>-0.536610</td>\n", 1792 + " <td>-0.773990</td>\n", 1793 + " <td>-1.075894</td>\n", 1794 + " </tr>\n", 1795 + " </tbody>\n", 1796 + "</table>\n", 1797 + "</div>" 1798 + ], 1799 + "text/plain": [ 1800 + " A B C D\n", 1801 + "2013-01-02 2.147829 -0.991826 -1.004833 0.168517\n", 1802 + "2013-01-03 0.398068 -0.536610 -0.773990 -1.075894" 1803 + ] 1804 + }, 1805 + "execution_count": 33, 1806 + "metadata": {}, 1807 + "output_type": "execute_result" 1808 + } 1809 + ], 603 1810 "source": [ 604 1811 "df2[df2.A > 0]" 605 1812 ] ··· 628 1835 }, 629 1836 { 630 1837 "cell_type": "code", 631 - "execution_count": null, 1838 + "execution_count": 34, 632 1839 "metadata": { 633 1840 "slideshow": { 634 1841 "slide_type": "fragment" 635 1842 } 636 1843 }, 637 - "outputs": [], 1844 + "outputs": [ 1845 + { 1846 + "data": { 1847 + "text/plain": [ 1848 + "A -0.039005\n", 1849 + "B 0.224873\n", 1850 + "C -0.824459\n", 1851 + "D -0.147582\n", 1852 + "dtype: float64" 1853 + ] 1854 + }, 1855 + "execution_count": 34, 1856 + "metadata": {}, 1857 + "output_type": "execute_result" 1858 + } 1859 + ], 638 1860 "source": [ 639 1861 "df2.mean()" 640 1862 ] 641 1863 }, 642 1864 { 643 1865 "cell_type": "code", 644 - "execution_count": null, 1866 + "execution_count": 35, 645 1867 "metadata": { 646 1868 "slideshow": { 647 1869 "slide_type": "fragment" 648 1870 } 649 1871 }, 650 - "outputs": [], 1872 + "outputs": [ 1873 + { 1874 + "data": { 1875 + "text/plain": [ 1876 + "-0.03900473868952752" 1877 + ] 1878 + }, 1879 + "execution_count": 35, 1880 + "metadata": {}, 1881 + "output_type": "execute_result" 1882 + } 1883 + ], 651 1884 "source": [ 652 1885 "df2['A'].mean()" 653 1886 ] 654 1887 }, 655 1888 { 656 1889 "cell_type": "code", 657 - "execution_count": null, 1890 + "execution_count": 36, 658 1891 "metadata": { 659 1892 "slideshow": { 660 1893 "slide_type": "slide" 661 1894 } 662 1895 }, 663 - "outputs": [], 1896 + "outputs": [ 1897 + { 1898 + "data": { 1899 + "text/plain": [ 1900 + "2013-01-01 -0.410858\n", 1901 + "2013-01-02 0.079922\n", 1902 + "2013-01-03 -0.497107\n", 1903 + "2013-01-04 -0.109810\n", 1904 + "2013-01-05 0.110859\n", 1905 + "2013-01-06 -0.352266\n", 1906 + "Freq: D, dtype: float64" 1907 + ] 1908 + }, 1909 + "execution_count": 36, 1910 + "metadata": {}, 1911 + "output_type": "execute_result" 1912 + } 1913 + ], 664 1914 "source": [ 665 1915 "df2.mean(axis=1)" 666 1916 ] ··· 678 1928 }, 679 1929 { 680 1930 "cell_type": "code", 681 - "execution_count": null, 1931 + "execution_count": 37, 682 1932 "metadata": { 683 1933 "slideshow": { 684 1934 "slide_type": "slide" 685 1935 } 686 1936 }, 687 - "outputs": [], 1937 + "outputs": [ 1938 + { 1939 + "data": { 1940 + "text/html": [ 1941 + "<div>\n", 1942 + "<style scoped>\n", 1943 + " .dataframe tbody tr th:only-of-type {\n", 1944 + " vertical-align: middle;\n", 1945 + " }\n", 1946 + "\n", 1947 + " .dataframe tbody tr th {\n", 1948 + " vertical-align: top;\n", 1949 + " }\n", 1950 + "\n", 1951 + " .dataframe thead th {\n", 1952 + " text-align: right;\n", 1953 + " }\n", 1954 + "</style>\n", 1955 + "<table border=\"1\" class=\"dataframe\">\n", 1956 + " <thead>\n", 1957 + " <tr style=\"text-align: right;\">\n", 1958 + " <th></th>\n", 1959 + " <th>A</th>\n", 1960 + " <th>B</th>\n", 1961 + " <th>C</th>\n", 1962 + " <th>D</th>\n", 1963 + " </tr>\n", 1964 + " </thead>\n", 1965 + " <tbody>\n", 1966 + " <tr>\n", 1967 + " <th>2013-01-01</th>\n", 1968 + " <td>-0.679399</td>\n", 1969 + " <td>-0.564244</td>\n", 1970 + " <td>-0.395166</td>\n", 1971 + " <td>-0.004622</td>\n", 1972 + " </tr>\n", 1973 + " <tr>\n", 1974 + " <th>2013-01-02</th>\n", 1975 + " <td>1.468429</td>\n", 1976 + " <td>-1.556070</td>\n", 1977 + " <td>-1.400000</td>\n", 1978 + " <td>0.163895</td>\n", 1979 + " </tr>\n", 1980 + " <tr>\n", 1981 + " <th>2013-01-03</th>\n", 1982 + " <td>1.866497</td>\n", 1983 + " <td>-2.092680</td>\n", 1984 + " <td>-2.173990</td>\n", 1985 + " <td>-0.911998</td>\n", 1986 + " </tr>\n", 1987 + " <tr>\n", 1988 + " <th>2013-01-04</th>\n", 1989 + " <td>0.681486</td>\n", 1990 + " <td>-0.103983</td>\n", 1991 + " <td>-2.944416</td>\n", 1992 + " <td>-1.384497</td>\n", 1993 + " </tr>\n", 1994 + " <tr>\n", 1995 + " <th>2013-01-05</th>\n", 1996 + " <td>0.321852</td>\n", 1997 + " <td>0.234193</td>\n", 1998 + " <td>-2.838630</td>\n", 1999 + " <td>-1.025391</td>\n", 2000 + " </tr>\n", 2001 + " <tr>\n", 2002 + " <th>2013-01-06</th>\n", 2003 + " <td>-0.234028</td>\n", 2004 + " <td>1.349237</td>\n", 2005 + " <td>-4.946756</td>\n", 2006 + " <td>-0.885495</td>\n", 2007 + " </tr>\n", 2008 + " </tbody>\n", 2009 + "</table>\n", 2010 + "</div>" 2011 + ], 2012 + "text/plain": [ 2013 + " A B C D\n", 2014 + "2013-01-01 -0.679399 -0.564244 -0.395166 -0.004622\n", 2015 + "2013-01-02 1.468429 -1.556070 -1.400000 0.163895\n", 2016 + "2013-01-03 1.866497 -2.092680 -2.173990 -0.911998\n", 2017 + "2013-01-04 0.681486 -0.103983 -2.944416 -1.384497\n", 2018 + "2013-01-05 0.321852 0.234193 -2.838630 -1.025391\n", 2019 + "2013-01-06 -0.234028 1.349237 -4.946756 -0.885495" 2020 + ] 2021 + }, 2022 + "execution_count": 37, 2023 + "metadata": {}, 2024 + "output_type": "execute_result" 2025 + } 2026 + ], 688 2027 "source": [ 689 2028 "df2.apply(np.cumsum)" 690 2029 ] 691 2030 }, 692 2031 { 693 2032 "cell_type": "code", 694 - "execution_count": null, 2033 + "execution_count": 40, 695 2034 "metadata": { 696 2035 "slideshow": { 697 2036 "slide_type": "slide" 698 2037 } 699 2038 }, 700 - "outputs": [], 2039 + "outputs": [ 2040 + { 2041 + "data": { 2042 + "text/html": [ 2043 + "<div>\n", 2044 + "<style scoped>\n", 2045 + " .dataframe tbody tr th:only-of-type {\n", 2046 + " vertical-align: middle;\n", 2047 + " }\n", 2048 + "\n", 2049 + " .dataframe tbody tr th {\n", 2050 + " vertical-align: top;\n", 2051 + " }\n", 2052 + "\n", 2053 + " .dataframe thead th {\n", 2054 + " text-align: right;\n", 2055 + " }\n", 2056 + "</style>\n", 2057 + "<table border=\"1\" class=\"dataframe\">\n", 2058 + " <thead>\n", 2059 + " <tr style=\"text-align: right;\">\n", 2060 + " <th></th>\n", 2061 + " <th>A</th>\n", 2062 + " <th>B</th>\n", 2063 + " <th>C</th>\n", 2064 + " <th>D</th>\n", 2065 + " <th>E</th>\n", 2066 + " </tr>\n", 2067 + " </thead>\n", 2068 + " <tbody>\n", 2069 + " <tr>\n", 2070 + " <th>2013-01-01</th>\n", 2071 + " <td>-0.679399</td>\n", 2072 + " <td>-0.564244</td>\n", 2073 + " <td>-0.395166</td>\n", 2074 + " <td>-0.004622</td>\n", 2075 + " <td>0.674777</td>\n", 2076 + " </tr>\n", 2077 + " <tr>\n", 2078 + " <th>2013-01-02</th>\n", 2079 + " <td>2.147829</td>\n", 2080 + " <td>-0.991826</td>\n", 2081 + " <td>-1.004833</td>\n", 2082 + " <td>0.168517</td>\n", 2083 + " <td>3.152662</td>\n", 2084 + " </tr>\n", 2085 + " <tr>\n", 2086 + " <th>2013-01-03</th>\n", 2087 + " <td>0.398068</td>\n", 2088 + " <td>-0.536610</td>\n", 2089 + " <td>-0.773990</td>\n", 2090 + " <td>-1.075894</td>\n", 2091 + " <td>1.473961</td>\n", 2092 + " </tr>\n", 2093 + " <tr>\n", 2094 + " <th>2013-01-04</th>\n", 2095 + " <td>-1.185011</td>\n", 2096 + " <td>1.988697</td>\n", 2097 + " <td>-0.770427</td>\n", 2098 + " <td>-0.472499</td>\n", 2099 + " <td>3.173708</td>\n", 2100 + " </tr>\n", 2101 + " <tr>\n", 2102 + " <th>2013-01-05</th>\n", 2103 + " <td>-0.359634</td>\n", 2104 + " <td>0.338176</td>\n", 2105 + " <td>0.105786</td>\n", 2106 + " <td>0.359107</td>\n", 2107 + " <td>0.718741</td>\n", 2108 + " </tr>\n", 2109 + " <tr>\n", 2110 + " <th>2013-01-06</th>\n", 2111 + " <td>-0.555880</td>\n", 2112 + " <td>1.115044</td>\n", 2113 + " <td>-2.108126</td>\n", 2114 + " <td>0.139896</td>\n", 2115 + " <td>3.223170</td>\n", 2116 + " </tr>\n", 2117 + " </tbody>\n", 2118 + "</table>\n", 2119 + "</div>" 2120 + ], 2121 + "text/plain": [ 2122 + " A B C D E\n", 2123 + "2013-01-01 -0.679399 -0.564244 -0.395166 -0.004622 0.674777\n", 2124 + "2013-01-02 2.147829 -0.991826 -1.004833 0.168517 3.152662\n", 2125 + "2013-01-03 0.398068 -0.536610 -0.773990 -1.075894 1.473961\n", 2126 + "2013-01-04 -1.185011 1.988697 -0.770427 -0.472499 3.173708\n", 2127 + "2013-01-05 -0.359634 0.338176 0.105786 0.359107 0.718741\n", 2128 + "2013-01-06 -0.555880 1.115044 -2.108126 0.139896 3.223170" 2129 + ] 2130 + }, 2131 + "execution_count": 40, 2132 + "metadata": {}, 2133 + "output_type": "execute_result" 2134 + } 2135 + ], 701 2136 "source": [ 702 - "df2.apply(lambda x: x.max() - x.min())" 2137 + "c = df2.apply(lambda x: x.max() - x.min(), axis=1)\n", 2138 + "df2['E'] = c\n", 2139 + "df2" 703 2140 ] 704 2141 }, 705 2142 { 706 2143 "cell_type": "code", 707 - "execution_count": null, 2144 + "execution_count": 41, 708 2145 "metadata": { 709 2146 "slideshow": { 710 2147 "slide_type": "fragment" 711 2148 } 712 2149 }, 713 - "outputs": [], 2150 + "outputs": [ 2151 + { 2152 + "data": { 2153 + "text/plain": [ 2154 + "2013-01-01 1.354177\n", 2155 + "2013-01-02 4.157495\n", 2156 + "2013-01-03 2.549855\n", 2157 + "2013-01-04 4.358719\n", 2158 + "2013-01-05 1.078375\n", 2159 + "2013-01-06 5.331296\n", 2160 + "Freq: D, dtype: float64" 2161 + ] 2162 + }, 2163 + "execution_count": 41, 2164 + "metadata": {}, 2165 + "output_type": "execute_result" 2166 + } 2167 + ], 714 2168 "source": [ 715 2169 "df2.apply(lambda x: x.max() - x.min(), axis=1)" 716 2170 ] ··· 741 2195 }, 742 2196 { 743 2197 "cell_type": "code", 744 - "execution_count": null, 2198 + "execution_count": 42, 745 2199 "metadata": { 746 2200 "slideshow": { 747 2201 "slide_type": "slide" 748 2202 } 749 2203 }, 750 - "outputs": [], 2204 + "outputs": [ 2205 + { 2206 + "data": { 2207 + "text/html": [ 2208 + "<div>\n", 2209 + "<style scoped>\n", 2210 + " .dataframe tbody tr th:only-of-type {\n", 2211 + " vertical-align: middle;\n", 2212 + " }\n", 2213 + "\n", 2214 + " .dataframe tbody tr th {\n", 2215 + " vertical-align: top;\n", 2216 + " }\n", 2217 + "\n", 2218 + " .dataframe thead th {\n", 2219 + " text-align: right;\n", 2220 + " }\n", 2221 + "</style>\n", 2222 + "<table border=\"1\" class=\"dataframe\">\n", 2223 + " <thead>\n", 2224 + " <tr style=\"text-align: right;\">\n", 2225 + " <th></th>\n", 2226 + " <th>0</th>\n", 2227 + " <th>1</th>\n", 2228 + " <th>2</th>\n", 2229 + " <th>3</th>\n", 2230 + " </tr>\n", 2231 + " </thead>\n", 2232 + " <tbody>\n", 2233 + " <tr>\n", 2234 + " <th>0</th>\n", 2235 + " <td>-0.634450</td>\n", 2236 + " <td>0.763724</td>\n", 2237 + " <td>0.710228</td>\n", 2238 + " <td>-0.694768</td>\n", 2239 + " </tr>\n", 2240 + " <tr>\n", 2241 + " <th>1</th>\n", 2242 + " <td>-0.142616</td>\n", 2243 + " <td>1.630704</td>\n", 2244 + " <td>1.029687</td>\n", 2245 + " <td>-1.008484</td>\n", 2246 + " </tr>\n", 2247 + " <tr>\n", 2248 + " <th>2</th>\n", 2249 + " <td>-0.344466</td>\n", 2250 + " <td>-0.222917</td>\n", 2251 + " <td>0.294177</td>\n", 2252 + " <td>-0.859483</td>\n", 2253 + " </tr>\n", 2254 + " <tr>\n", 2255 + " <th>3</th>\n", 2256 + " <td>1.012883</td>\n", 2257 + " <td>-0.369916</td>\n", 2258 + " <td>-0.552784</td>\n", 2259 + " <td>1.356238</td>\n", 2260 + " </tr>\n", 2261 + " <tr>\n", 2262 + " <th>4</th>\n", 2263 + " <td>-0.167002</td>\n", 2264 + " <td>1.677076</td>\n", 2265 + " <td>-0.454767</td>\n", 2266 + " <td>1.183958</td>\n", 2267 + " </tr>\n", 2268 + " <tr>\n", 2269 + " <th>5</th>\n", 2270 + " <td>-0.528190</td>\n", 2271 + " <td>-0.912389</td>\n", 2272 + " <td>0.786753</td>\n", 2273 + " <td>1.043857</td>\n", 2274 + " </tr>\n", 2275 + " <tr>\n", 2276 + " <th>6</th>\n", 2277 + " <td>0.527898</td>\n", 2278 + " <td>-0.379471</td>\n", 2279 + " <td>1.537252</td>\n", 2280 + " <td>-1.050597</td>\n", 2281 + " </tr>\n", 2282 + " <tr>\n", 2283 + " <th>7</th>\n", 2284 + " <td>-0.352473</td>\n", 2285 + " <td>-1.825571</td>\n", 2286 + " <td>0.186576</td>\n", 2287 + " <td>0.977988</td>\n", 2288 + " </tr>\n", 2289 + " <tr>\n", 2290 + " <th>8</th>\n", 2291 + " <td>0.991172</td>\n", 2292 + " <td>-0.030169</td>\n", 2293 + " <td>-1.816031</td>\n", 2294 + " <td>0.601092</td>\n", 2295 + " </tr>\n", 2296 + " <tr>\n", 2297 + " <th>9</th>\n", 2298 + " <td>1.522968</td>\n", 2299 + " <td>0.440188</td>\n", 2300 + " <td>-1.763289</td>\n", 2301 + " <td>1.840091</td>\n", 2302 + " </tr>\n", 2303 + " </tbody>\n", 2304 + "</table>\n", 2305 + "</div>" 2306 + ], 2307 + "text/plain": [ 2308 + " 0 1 2 3\n", 2309 + "0 -0.634450 0.763724 0.710228 -0.694768\n", 2310 + "1 -0.142616 1.630704 1.029687 -1.008484\n", 2311 + "2 -0.344466 -0.222917 0.294177 -0.859483\n", 2312 + "3 1.012883 -0.369916 -0.552784 1.356238\n", 2313 + "4 -0.167002 1.677076 -0.454767 1.183958\n", 2314 + "5 -0.528190 -0.912389 0.786753 1.043857\n", 2315 + "6 0.527898 -0.379471 1.537252 -1.050597\n", 2316 + "7 -0.352473 -1.825571 0.186576 0.977988\n", 2317 + "8 0.991172 -0.030169 -1.816031 0.601092\n", 2318 + "9 1.522968 0.440188 -1.763289 1.840091" 2319 + ] 2320 + }, 2321 + "execution_count": 42, 2322 + "metadata": {}, 2323 + "output_type": "execute_result" 2324 + } 2325 + ], 751 2326 "source": [ 752 2327 "df = pd.DataFrame(np.random.randn(10, 4))\n", 753 2328 "df" ··· 755 2330 }, 756 2331 { 757 2332 "cell_type": "code", 758 - "execution_count": null, 2333 + "execution_count": 44, 759 2334 "metadata": { 760 2335 "slideshow": { 761 2336 "slide_type": "slide" 762 2337 } 763 2338 }, 764 - "outputs": [], 2339 + "outputs": [ 2340 + { 2341 + "data": { 2342 + "text/plain": [ 2343 + "[ 0 1 2 3\n", 2344 + " 0 -0.634450 0.763724 0.710228 -0.694768\n", 2345 + " 1 -0.142616 1.630704 1.029687 -1.008484\n", 2346 + " 2 -0.344466 -0.222917 0.294177 -0.859483,\n", 2347 + " 0 1 2 3\n", 2348 + " 3 1.012883 -0.369916 -0.552784 1.356238\n", 2349 + " 4 -0.167002 1.677076 -0.454767 1.183958\n", 2350 + " 5 -0.528190 -0.912389 0.786753 1.043857\n", 2351 + " 6 0.527898 -0.379471 1.537252 -1.050597,\n", 2352 + " 0 1 2 3\n", 2353 + " 7 -0.352473 -1.825571 0.186576 0.977988\n", 2354 + " 8 0.991172 -0.030169 -1.816031 0.601092\n", 2355 + " 9 1.522968 0.440188 -1.763289 1.840091]" 2356 + ] 2357 + }, 2358 + "execution_count": 44, 2359 + "metadata": {}, 2360 + "output_type": "execute_result" 2361 + } 2362 + ], 765 2363 "source": [ 766 2364 "pieces = [df[:3], df[3:7], df[7:]]\n", 767 2365 "pieces" ··· 769 2367 }, 770 2368 { 771 2369 "cell_type": "code", 772 - "execution_count": null, 2370 + "execution_count": 45, 773 2371 "metadata": { 774 2372 "slideshow": { 775 2373 "slide_type": "slide" 776 2374 } 777 2375 }, 778 - "outputs": [], 2376 + "outputs": [ 2377 + { 2378 + "data": { 2379 + "text/html": [ 2380 + "<div>\n", 2381 + "<style scoped>\n", 2382 + " .dataframe tbody tr th:only-of-type {\n", 2383 + " vertical-align: middle;\n", 2384 + " }\n", 2385 + "\n", 2386 + " .dataframe tbody tr th {\n", 2387 + " vertical-align: top;\n", 2388 + " }\n", 2389 + "\n", 2390 + " .dataframe thead th {\n", 2391 + " text-align: right;\n", 2392 + " }\n", 2393 + "</style>\n", 2394 + "<table border=\"1\" class=\"dataframe\">\n", 2395 + " <thead>\n", 2396 + " <tr style=\"text-align: right;\">\n", 2397 + " <th></th>\n", 2398 + " <th>0</th>\n", 2399 + " <th>1</th>\n", 2400 + " <th>2</th>\n", 2401 + " <th>3</th>\n", 2402 + " </tr>\n", 2403 + " </thead>\n", 2404 + " <tbody>\n", 2405 + " <tr>\n", 2406 + " <th>0</th>\n", 2407 + " <td>-0.634450</td>\n", 2408 + " <td>0.763724</td>\n", 2409 + " <td>0.710228</td>\n", 2410 + " <td>-0.694768</td>\n", 2411 + " </tr>\n", 2412 + " <tr>\n", 2413 + " <th>1</th>\n", 2414 + " <td>-0.142616</td>\n", 2415 + " <td>1.630704</td>\n", 2416 + " <td>1.029687</td>\n", 2417 + " <td>-1.008484</td>\n", 2418 + " </tr>\n", 2419 + " <tr>\n", 2420 + " <th>2</th>\n", 2421 + " <td>-0.344466</td>\n", 2422 + " <td>-0.222917</td>\n", 2423 + " <td>0.294177</td>\n", 2424 + " <td>-0.859483</td>\n", 2425 + " </tr>\n", 2426 + " <tr>\n", 2427 + " <th>3</th>\n", 2428 + " <td>1.012883</td>\n", 2429 + " <td>-0.369916</td>\n", 2430 + " <td>-0.552784</td>\n", 2431 + " <td>1.356238</td>\n", 2432 + " </tr>\n", 2433 + " <tr>\n", 2434 + " <th>4</th>\n", 2435 + " <td>-0.167002</td>\n", 2436 + " <td>1.677076</td>\n", 2437 + " <td>-0.454767</td>\n", 2438 + " <td>1.183958</td>\n", 2439 + " </tr>\n", 2440 + " <tr>\n", 2441 + " <th>5</th>\n", 2442 + " <td>-0.528190</td>\n", 2443 + " <td>-0.912389</td>\n", 2444 + " <td>0.786753</td>\n", 2445 + " <td>1.043857</td>\n", 2446 + " </tr>\n", 2447 + " <tr>\n", 2448 + " <th>6</th>\n", 2449 + " <td>0.527898</td>\n", 2450 + " <td>-0.379471</td>\n", 2451 + " <td>1.537252</td>\n", 2452 + " <td>-1.050597</td>\n", 2453 + " </tr>\n", 2454 + " <tr>\n", 2455 + " <th>7</th>\n", 2456 + " <td>-0.352473</td>\n", 2457 + " <td>-1.825571</td>\n", 2458 + " <td>0.186576</td>\n", 2459 + " <td>0.977988</td>\n", 2460 + " </tr>\n", 2461 + " <tr>\n", 2462 + " <th>8</th>\n", 2463 + " <td>0.991172</td>\n", 2464 + " <td>-0.030169</td>\n", 2465 + " <td>-1.816031</td>\n", 2466 + " <td>0.601092</td>\n", 2467 + " </tr>\n", 2468 + " <tr>\n", 2469 + " <th>9</th>\n", 2470 + " <td>1.522968</td>\n", 2471 + " <td>0.440188</td>\n", 2472 + " <td>-1.763289</td>\n", 2473 + " <td>1.840091</td>\n", 2474 + " </tr>\n", 2475 + " </tbody>\n", 2476 + "</table>\n", 2477 + "</div>" 2478 + ], 2479 + "text/plain": [ 2480 + " 0 1 2 3\n", 2481 + "0 -0.634450 0.763724 0.710228 -0.694768\n", 2482 + "1 -0.142616 1.630704 1.029687 -1.008484\n", 2483 + "2 -0.344466 -0.222917 0.294177 -0.859483\n", 2484 + "3 1.012883 -0.369916 -0.552784 1.356238\n", 2485 + "4 -0.167002 1.677076 -0.454767 1.183958\n", 2486 + "5 -0.528190 -0.912389 0.786753 1.043857\n", 2487 + "6 0.527898 -0.379471 1.537252 -1.050597\n", 2488 + "7 -0.352473 -1.825571 0.186576 0.977988\n", 2489 + "8 0.991172 -0.030169 -1.816031 0.601092\n", 2490 + "9 1.522968 0.440188 -1.763289 1.840091" 2491 + ] 2492 + }, 2493 + "execution_count": 45, 2494 + "metadata": {}, 2495 + "output_type": "execute_result" 2496 + } 2497 + ], 779 2498 "source": [ 780 2499 "pd.concat(pieces)" 781 2500 ] ··· 793 2512 }, 794 2513 { 795 2514 "cell_type": "code", 796 - "execution_count": null, 2515 + "execution_count": 46, 797 2516 "metadata": { 798 2517 "slideshow": { 799 2518 "slide_type": "slide" 800 2519 } 801 2520 }, 802 - "outputs": [], 2521 + "outputs": [ 2522 + { 2523 + "data": { 2524 + "text/html": [ 2525 + "<div>\n", 2526 + "<style scoped>\n", 2527 + " .dataframe tbody tr th:only-of-type {\n", 2528 + " vertical-align: middle;\n", 2529 + " }\n", 2530 + "\n", 2531 + " .dataframe tbody tr th {\n", 2532 + " vertical-align: top;\n", 2533 + " }\n", 2534 + "\n", 2535 + " .dataframe thead th {\n", 2536 + " text-align: right;\n", 2537 + " }\n", 2538 + "</style>\n", 2539 + "<table border=\"1\" class=\"dataframe\">\n", 2540 + " <thead>\n", 2541 + " <tr style=\"text-align: right;\">\n", 2542 + " <th></th>\n", 2543 + " <th>key</th>\n", 2544 + " <th>lval</th>\n", 2545 + " </tr>\n", 2546 + " </thead>\n", 2547 + " <tbody>\n", 2548 + " <tr>\n", 2549 + " <th>0</th>\n", 2550 + " <td>foo</td>\n", 2551 + " <td>1</td>\n", 2552 + " </tr>\n", 2553 + " <tr>\n", 2554 + " <th>1</th>\n", 2555 + " <td>foo</td>\n", 2556 + " <td>2</td>\n", 2557 + " </tr>\n", 2558 + " </tbody>\n", 2559 + "</table>\n", 2560 + "</div>" 2561 + ], 2562 + "text/plain": [ 2563 + " key lval\n", 2564 + "0 foo 1\n", 2565 + "1 foo 2" 2566 + ] 2567 + }, 2568 + "execution_count": 46, 2569 + "metadata": {}, 2570 + "output_type": "execute_result" 2571 + } 2572 + ], 803 2573 "source": [ 804 2574 "left = pd.DataFrame({'key': ['foo', 'foo'], 'lval': [1, 2]})\n", 805 2575 "left" ··· 807 2577 }, 808 2578 { 809 2579 "cell_type": "code", 810 - "execution_count": null, 2580 + "execution_count": 48, 811 2581 "metadata": { 812 2582 "slideshow": { 813 2583 "slide_type": "slide" 814 2584 } 815 2585 }, 816 - "outputs": [], 2586 + "outputs": [ 2587 + { 2588 + "data": { 2589 + "text/html": [ 2590 + "<div>\n", 2591 + "<style scoped>\n", 2592 + " .dataframe tbody tr th:only-of-type {\n", 2593 + " vertical-align: middle;\n", 2594 + " }\n", 2595 + "\n", 2596 + " .dataframe tbody tr th {\n", 2597 + " vertical-align: top;\n", 2598 + " }\n", 2599 + "\n", 2600 + " .dataframe thead th {\n", 2601 + " text-align: right;\n", 2602 + " }\n", 2603 + "</style>\n", 2604 + "<table border=\"1\" class=\"dataframe\">\n", 2605 + " <thead>\n", 2606 + " <tr style=\"text-align: right;\">\n", 2607 + " <th></th>\n", 2608 + " <th>key</th>\n", 2609 + " <th>rval</th>\n", 2610 + " </tr>\n", 2611 + " </thead>\n", 2612 + " <tbody>\n", 2613 + " <tr>\n", 2614 + " <th>0</th>\n", 2615 + " <td>foo</td>\n", 2616 + " <td>4</td>\n", 2617 + " </tr>\n", 2618 + " <tr>\n", 2619 + " <th>1</th>\n", 2620 + " <td>foo</td>\n", 2621 + " <td>5</td>\n", 2622 + " </tr>\n", 2623 + " </tbody>\n", 2624 + "</table>\n", 2625 + "</div>" 2626 + ], 2627 + "text/plain": [ 2628 + " key rval\n", 2629 + "0 foo 4\n", 2630 + "1 foo 5" 2631 + ] 2632 + }, 2633 + "execution_count": 48, 2634 + "metadata": {}, 2635 + "output_type": "execute_result" 2636 + } 2637 + ], 817 2638 "source": [ 818 2639 "right = pd.DataFrame({'key': ['foo', 'foo'], 'rval': [4, 5]})\n", 819 2640 "right" ··· 821 2642 }, 822 2643 { 823 2644 "cell_type": "code", 824 - "execution_count": null, 2645 + "execution_count": 49, 825 2646 "metadata": { 826 2647 "slideshow": { 827 2648 "slide_type": "slide" 828 2649 } 829 2650 }, 830 - "outputs": [], 2651 + "outputs": [ 2652 + { 2653 + "data": { 2654 + "text/html": [ 2655 + "<div>\n", 2656 + "<style scoped>\n", 2657 + " .dataframe tbody tr th:only-of-type {\n", 2658 + " vertical-align: middle;\n", 2659 + " }\n", 2660 + "\n", 2661 + " .dataframe tbody tr th {\n", 2662 + " vertical-align: top;\n", 2663 + " }\n", 2664 + "\n", 2665 + " .dataframe thead th {\n", 2666 + " text-align: right;\n", 2667 + " }\n", 2668 + "</style>\n", 2669 + "<table border=\"1\" class=\"dataframe\">\n", 2670 + " <thead>\n", 2671 + " <tr style=\"text-align: right;\">\n", 2672 + " <th></th>\n", 2673 + " <th>key</th>\n", 2674 + " <th>lval</th>\n", 2675 + " <th>rval</th>\n", 2676 + " </tr>\n", 2677 + " </thead>\n", 2678 + " <tbody>\n", 2679 + " <tr>\n", 2680 + " <th>0</th>\n", 2681 + " <td>foo</td>\n", 2682 + " <td>1</td>\n", 2683 + " <td>4</td>\n", 2684 + " </tr>\n", 2685 + " <tr>\n", 2686 + " <th>1</th>\n", 2687 + " <td>foo</td>\n", 2688 + " <td>1</td>\n", 2689 + " <td>5</td>\n", 2690 + " </tr>\n", 2691 + " <tr>\n", 2692 + " <th>2</th>\n", 2693 + " <td>foo</td>\n", 2694 + " <td>2</td>\n", 2695 + " <td>4</td>\n", 2696 + " </tr>\n", 2697 + " <tr>\n", 2698 + " <th>3</th>\n", 2699 + " <td>foo</td>\n", 2700 + " <td>2</td>\n", 2701 + " <td>5</td>\n", 2702 + " </tr>\n", 2703 + " </tbody>\n", 2704 + "</table>\n", 2705 + "</div>" 2706 + ], 2707 + "text/plain": [ 2708 + " key lval rval\n", 2709 + "0 foo 1 4\n", 2710 + "1 foo 1 5\n", 2711 + "2 foo 2 4\n", 2712 + "3 foo 2 5" 2713 + ] 2714 + }, 2715 + "execution_count": 49, 2716 + "metadata": {}, 2717 + "output_type": "execute_result" 2718 + } 2719 + ], 831 2720 "source": [ 832 2721 "pd.merge(left, right, on='key')" 833 2722 ] ··· 845 2734 }, 846 2735 { 847 2736 "cell_type": "code", 848 - "execution_count": null, 2737 + "execution_count": 50, 849 2738 "metadata": { 850 2739 "slideshow": { 851 2740 "slide_type": "slide" 852 2741 } 853 2742 }, 854 - "outputs": [], 2743 + "outputs": [ 2744 + { 2745 + "data": { 2746 + "text/html": [ 2747 + "<div>\n", 2748 + "<style scoped>\n", 2749 + " .dataframe tbody tr th:only-of-type {\n", 2750 + " vertical-align: middle;\n", 2751 + " }\n", 2752 + "\n", 2753 + " .dataframe tbody tr th {\n", 2754 + " vertical-align: top;\n", 2755 + " }\n", 2756 + "\n", 2757 + " .dataframe thead th {\n", 2758 + " text-align: right;\n", 2759 + " }\n", 2760 + "</style>\n", 2761 + "<table border=\"1\" class=\"dataframe\">\n", 2762 + " <thead>\n", 2763 + " <tr style=\"text-align: right;\">\n", 2764 + " <th></th>\n", 2765 + " <th>A</th>\n", 2766 + " <th>B</th>\n", 2767 + " <th>C</th>\n", 2768 + " <th>D</th>\n", 2769 + " </tr>\n", 2770 + " </thead>\n", 2771 + " <tbody>\n", 2772 + " <tr>\n", 2773 + " <th>0</th>\n", 2774 + " <td>-0.362774</td>\n", 2775 + " <td>-0.573908</td>\n", 2776 + " <td>0.098044</td>\n", 2777 + " <td>1.992482</td>\n", 2778 + " </tr>\n", 2779 + " <tr>\n", 2780 + " <th>1</th>\n", 2781 + " <td>1.437667</td>\n", 2782 + " <td>0.940580</td>\n", 2783 + " <td>-0.355047</td>\n", 2784 + " <td>-0.142454</td>\n", 2785 + " </tr>\n", 2786 + " <tr>\n", 2787 + " <th>2</th>\n", 2788 + " <td>-1.097556</td>\n", 2789 + " <td>-0.593504</td>\n", 2790 + " <td>-1.313146</td>\n", 2791 + " <td>-0.490131</td>\n", 2792 + " </tr>\n", 2793 + " <tr>\n", 2794 + " <th>3</th>\n", 2795 + " <td>1.028989</td>\n", 2796 + " <td>0.098031</td>\n", 2797 + " <td>0.881277</td>\n", 2798 + " <td>0.426499</td>\n", 2799 + " </tr>\n", 2800 + " <tr>\n", 2801 + " <th>4</th>\n", 2802 + " <td>-0.589829</td>\n", 2803 + " <td>-0.331404</td>\n", 2804 + " <td>0.692164</td>\n", 2805 + " <td>0.456827</td>\n", 2806 + " </tr>\n", 2807 + " <tr>\n", 2808 + " <th>5</th>\n", 2809 + " <td>-0.158751</td>\n", 2810 + " <td>-0.199149</td>\n", 2811 + " <td>-0.395195</td>\n", 2812 + " <td>0.882798</td>\n", 2813 + " </tr>\n", 2814 + " <tr>\n", 2815 + " <th>6</th>\n", 2816 + " <td>-0.021648</td>\n", 2817 + " <td>0.764384</td>\n", 2818 + " <td>0.408657</td>\n", 2819 + " <td>-1.262260</td>\n", 2820 + " </tr>\n", 2821 + " <tr>\n", 2822 + " <th>7</th>\n", 2823 + " <td>-1.113406</td>\n", 2824 + " <td>0.107256</td>\n", 2825 + " <td>0.420511</td>\n", 2826 + " <td>-0.968303</td>\n", 2827 + " </tr>\n", 2828 + " </tbody>\n", 2829 + "</table>\n", 2830 + "</div>" 2831 + ], 2832 + "text/plain": [ 2833 + " A B C D\n", 2834 + "0 -0.362774 -0.573908 0.098044 1.992482\n", 2835 + "1 1.437667 0.940580 -0.355047 -0.142454\n", 2836 + "2 -1.097556 -0.593504 -1.313146 -0.490131\n", 2837 + "3 1.028989 0.098031 0.881277 0.426499\n", 2838 + "4 -0.589829 -0.331404 0.692164 0.456827\n", 2839 + "5 -0.158751 -0.199149 -0.395195 0.882798\n", 2840 + "6 -0.021648 0.764384 0.408657 -1.262260\n", 2841 + "7 -1.113406 0.107256 0.420511 -0.968303" 2842 + ] 2843 + }, 2844 + "execution_count": 50, 2845 + "metadata": {}, 2846 + "output_type": "execute_result" 2847 + } 2848 + ], 855 2849 "source": [ 856 2850 "df = pd.DataFrame(np.random.randn(8, 4), columns=['A', 'B', 'C', 'D'])\n", 857 2851 "df" ··· 859 2853 }, 860 2854 { 861 2855 "cell_type": "code", 862 - "execution_count": null, 2856 + "execution_count": 51, 863 2857 "metadata": { 864 2858 "slideshow": { 865 2859 "slide_type": "slide" 866 2860 } 867 2861 }, 868 - "outputs": [], 2862 + "outputs": [ 2863 + { 2864 + "data": { 2865 + "text/plain": [ 2866 + "A 1.028989\n", 2867 + "B 0.098031\n", 2868 + "C 0.881277\n", 2869 + "D 0.426499\n", 2870 + "Name: 3, dtype: float64" 2871 + ] 2872 + }, 2873 + "execution_count": 51, 2874 + "metadata": {}, 2875 + "output_type": "execute_result" 2876 + } 2877 + ], 869 2878 "source": [ 870 2879 "s = df.iloc[3]\n", 871 2880 "s" ··· 873 2882 }, 874 2883 { 875 2884 "cell_type": "code", 876 - "execution_count": null, 2885 + "execution_count": 52, 877 2886 "metadata": { 878 2887 "slideshow": { 879 2888 "slide_type": "slide" 880 2889 } 881 2890 }, 882 - "outputs": [], 2891 + "outputs": [ 2892 + { 2893 + "data": { 2894 + "text/html": [ 2895 + "<div>\n", 2896 + "<style scoped>\n", 2897 + " .dataframe tbody tr th:only-of-type {\n", 2898 + " vertical-align: middle;\n", 2899 + " }\n", 2900 + "\n", 2901 + " .dataframe tbody tr th {\n", 2902 + " vertical-align: top;\n", 2903 + " }\n", 2904 + "\n", 2905 + " .dataframe thead th {\n", 2906 + " text-align: right;\n", 2907 + " }\n", 2908 + "</style>\n", 2909 + "<table border=\"1\" class=\"dataframe\">\n", 2910 + " <thead>\n", 2911 + " <tr style=\"text-align: right;\">\n", 2912 + " <th></th>\n", 2913 + " <th>A</th>\n", 2914 + " <th>B</th>\n", 2915 + " <th>C</th>\n", 2916 + " <th>D</th>\n", 2917 + " </tr>\n", 2918 + " </thead>\n", 2919 + " <tbody>\n", 2920 + " <tr>\n", 2921 + " <th>0</th>\n", 2922 + " <td>-0.362774</td>\n", 2923 + " <td>-0.573908</td>\n", 2924 + " <td>0.098044</td>\n", 2925 + " <td>1.992482</td>\n", 2926 + " </tr>\n", 2927 + " <tr>\n", 2928 + " <th>1</th>\n", 2929 + " <td>1.437667</td>\n", 2930 + " <td>0.940580</td>\n", 2931 + " <td>-0.355047</td>\n", 2932 + " <td>-0.142454</td>\n", 2933 + " </tr>\n", 2934 + " <tr>\n", 2935 + " <th>2</th>\n", 2936 + " <td>-1.097556</td>\n", 2937 + " <td>-0.593504</td>\n", 2938 + " <td>-1.313146</td>\n", 2939 + " <td>-0.490131</td>\n", 2940 + " </tr>\n", 2941 + " <tr>\n", 2942 + " <th>3</th>\n", 2943 + " <td>1.028989</td>\n", 2944 + " <td>0.098031</td>\n", 2945 + " <td>0.881277</td>\n", 2946 + " <td>0.426499</td>\n", 2947 + " </tr>\n", 2948 + " <tr>\n", 2949 + " <th>4</th>\n", 2950 + " <td>-0.589829</td>\n", 2951 + " <td>-0.331404</td>\n", 2952 + " <td>0.692164</td>\n", 2953 + " <td>0.456827</td>\n", 2954 + " </tr>\n", 2955 + " <tr>\n", 2956 + " <th>5</th>\n", 2957 + " <td>-0.158751</td>\n", 2958 + " <td>-0.199149</td>\n", 2959 + " <td>-0.395195</td>\n", 2960 + " <td>0.882798</td>\n", 2961 + " </tr>\n", 2962 + " <tr>\n", 2963 + " <th>6</th>\n", 2964 + " <td>-0.021648</td>\n", 2965 + " <td>0.764384</td>\n", 2966 + " <td>0.408657</td>\n", 2967 + " <td>-1.262260</td>\n", 2968 + " </tr>\n", 2969 + " <tr>\n", 2970 + " <th>7</th>\n", 2971 + " <td>-1.113406</td>\n", 2972 + " <td>0.107256</td>\n", 2973 + " <td>0.420511</td>\n", 2974 + " <td>-0.968303</td>\n", 2975 + " </tr>\n", 2976 + " <tr>\n", 2977 + " <th>8</th>\n", 2978 + " <td>1.028989</td>\n", 2979 + " <td>0.098031</td>\n", 2980 + " <td>0.881277</td>\n", 2981 + " <td>0.426499</td>\n", 2982 + " </tr>\n", 2983 + " </tbody>\n", 2984 + "</table>\n", 2985 + "</div>" 2986 + ], 2987 + "text/plain": [ 2988 + " A B C D\n", 2989 + "0 -0.362774 -0.573908 0.098044 1.992482\n", 2990 + "1 1.437667 0.940580 -0.355047 -0.142454\n", 2991 + "2 -1.097556 -0.593504 -1.313146 -0.490131\n", 2992 + "3 1.028989 0.098031 0.881277 0.426499\n", 2993 + "4 -0.589829 -0.331404 0.692164 0.456827\n", 2994 + "5 -0.158751 -0.199149 -0.395195 0.882798\n", 2995 + "6 -0.021648 0.764384 0.408657 -1.262260\n", 2996 + "7 -1.113406 0.107256 0.420511 -0.968303\n", 2997 + "8 1.028989 0.098031 0.881277 0.426499" 2998 + ] 2999 + }, 3000 + "execution_count": 52, 3001 + "metadata": {}, 3002 + "output_type": "execute_result" 3003 + } 3004 + ], 883 3005 "source": [ 884 3006 "df.append(s, ignore_index=True)" 885 3007 ] ··· 903 3025 }, 904 3026 { 905 3027 "cell_type": "code", 906 - "execution_count": null, 3028 + "execution_count": 53, 907 3029 "metadata": { 908 3030 "slideshow": { 909 3031 "slide_type": "slide" 910 3032 } 911 3033 }, 912 - "outputs": [], 3034 + "outputs": [ 3035 + { 3036 + "data": { 3037 + "text/html": [ 3038 + "<div>\n", 3039 + "<style scoped>\n", 3040 + " .dataframe tbody tr th:only-of-type {\n", 3041 + " vertical-align: middle;\n", 3042 + " }\n", 3043 + "\n", 3044 + " .dataframe tbody tr th {\n", 3045 + " vertical-align: top;\n", 3046 + " }\n", 3047 + "\n", 3048 + " .dataframe thead th {\n", 3049 + " text-align: right;\n", 3050 + " }\n", 3051 + "</style>\n", 3052 + "<table border=\"1\" class=\"dataframe\">\n", 3053 + " <thead>\n", 3054 + " <tr style=\"text-align: right;\">\n", 3055 + " <th></th>\n", 3056 + " <th>A</th>\n", 3057 + " <th>B</th>\n", 3058 + " <th>C</th>\n", 3059 + " <th>D</th>\n", 3060 + " </tr>\n", 3061 + " </thead>\n", 3062 + " <tbody>\n", 3063 + " <tr>\n", 3064 + " <th>0</th>\n", 3065 + " <td>foo</td>\n", 3066 + " <td>one</td>\n", 3067 + " <td>-1.976302</td>\n", 3068 + " <td>-0.708903</td>\n", 3069 + " </tr>\n", 3070 + " <tr>\n", 3071 + " <th>1</th>\n", 3072 + " <td>bar</td>\n", 3073 + " <td>one</td>\n", 3074 + " <td>-1.709147</td>\n", 3075 + " <td>-0.680945</td>\n", 3076 + " </tr>\n", 3077 + " <tr>\n", 3078 + " <th>2</th>\n", 3079 + " <td>foo</td>\n", 3080 + " <td>two</td>\n", 3081 + " <td>0.229683</td>\n", 3082 + " <td>-0.613908</td>\n", 3083 + " </tr>\n", 3084 + " <tr>\n", 3085 + " <th>3</th>\n", 3086 + " <td>bar</td>\n", 3087 + " <td>three</td>\n", 3088 + " <td>0.917311</td>\n", 3089 + " <td>-0.819363</td>\n", 3090 + " </tr>\n", 3091 + " <tr>\n", 3092 + " <th>4</th>\n", 3093 + " <td>foo</td>\n", 3094 + " <td>two</td>\n", 3095 + " <td>-1.245424</td>\n", 3096 + " <td>-1.041576</td>\n", 3097 + " </tr>\n", 3098 + " <tr>\n", 3099 + " <th>5</th>\n", 3100 + " <td>bar</td>\n", 3101 + " <td>two</td>\n", 3102 + " <td>0.904258</td>\n", 3103 + " <td>-1.698605</td>\n", 3104 + " </tr>\n", 3105 + " <tr>\n", 3106 + " <th>6</th>\n", 3107 + " <td>foo</td>\n", 3108 + " <td>one</td>\n", 3109 + " <td>-1.215414</td>\n", 3110 + " <td>1.879422</td>\n", 3111 + " </tr>\n", 3112 + " <tr>\n", 3113 + " <th>7</th>\n", 3114 + " <td>foo</td>\n", 3115 + " <td>three</td>\n", 3116 + " <td>1.406019</td>\n", 3117 + " <td>-0.603691</td>\n", 3118 + " </tr>\n", 3119 + " </tbody>\n", 3120 + "</table>\n", 3121 + "</div>" 3122 + ], 3123 + "text/plain": [ 3124 + " A B C D\n", 3125 + "0 foo one -1.976302 -0.708903\n", 3126 + "1 bar one -1.709147 -0.680945\n", 3127 + "2 foo two 0.229683 -0.613908\n", 3128 + "3 bar three 0.917311 -0.819363\n", 3129 + "4 foo two -1.245424 -1.041576\n", 3130 + "5 bar two 0.904258 -1.698605\n", 3131 + "6 foo one -1.215414 1.879422\n", 3132 + "7 foo three 1.406019 -0.603691" 3133 + ] 3134 + }, 3135 + "execution_count": 53, 3136 + "metadata": {}, 3137 + "output_type": "execute_result" 3138 + } 3139 + ], 913 3140 "source": [ 914 3141 "df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar',\n", 915 3142 " 'foo', 'bar', 'foo', 'foo'],\n", ··· 922 3149 }, 923 3150 { 924 3151 "cell_type": "code", 925 - "execution_count": null, 3152 + "execution_count": 56, 926 3153 "metadata": { 927 3154 "slideshow": { 928 3155 "slide_type": "slide" 929 3156 } 930 3157 }, 931 - "outputs": [], 3158 + "outputs": [ 3159 + { 3160 + "data": { 3161 + "text/html": [ 3162 + "<div>\n", 3163 + "<style scoped>\n", 3164 + " .dataframe tbody tr th:only-of-type {\n", 3165 + " vertical-align: middle;\n", 3166 + " }\n", 3167 + "\n", 3168 + " .dataframe tbody tr th {\n", 3169 + " vertical-align: top;\n", 3170 + " }\n", 3171 + "\n", 3172 + " .dataframe thead th {\n", 3173 + " text-align: right;\n", 3174 + " }\n", 3175 + "</style>\n", 3176 + "<table border=\"1\" class=\"dataframe\">\n", 3177 + " <thead>\n", 3178 + " <tr style=\"text-align: right;\">\n", 3179 + " <th></th>\n", 3180 + " <th>C</th>\n", 3181 + " <th>D</th>\n", 3182 + " </tr>\n", 3183 + " <tr>\n", 3184 + " <th>A</th>\n", 3185 + " <th></th>\n", 3186 + " <th></th>\n", 3187 + " </tr>\n", 3188 + " </thead>\n", 3189 + " <tbody>\n", 3190 + " <tr>\n", 3191 + " <th>bar</th>\n", 3192 + " <td>0.112423</td>\n", 3193 + " <td>-3.198913</td>\n", 3194 + " </tr>\n", 3195 + " <tr>\n", 3196 + " <th>foo</th>\n", 3197 + " <td>-2.801438</td>\n", 3198 + " <td>-1.088656</td>\n", 3199 + " </tr>\n", 3200 + " </tbody>\n", 3201 + "</table>\n", 3202 + "</div>" 3203 + ], 3204 + "text/plain": [ 3205 + " C D\n", 3206 + "A \n", 3207 + "bar 0.112423 -3.198913\n", 3208 + "foo -2.801438 -1.088656" 3209 + ] 3210 + }, 3211 + "execution_count": 56, 3212 + "metadata": {}, 3213 + "output_type": "execute_result" 3214 + } 3215 + ], 932 3216 "source": [ 933 3217 "df.groupby('A').sum()" 934 3218 ] 935 3219 }, 936 3220 { 937 3221 "cell_type": "code", 938 - "execution_count": null, 3222 + "execution_count": 57, 939 3223 "metadata": { 940 3224 "slideshow": { 941 3225 "slide_type": "slide" 942 3226 } 943 3227 }, 944 - "outputs": [], 3228 + "outputs": [ 3229 + { 3230 + "data": { 3231 + "text/html": [ 3232 + "<div>\n", 3233 + "<style scoped>\n", 3234 + " .dataframe tbody tr th:only-of-type {\n", 3235 + " vertical-align: middle;\n", 3236 + " }\n", 3237 + "\n", 3238 + " .dataframe tbody tr th {\n", 3239 + " vertical-align: top;\n", 3240 + " }\n", 3241 + "\n", 3242 + " .dataframe thead th {\n", 3243 + " text-align: right;\n", 3244 + " }\n", 3245 + "</style>\n", 3246 + "<table border=\"1\" class=\"dataframe\">\n", 3247 + " <thead>\n", 3248 + " <tr style=\"text-align: right;\">\n", 3249 + " <th></th>\n", 3250 + " <th></th>\n", 3251 + " <th>C</th>\n", 3252 + " <th>D</th>\n", 3253 + " </tr>\n", 3254 + " <tr>\n", 3255 + " <th>A</th>\n", 3256 + " <th>B</th>\n", 3257 + " <th></th>\n", 3258 + " <th></th>\n", 3259 + " </tr>\n", 3260 + " </thead>\n", 3261 + " <tbody>\n", 3262 + " <tr>\n", 3263 + " <th rowspan=\"3\" valign=\"top\">bar</th>\n", 3264 + " <th>one</th>\n", 3265 + " <td>-1.709147</td>\n", 3266 + " <td>-0.680945</td>\n", 3267 + " </tr>\n", 3268 + " <tr>\n", 3269 + " <th>three</th>\n", 3270 + " <td>0.917311</td>\n", 3271 + " <td>-0.819363</td>\n", 3272 + " </tr>\n", 3273 + " <tr>\n", 3274 + " <th>two</th>\n", 3275 + " <td>0.904258</td>\n", 3276 + " <td>-1.698605</td>\n", 3277 + " </tr>\n", 3278 + " <tr>\n", 3279 + " <th rowspan=\"3\" valign=\"top\">foo</th>\n", 3280 + " <th>one</th>\n", 3281 + " <td>-3.191715</td>\n", 3282 + " <td>1.170519</td>\n", 3283 + " </tr>\n", 3284 + " <tr>\n", 3285 + " <th>three</th>\n", 3286 + " <td>1.406019</td>\n", 3287 + " <td>-0.603691</td>\n", 3288 + " </tr>\n", 3289 + " <tr>\n", 3290 + " <th>two</th>\n", 3291 + " <td>-1.015741</td>\n", 3292 + " <td>-1.655484</td>\n", 3293 + " </tr>\n", 3294 + " </tbody>\n", 3295 + "</table>\n", 3296 + "</div>" 3297 + ], 3298 + "text/plain": [ 3299 + " C D\n", 3300 + "A B \n", 3301 + "bar one -1.709147 -0.680945\n", 3302 + " three 0.917311 -0.819363\n", 3303 + " two 0.904258 -1.698605\n", 3304 + "foo one -3.191715 1.170519\n", 3305 + " three 1.406019 -0.603691\n", 3306 + " two -1.015741 -1.655484" 3307 + ] 3308 + }, 3309 + "execution_count": 57, 3310 + "metadata": {}, 3311 + "output_type": "execute_result" 3312 + } 3313 + ], 945 3314 "source": [ 946 3315 "df.groupby(['A', 'B']).sum()" 947 3316 ]
+261 -20
Curso de Python - Tema 12.ipynb
··· 52 52 }, 53 53 { 54 54 "cell_type": "code", 55 - "execution_count": null, 55 + "execution_count": 1, 56 56 "metadata": { 57 57 "slideshow": { 58 58 "slide_type": "fragment" ··· 76 76 }, 77 77 { 78 78 "cell_type": "code", 79 - "execution_count": null, 79 + "execution_count": 3, 80 80 "metadata": { 81 81 "slideshow": { 82 82 "slide_type": "fragment" ··· 100 100 }, 101 101 { 102 102 "cell_type": "code", 103 - "execution_count": null, 103 + "execution_count": 5, 104 104 "metadata": { 105 + "scrolled": true, 105 106 "slideshow": { 106 107 "slide_type": "slide" 107 108 } 108 109 }, 109 - "outputs": [], 110 + "outputs": [ 111 + { 112 + "name": "stdout", 113 + "output_type": "stream", 114 + "text": [ 115 + "[-1.02863835 -2.12761573 -1.1752449 -0.73723651 -0.94338067 -0.52004283\n", 116 + " -0.62843646 0.38499025 0.90978612 1.02551133 0.8390467 -0.62336817\n", 117 + " -0.42356347 -2.08996516 -1.49189922 0.61037416 0.15665986 2.1773096\n", 118 + " 3.3008169 3.60381656 2.41009493 3.90540367 4.85075032 5.11319614\n", 119 + " 5.56020093 4.87633511 4.17331661 4.23431875 3.9690097 4.41801309\n", 120 + " 6.07002078 5.71447917 6.53803362 6.71765872 6.11396015 4.77741416\n", 121 + " 5.47185985 5.49372347 5.83802746 5.82764179 5.89456568 7.77531779\n", 122 + " 9.04523358 9.58207098 9.78913115 9.29631786 11.01116344 12.37017566\n", 123 + " 11.00418013 10.23439153]\n" 124 + ] 125 + }, 126 + { 127 + "data": { 128 + "image/png": "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\n", 129 + "text/plain": [ 130 + "<Figure size 432x288 with 1 Axes>" 131 + ] 132 + }, 133 + "metadata": { 134 + "needs_background": "light" 135 + }, 136 + "output_type": "display_data" 137 + } 138 + ], 110 139 "source": [ 111 - "plt.plot(np.random.randn(50).cumsum())" 140 + "import numpy as np\n", 141 + "\n", 142 + "x = np.random.randn(50).cumsum()\n", 143 + "plt.plot(x)\n", 144 + "print(x)" 112 145 ] 113 146 }, 114 147 { ··· 154 187 }, 155 188 { 156 189 "cell_type": "code", 157 - "execution_count": null, 190 + "execution_count": 6, 158 191 "metadata": { 159 192 "slideshow": { 160 - "slide_type": "fragment" 193 + "slide_type": "slide" 161 194 } 162 195 }, 163 - "outputs": [], 196 + "outputs": [ 197 + { 198 + "data": { 199 + "text/plain": [ 200 + "[]" 201 + ] 202 + }, 203 + "execution_count": 6, 204 + "metadata": {}, 205 + "output_type": "execute_result" 206 + }, 207 + { 208 + "data": { 209 + "image/png": "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\n", 210 + "text/plain": [ 211 + "<Figure size 432x288 with 1 Axes>" 212 + ] 213 + }, 214 + "metadata": { 215 + "needs_background": "light" 216 + }, 217 + "output_type": "display_data" 218 + } 219 + ], 164 220 "source": [ 165 221 "fig = plt.figure()\n", 166 222 "fig.suptitle('figure vacío') \n", ··· 180 236 }, 181 237 { 182 238 "cell_type": "code", 183 - "execution_count": null, 239 + "execution_count": 7, 184 240 "metadata": { 185 241 "slideshow": { 186 242 "slide_type": "slide" 187 243 } 188 244 }, 189 - "outputs": [], 245 + "outputs": [ 246 + { 247 + "data": { 248 + "text/plain": [ 249 + "[<matplotlib.lines.Line2D at 0x11f0045f8>]" 250 + ] 251 + }, 252 + "execution_count": 7, 253 + "metadata": {}, 254 + "output_type": "execute_result" 255 + }, 256 + { 257 + "data": { 258 + "image/png": "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6tevT0ZGBmfOnLG43oCAAMqXL8++fS6zGpymuR173uHXBq4DXyulDiil5imlSt9fSCk1XCm1Vym19/r163YMz3IzZszg+eefB6Bdu3Y8//zzVK5c2abn9PLKHEoRGxtrlfpiY2OpUaMGSinq168PwIkTJyyqMyMjgzt37tCmTRt27dpljTA1TTODPRO+F9ACmCkizYFE4J/3FxKROSISKiKhlSq51rxWly5dIigoCAClFPPnz6d79+42PefOnTt56qmnjInfUrGxsfj7+wPw0EMPceDAAR5//HGL6ty8eTNVqlTBw8ODI0eOEB8fb41QNU0rInsm/EvAJRHZnfX5RzJ/ALiNexN+tsuXL3PhwgWbnbN169asWLGCevXqWVyXiFCtWjWyZyj18fGhWbNmlCpVqkj1DB8+nGHDhhkf0H733XeULFmSv//974gIu3fvNpZNSkqyOG5N00xjt4QvIleBi0qp7FFJXYCj9jq/rYkIFy9ezJHwU1NTqV+/PhMnTrTJOS9fvkznzp3ZunWrVepTShEREcGbb75p3Pbzzz/z5ZdfmlyHiLB06VK++eYbPv74YxITE1m+fDnPPvssjz76KL169cLHx8dYvmfPngwYMMAq8WuaVjB799J5GViklDoMNAM+svP5bSY+Pp7ExMQcCd/b25suXbrw888/26Q74pkzZ9i6dSudO3dmypQpVq8fYPny5bz//vsml4+OjubWrVsEBwcTGBjIypUrSUxMZPDgwZQtW5bVq1fzyCOPGMtu27aNhg0b2iR2TdNysmvCF5GDWe3zD4rIUyJina4lTqB06dLs378/191qz549OX/+PEePWv+XmfPn/zeduzX64h86dIhHHnmE/fv3G7c1aNCAa9eumdzufvjwYSCzGWfo0KF89913BAcH06FDB2OZ2NhYMjIyWLJkCSLCv//97xzn1DTNNvRIWyspUaIEzZs3JzAwMMf2nj17AplNI9aWnfArVKjAjRs3LK7v4sWL7NixI0ef/uyeOidPnjSpju7du3P69GlatWoFwOTJk5kzZw4eHpmX2ooVKwgICCAyMpLvv//eeJw1B49pmpY3nfCtZN++fcydO5eUlJQc2wMDA2nWrBlr1qyx+jnPnz9PpUqVCAoKskq3zOw6snvpAMaJ4ExN+B4eHtSpU8f4oLdRo0Y5evk89NBDAHz77bfs3buX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\n", 259 + "text/plain": [ 260 + "<Figure size 432x288 with 3 Axes>" 261 + ] 262 + }, 263 + "metadata": { 264 + "needs_background": "light" 265 + }, 266 + "output_type": "display_data" 267 + } 268 + ], 190 269 "source": [ 191 270 "fig = plt.figure()\n", 192 271 "ax1 = fig.add_subplot(2, 2, 1)\n", ··· 199 278 }, 200 279 { 201 280 "cell_type": "code", 202 - "execution_count": null, 281 + "execution_count": 8, 203 282 "metadata": { 204 283 "scrolled": true, 205 284 "slideshow": { 206 285 "slide_type": "slide" 207 286 } 208 287 }, 209 - "outputs": [], 288 + "outputs": [ 289 + { 290 + "data": { 291 + "image/png": "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\n", 292 + "text/plain": [ 293 + "<Figure size 432x288 with 2 Axes>" 294 + ] 295 + }, 296 + "metadata": { 297 + "needs_background": "light" 298 + }, 299 + "output_type": "display_data" 300 + } 301 + ], 210 302 "source": [ 211 303 "x = np.arange(0, 3 * np.pi, 0.1)\n", 212 304 "y_sin = np.sin(x)\n", ··· 237 329 }, 238 330 { 239 331 "cell_type": "code", 240 - "execution_count": null, 332 + "execution_count": 9, 241 333 "metadata": { 242 334 "slideshow": { 243 335 "slide_type": "slide" 244 336 } 245 337 }, 246 - "outputs": [], 338 + "outputs": [ 339 + { 340 + "data": { 341 + "text/plain": [ 342 + "<matplotlib.axes._subplots.AxesSubplot at 0x120ff54e0>" 343 + ] 344 + }, 345 + "execution_count": 9, 346 + "metadata": {}, 347 + "output_type": "execute_result" 348 + }, 349 + { 350 + "data": { 351 + "image/png": "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\n", 352 + "text/plain": [ 353 + "<Figure size 432x288 with 1 Axes>" 354 + ] 355 + }, 356 + "metadata": { 357 + "needs_background": "light" 358 + }, 359 + "output_type": "display_data" 360 + } 361 + ], 247 362 "source": [ 363 + "import pandas as pd\n", 364 + "\n", 248 365 "ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))\n", 249 366 "ts = ts.cumsum()\n", 250 367 "ts.plot()" ··· 252 369 }, 253 370 { 254 371 "cell_type": "code", 255 - "execution_count": null, 372 + "execution_count": 10, 256 373 "metadata": { 257 374 "slideshow": { 258 375 "slide_type": "slide" 259 376 } 260 377 }, 261 - "outputs": [], 378 + "outputs": [ 379 + { 380 + "data": { 381 + "text/html": [ 382 + "<div>\n", 383 + "<style scoped>\n", 384 + " .dataframe tbody tr th:only-of-type {\n", 385 + " vertical-align: middle;\n", 386 + " }\n", 387 + "\n", 388 + " .dataframe tbody tr th {\n", 389 + " vertical-align: top;\n", 390 + " }\n", 391 + "\n", 392 + " .dataframe thead th {\n", 393 + " text-align: right;\n", 394 + " }\n", 395 + "</style>\n", 396 + "<table border=\"1\" class=\"dataframe\">\n", 397 + " <thead>\n", 398 + " <tr style=\"text-align: right;\">\n", 399 + " <th></th>\n", 400 + " <th>A</th>\n", 401 + " <th>B</th>\n", 402 + " <th>C</th>\n", 403 + " <th>D</th>\n", 404 + " </tr>\n", 405 + " </thead>\n", 406 + " <tbody>\n", 407 + " <tr>\n", 408 + " <th>2000-01-01</th>\n", 409 + " <td>-1.252297</td>\n", 410 + " <td>0.309457</td>\n", 411 + " <td>0.564062</td>\n", 412 + " <td>-0.317236</td>\n", 413 + " </tr>\n", 414 + " <tr>\n", 415 + " <th>2000-01-02</th>\n", 416 + " <td>-2.284369</td>\n", 417 + " <td>1.329985</td>\n", 418 + " <td>-0.889674</td>\n", 419 + " <td>0.140528</td>\n", 420 + " </tr>\n", 421 + " <tr>\n", 422 + " <th>2000-01-03</th>\n", 423 + " <td>-1.571075</td>\n", 424 + " <td>3.708584</td>\n", 425 + " <td>0.078306</td>\n", 426 + " <td>0.275802</td>\n", 427 + " </tr>\n", 428 + " <tr>\n", 429 + " <th>2000-01-04</th>\n", 430 + " <td>0.140441</td>\n", 431 + " <td>2.540125</td>\n", 432 + " <td>-0.944073</td>\n", 433 + " <td>-2.817273</td>\n", 434 + " </tr>\n", 435 + " <tr>\n", 436 + " <th>2000-01-05</th>\n", 437 + " <td>1.970367</td>\n", 438 + " <td>3.154948</td>\n", 439 + " <td>-1.961204</td>\n", 440 + " <td>-2.834195</td>\n", 441 + " </tr>\n", 442 + " </tbody>\n", 443 + "</table>\n", 444 + "</div>" 445 + ], 446 + "text/plain": [ 447 + " A B C D\n", 448 + "2000-01-01 -1.252297 0.309457 0.564062 -0.317236\n", 449 + "2000-01-02 -2.284369 1.329985 -0.889674 0.140528\n", 450 + "2000-01-03 -1.571075 3.708584 0.078306 0.275802\n", 451 + "2000-01-04 0.140441 2.540125 -0.944073 -2.817273\n", 452 + "2000-01-05 1.970367 3.154948 -1.961204 -2.834195" 453 + ] 454 + }, 455 + "execution_count": 10, 456 + "metadata": {}, 457 + "output_type": "execute_result" 458 + } 459 + ], 262 460 "source": [ 263 461 "df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=['A', 'B', 'C', 'D'])\n", 264 462 "df = df.cumsum()\n", ··· 267 465 }, 268 466 { 269 467 "cell_type": "code", 270 - "execution_count": null, 468 + "execution_count": 11, 271 469 "metadata": { 272 470 "slideshow": { 273 471 "slide_type": "slide" 274 472 } 275 473 }, 276 - "outputs": [], 474 + "outputs": [ 475 + { 476 + "data": { 477 + "text/plain": [ 478 + "<Figure size 432x288 with 0 Axes>" 479 + ] 480 + }, 481 + "execution_count": 11, 482 + "metadata": {}, 483 + "output_type": "execute_result" 484 + }, 485 + { 486 + "data": { 487 + "text/plain": [ 488 + "<Figure size 432x288 with 0 Axes>" 489 + ] 490 + }, 491 + "metadata": {}, 492 + "output_type": "display_data" 493 + } 494 + ], 277 495 "source": [ 278 496 "plt.figure()" 279 497 ] 280 498 }, 281 499 { 282 500 "cell_type": "code", 283 - "execution_count": null, 501 + "execution_count": 12, 284 502 "metadata": { 285 503 "slideshow": { 286 504 "slide_type": "slide" 287 505 } 288 506 }, 289 - "outputs": [], 507 + "outputs": [ 508 + { 509 + "data": { 510 + "text/plain": [ 511 + "<matplotlib.axes._subplots.AxesSubplot at 0x11f049a20>" 512 + ] 513 + }, 514 + "execution_count": 12, 515 + "metadata": {}, 516 + "output_type": "execute_result" 517 + }, 518 + { 519 + "data": { 520 + "image/png": "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\n", 521 + "text/plain": [ 522 + "<Figure size 432x288 with 1 Axes>" 523 + ] 524 + }, 525 + "metadata": { 526 + "needs_background": "light" 527 + }, 528 + "output_type": "display_data" 529 + } 530 + ], 290 531 "source": [ 291 532 "df.plot()" 292 533 ]
+67 -25
exercises/Ejercicios y Soluciones.ipynb
··· 100 100 }, 101 101 { 102 102 "cell_type": "code", 103 - "execution_count": 1, 103 + "execution_count": 2, 104 104 "metadata": { 105 105 "slideshow": { 106 106 "slide_type": "slide" ··· 113 113 "[0, 9]" 114 114 ] 115 115 }, 116 - "execution_count": 1, 116 + "execution_count": 2, 117 117 "metadata": {}, 118 118 "output_type": "execute_result" 119 119 } 120 120 ], 121 121 "source": [ 122 122 "l = list(range(10))\n", 123 - "[l[0], l[len(l) - 1]]" 123 + "[l[0], l[-1]]" 124 124 ] 125 125 }, 126 126 { ··· 138 138 }, 139 139 { 140 140 "cell_type": "code", 141 - "execution_count": null, 141 + "execution_count": 3, 142 142 "metadata": { 143 143 "slideshow": { 144 144 "slide_type": "slide" 145 145 } 146 146 }, 147 - "outputs": [], 147 + "outputs": [ 148 + { 149 + "name": "stdout", 150 + "output_type": "stream", 151 + "text": [ 152 + "Introduce una palabra: abba\n", 153 + "Es un palíndromo\n" 154 + ] 155 + } 156 + ], 148 157 "source": [ 149 - "word = input(\"Introduce una palabra: \")\n", 150 - "reverse = list(word)\n", 151 - "reverse.reverse()\n", 152 - "if list(word) == reverse:\n", 158 + "word = list(input(\"Introduce una palabra: \"))\n", 159 + "potato = reversed(word)\n", 160 + "if word == potato:\n", 153 161 " print(\"Es un palíndromo\")\n", 154 162 "else:\n", 155 163 " print(\"No es un palíndromo\")" ··· 206 214 }, 207 215 { 208 216 "cell_type": "code", 209 - "execution_count": null, 217 + "execution_count": 1, 210 218 "metadata": { 211 219 "slideshow": { 212 220 "slide_type": "slide" 213 221 } 214 222 }, 215 - "outputs": [], 223 + "outputs": [ 224 + { 225 + "data": { 226 + "text/plain": [ 227 + "42" 228 + ] 229 + }, 230 + "execution_count": 1, 231 + "metadata": {}, 232 + "output_type": "execute_result" 233 + } 234 + ], 216 235 "source": [ 217 236 "def maximum(a, b, c):\n", 218 237 " data = [a, b, c]\n", ··· 268 287 }, 269 288 { 270 289 "cell_type": "code", 271 - "execution_count": null, 290 + "execution_count": 2, 272 291 "metadata": { 273 292 "slideshow": { 274 293 "slide_type": "slide" 275 294 } 276 295 }, 277 - "outputs": [], 296 + "outputs": [ 297 + { 298 + "name": "stdout", 299 + "output_type": "stream", 300 + "text": [ 301 + "[3]\n", 302 + "[12, 11]\n", 303 + "[10, 3, 12, 17]\n" 304 + ] 305 + } 306 + ], 278 307 "source": [ 279 308 "import random\n", 280 309 "\n", ··· 404 433 }, 405 434 { 406 435 "cell_type": "code", 407 - "execution_count": null, 436 + "execution_count": 7, 408 437 "metadata": { 409 438 "slideshow": { 410 439 "slide_type": "slide" 411 440 } 412 441 }, 413 - "outputs": [], 442 + "outputs": [ 443 + { 444 + "name": "stdout", 445 + "output_type": "stream", 446 + "text": [ 447 + "¡Estoy acariciando a Pebe!\n", 448 + "¡Pebe está ronroneando!\n" 449 + ] 450 + }, 451 + { 452 + "ename": "AttributeError", 453 + "evalue": "'Cat' object has no attribute 'human_age'", 454 + "output_type": "error", 455 + "traceback": [ 456 + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 457 + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", 458 + "\u001b[0;32m<ipython-input-7-21430a9f4688>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m 33\u001b[0m \u001b[0mpebe\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpet\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 34\u001b[0m \u001b[0mpebe\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpurr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 35\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Edad humana de {pebe.name}: {pebe.human_age()}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 36\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 37\u001b[0m \u001b[0mjake\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpet\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", 459 + "\u001b[0;31mAttributeError\u001b[0m: 'Cat' object has no attribute 'human_age'" 460 + ] 461 + } 462 + ], 414 463 "source": [ 415 464 "class Pet:\n", 416 465 " def __init__(self, name, age):\n", ··· 420 469 " def pet(self):\n", 421 470 " print(f\"¡Estoy acariciando a {self.name}!\")\n", 422 471 "\n", 423 - " def human_age(self):\n", 424 - " raise NotImplementedError\n", 425 472 " \n", 426 473 "class Dog(Pet):\n", 427 474 " SMALL, MEDIUM, BIG = \"small\", \"medium\", \"big\"\n", ··· 440 487 " \n", 441 488 " def purr(self):\n", 442 489 " print(f\"¡{self.name} está ronroneando!\")\n", 443 - " \n", 444 - " def human_age(self):\n", 445 - " if self.age == 1:\n", 446 - " return 15\n", 447 - " elif self.\n", 448 - " return rate[self.kind] * self.age\n", 490 + "\n", 449 491 "\n", 450 492 "\n", 451 493 "pebe = Cat(\"Pebe\", 6)\n", ··· 453 495 "\n", 454 496 "pebe.pet()\n", 455 497 "pebe.purr()\n", 456 - "#print(pebe.human_age())\n", 498 + "print(f\"Edad humana de {pebe.name}: {pebe.human_age()}\")\n", 457 499 "\n", 458 500 "jake.pet()\n", 459 501 "jake.walk()\n", 460 - "print(jake.human_age())" 502 + "print(f\"Edad humana de {jake.name}: {jake.human_age()}\")" 461 503 ] 462 504 }, 463 505 {