|
1 | 1 | {
|
2 | 2 | "cells": [
|
3 | 3 | {
|
4 |
| - "cell_type": "markdown", |
5 |
| - "metadata": {}, |
| 4 | + "cell_type": "code", |
| 5 | + "execution_count": null, |
| 6 | + "metadata": { |
| 7 | + "collapsed": true |
| 8 | + }, |
| 9 | + "outputs": [], |
6 | 10 | "source": [
|
7 | 11 | "*New in version 0.17.1*\n",
|
8 | 12 | "\n",
|
|
31 | 35 | "- [Extensibility](#Extensibility)"
|
32 | 36 | ]
|
33 | 37 | },
|
| 38 | + { |
| 39 | + "cell_type": "code", |
| 40 | + "execution_count": null, |
| 41 | + "metadata": { |
| 42 | + "collapsed": true |
| 43 | + }, |
| 44 | + "outputs": [], |
| 45 | + "source": [] |
| 46 | + }, |
| 47 | + { |
| 48 | + "cell_type": "code", |
| 49 | + "execution_count": null, |
| 50 | + "metadata": { |
| 51 | + "collapsed": true |
| 52 | + }, |
| 53 | + "outputs": [], |
| 54 | + "source": [] |
| 55 | + }, |
34 | 56 | {
|
35 | 57 | "cell_type": "markdown",
|
36 | 58 | "metadata": {},
|
|
518 | 540 | "cell_type": "markdown",
|
519 | 541 | "metadata": {},
|
520 | 542 | "source": [
|
521 |
| - "You can include \"bar charts\" in your DataFrame." |
| 543 | + "There's also `.highlight_min` and `.highlight_max`." |
522 | 544 | ]
|
523 | 545 | },
|
524 | 546 | {
|
|
529 | 551 | },
|
530 | 552 | "outputs": [],
|
531 | 553 | "source": [
|
532 |
| - "df.style.bar(subset=['A', 'B'], color='#d65f5f')" |
| 554 | + "df.style.highlight_max(axis=0)" |
| 555 | + ] |
| 556 | + }, |
| 557 | + { |
| 558 | + "cell_type": "code", |
| 559 | + "execution_count": null, |
| 560 | + "metadata": { |
| 561 | + "collapsed": false |
| 562 | + }, |
| 563 | + "outputs": [], |
| 564 | + "source": [ |
| 565 | + "df.style.highlight_min(axis=0)" |
533 | 566 | ]
|
534 | 567 | },
|
535 | 568 | {
|
536 | 569 | "cell_type": "markdown",
|
537 | 570 | "metadata": {},
|
538 | 571 | "source": [
|
539 |
| - "There's also `.highlight_min` and `.highlight_max`." |
| 572 | + "Use `Styler.set_properties` when the style doesn't actually depend on the values." |
540 | 573 | ]
|
541 | 574 | },
|
542 | 575 | {
|
|
547 | 580 | },
|
548 | 581 | "outputs": [],
|
549 | 582 | "source": [
|
550 |
| - "df.style.highlight_max(axis=0)" |
| 583 | + "df.style.set_properties(**{'background-color': 'black',\n", |
| 584 | + " 'color': 'lawngreen',\n", |
| 585 | + " 'border-color': 'white'})" |
| 586 | + ] |
| 587 | + }, |
| 588 | + { |
| 589 | + "cell_type": "markdown", |
| 590 | + "metadata": {}, |
| 591 | + "source": [ |
| 592 | + "### Bar charts" |
| 593 | + ] |
| 594 | + }, |
| 595 | + { |
| 596 | + "cell_type": "markdown", |
| 597 | + "metadata": {}, |
| 598 | + "source": [ |
| 599 | + "You can include \"bar charts\" in your DataFrame." |
551 | 600 | ]
|
552 | 601 | },
|
553 | 602 | {
|
|
558 | 607 | },
|
559 | 608 | "outputs": [],
|
560 | 609 | "source": [
|
561 |
| - "df.style.highlight_min(axis=0)" |
| 610 | + "df.style.bar(subset=['A', 'B'], color='#d65f5f')" |
562 | 611 | ]
|
563 | 612 | },
|
564 | 613 | {
|
565 | 614 | "cell_type": "markdown",
|
566 | 615 | "metadata": {},
|
567 | 616 | "source": [
|
568 |
| - "Use `Styler.set_properties` when the style doesn't actually depend on the values." |
| 617 | + "New in version 0.19.2 is the ability to customize further the bar chart: You can now have the `df.style.bar` be centered on zero or midpoint value (in addition to the already existing way of having the min value at the left side of the cell), and you can pass a list of `[color_negative, color_positive]`.\n", |
| 618 | + "\n", |
| 619 | + "The following example shows the behavior of the new align options:" |
569 | 620 | ]
|
570 | 621 | },
|
571 | 622 | {
|
|
576 | 627 | },
|
577 | 628 | "outputs": [],
|
578 | 629 | "source": [
|
579 |
| - "df.style.set_properties(**{'background-color': 'black',\n", |
580 |
| - " 'color': 'lawngreen',\n", |
581 |
| - " 'border-color': 'white'})" |
| 630 | + "import pandas as pd\n", |
| 631 | + "from IPython.display import HTML\n", |
| 632 | + "\n", |
| 633 | + "# Test series\n", |
| 634 | + "test1 = pd.Series([-100,-60,-30,-20], name='All Negative')\n", |
| 635 | + "test2 = pd.Series([10,20,50,100], name='All Positive')\n", |
| 636 | + "test3 = pd.Series([-10,-5,0,90], name='Both Pos and Neg')\n", |
| 637 | + "\n", |
| 638 | + "head = \"\"\"\n", |
| 639 | + "<table>\n", |
| 640 | + " <thead>\n", |
| 641 | + " <th>Align</th>\n", |
| 642 | + " <th>All Negative</th>\n", |
| 643 | + " <th>All Positive</th>\n", |
| 644 | + " <th>Both Neg and Pos</th>\n", |
| 645 | + " </thead>\n", |
| 646 | + " </tbody>\n", |
| 647 | + "\n", |
| 648 | + "\"\"\"\n", |
| 649 | + "\n", |
| 650 | + "aligns = ['left','zero','mid']\n", |
| 651 | + "for align in aligns:\n", |
| 652 | + " row = \"<tr><th>{}</th>\".format(align)\n", |
| 653 | + " for serie in [test1,test2,test3]:\n", |
| 654 | + " s = serie.copy()\n", |
| 655 | + " s.name=''\n", |
| 656 | + " row += \"<td>{}</td>\".format(s.to_frame().style.bar(align=align, \n", |
| 657 | + " color=['#d65f5f', '#5fba7d'], \n", |
| 658 | + " width=100).render()) #testn['width']\n", |
| 659 | + " row += '</tr>'\n", |
| 660 | + " head += row\n", |
| 661 | + " \n", |
| 662 | + "head+= \"\"\"\n", |
| 663 | + "</tbody>\n", |
| 664 | + "</table>\"\"\"\n", |
| 665 | + " \n", |
| 666 | + "\n", |
| 667 | + "HTML(head)" |
582 | 668 | ]
|
583 | 669 | },
|
584 | 670 | {
|
|
961 | 1047 | "name": "python",
|
962 | 1048 | "nbconvert_exporter": "python",
|
963 | 1049 | "pygments_lexer": "ipython3",
|
964 |
| - "version": "3.5.1" |
| 1050 | + "version": "3.5.2" |
965 | 1051 | }
|
966 | 1052 | },
|
967 | 1053 | "nbformat": 4,
|
|
0 commit comments