|
751 | 751 | ]
|
752 | 752 | },
|
753 | 753 | {
|
754 |
| - "cell_type": "raw", |
| 754 | + "cell_type": "markdown", |
755 | 755 | "metadata": {
|
756 | 756 | "deletable": true,
|
757 | 757 | "editable": true
|
758 | 758 | },
|
759 | 759 | "source": [
|
| 760 | + "```python\n", |
760 | 761 | "df = load_data()\n",
|
761 | 762 | "df2 = df[df['col2'] < 0]\n",
|
762 | 763 | "df2['col1_demeaned'] = df2['col1'] - df2['col1'].mean()\n",
|
763 |
| - "result = df2.groupby('key').col1_demeaned.std()" |
| 764 | + "result = df2.groupby('key').col1_demeaned.std()\n", |
| 765 | + "```" |
764 | 766 | ]
|
765 | 767 | },
|
766 | 768 | {
|
767 |
| - "cell_type": "raw", |
| 769 | + "cell_type": "markdown", |
768 | 770 | "metadata": {
|
769 | 771 | "deletable": true,
|
770 | 772 | "editable": true
|
771 | 773 | },
|
772 | 774 | "source": [
|
| 775 | + "```python\n", |
773 | 776 | "# Usual non-functional way\n",
|
774 | 777 | "df2 = df.copy()\n",
|
775 | 778 | "df2['k'] = v\n",
|
776 | 779 | "\n",
|
777 | 780 | "# Functional assign way\n",
|
778 |
| - "df2 = df.assign(k=v)" |
| 781 | + "df2 = df.assign(k=v)\n", |
| 782 | + "```" |
779 | 783 | ]
|
780 | 784 | },
|
781 | 785 | {
|
782 |
| - "cell_type": "raw", |
| 786 | + "cell_type": "markdown", |
783 | 787 | "metadata": {
|
784 | 788 | "deletable": true,
|
785 | 789 | "editable": true
|
786 | 790 | },
|
787 | 791 | "source": [
|
| 792 | + "```python\n", |
788 | 793 | "result = (df2.assign(col1_demeaned=df2.col1 - df2.col2.mean())\n",
|
789 | 794 | " .groupby('key')\n",
|
790 |
| - " .col1_demeaned.std())" |
| 795 | + " .col1_demeaned.std())\n", |
| 796 | + "```" |
791 | 797 | ]
|
792 | 798 | },
|
793 | 799 | {
|
794 |
| - "cell_type": "raw", |
| 800 | + "cell_type": "markdown", |
795 | 801 | "metadata": {
|
796 | 802 | "deletable": true,
|
797 | 803 | "editable": true
|
798 | 804 | },
|
799 | 805 | "source": [
|
| 806 | + "```python\n", |
800 | 807 | "df = load_data()\n",
|
801 |
| - "df2 = df[df['col2'] < 0]" |
| 808 | + "df2 = df[df['col2'] < 0]\n", |
| 809 | + "```" |
802 | 810 | ]
|
803 | 811 | },
|
804 | 812 | {
|
805 |
| - "cell_type": "raw", |
| 813 | + "cell_type": "markdown", |
806 | 814 | "metadata": {
|
807 | 815 | "deletable": true,
|
808 | 816 | "editable": true
|
809 | 817 | },
|
810 | 818 | "source": [
|
| 819 | + "```python\n", |
811 | 820 | "df = (load_data()\n",
|
812 |
| - " [lambda x: x['col2'] < 0])" |
| 821 | + " [lambda x: x['col2'] < 0])\n", |
| 822 | + "```" |
813 | 823 | ]
|
814 | 824 | },
|
815 | 825 | {
|
816 |
| - "cell_type": "raw", |
| 826 | + "cell_type": "markdown", |
817 | 827 | "metadata": {
|
818 | 828 | "deletable": true,
|
819 | 829 | "editable": true
|
820 | 830 | },
|
821 | 831 | "source": [
|
| 832 | + "```python\n", |
822 | 833 | "result = (load_data()\n",
|
823 | 834 | " [lambda x: x.col2 < 0]\n",
|
824 | 835 | " .assign(col1_demeaned=lambda x: x.col1 - x.col1.mean())\n",
|
825 | 836 | " .groupby('key')\n",
|
826 |
| - " .col1_demeaned.std())" |
| 837 | + " .col1_demeaned.std())\n", |
| 838 | + "```" |
827 | 839 | ]
|
828 | 840 | },
|
829 | 841 | {
|
|
837 | 849 | ]
|
838 | 850 | },
|
839 | 851 | {
|
840 |
| - "cell_type": "raw", |
| 852 | + "cell_type": "markdown", |
841 | 853 | "metadata": {
|
842 | 854 | "deletable": true,
|
843 | 855 | "editable": true
|
844 | 856 | },
|
845 | 857 | "source": [
|
| 858 | + "```python\n", |
846 | 859 | "a = f(df, arg1=v1)\n",
|
847 | 860 | "b = g(a, v2, arg3=v3)\n",
|
848 |
| - "c = h(b, arg4=v4)" |
| 861 | + "c = h(b, arg4=v4)\n", |
| 862 | + "```" |
849 | 863 | ]
|
850 | 864 | },
|
851 | 865 | {
|
852 |
| - "cell_type": "raw", |
| 866 | + "cell_type": "markdown", |
853 | 867 | "metadata": {
|
854 | 868 | "deletable": true,
|
855 | 869 | "editable": true
|
856 | 870 | },
|
857 | 871 | "source": [
|
| 872 | + "```python\n", |
858 | 873 | "result = (df.pipe(f, arg1=v1)\n",
|
859 | 874 | " .pipe(g, v2, arg3=v3)\n",
|
860 |
| - " .pipe(h, arg4=v4))" |
| 875 | + " .pipe(h, arg4=v4))\n", |
| 876 | + "```" |
861 | 877 | ]
|
862 | 878 | },
|
863 | 879 | {
|
864 |
| - "cell_type": "raw", |
| 880 | + "cell_type": "markdown", |
865 | 881 | "metadata": {
|
866 | 882 | "deletable": true,
|
867 | 883 | "editable": true
|
868 | 884 | },
|
869 | 885 | "source": [
|
| 886 | + "```python\n", |
870 | 887 | "g = df.groupby(['key1', 'key2'])\n",
|
871 |
| - "df['col1'] = df['col1'] - g.transform('mean')" |
| 888 | + "df['col1'] = df['col1'] - g.transform('mean')\n", |
| 889 | + "```" |
872 | 890 | ]
|
873 | 891 | },
|
874 | 892 | {
|
875 |
| - "cell_type": "raw", |
| 893 | + "cell_type": "markdown", |
876 | 894 | "metadata": {
|
877 | 895 | "deletable": true,
|
878 | 896 | "editable": true
|
879 | 897 | },
|
880 | 898 | "source": [
|
| 899 | + "```python\n", |
881 | 900 | "def group_demean(df, by, cols):\n",
|
882 | 901 | " result = df.copy()\n",
|
883 | 902 | " g = df.groupby(by)\n",
|
884 | 903 | " for c in cols:\n",
|
885 | 904 | " result[c] = df[c] - g[c].transform('mean')\n",
|
886 |
| - " return result" |
| 905 | + " return result\n", |
| 906 | + "```" |
887 | 907 | ]
|
888 | 908 | },
|
889 | 909 | {
|
890 |
| - "cell_type": "raw", |
| 910 | + "cell_type": "markdown", |
891 | 911 | "metadata": {
|
892 | 912 | "deletable": true,
|
893 | 913 | "editable": true
|
894 | 914 | },
|
895 | 915 | "source": [
|
| 916 | + "```python\n", |
896 | 917 | "result = (df[df.col1 < 0]\n",
|
897 |
| - " .pipe(group_demean, ['key1', 'key2'], ['col1']))" |
| 918 | + " .pipe(group_demean, ['key1', 'key2'], ['col1']))\n", |
| 919 | + "```" |
898 | 920 | ]
|
899 | 921 | },
|
900 | 922 | {
|
901 | 923 | "cell_type": "code",
|
902 | 924 | "execution_count": null,
|
903 | 925 | "metadata": {
|
904 |
| - "collapsed": false, |
| 926 | + "collapsed": true, |
905 | 927 | "deletable": true,
|
906 | 928 | "editable": true
|
907 | 929 | },
|
|
937 | 959 | "name": "python",
|
938 | 960 | "nbconvert_exporter": "python",
|
939 | 961 | "pygments_lexer": "ipython3",
|
940 |
| - "version": "3.6.0" |
| 962 | + "version": "3.5.1" |
941 | 963 | }
|
942 | 964 | },
|
943 | 965 | "nbformat": 4,
|
|
0 commit comments