From 174f0d9506e4933bfa923d908427c55a1bc0df6f Mon Sep 17 00:00:00 2001 From: Matthew Roeschke Date: Tue, 22 Feb 2022 21:50:18 -0800 Subject: [PATCH] DOC: Improve options.rst --- doc/source/_static/option_unicode01.png | Bin 10736 -> 0 bytes doc/source/_static/option_unicode02.png | Bin 7878 -> 0 bytes doc/source/_static/option_unicode03.png | Bin 5342 -> 0 bytes doc/source/_static/option_unicode04.png | Bin 5481 -> 0 bytes doc/source/user_guide/options.rst | 327 ++++-------------------- doc/source/whatsnew/v0.17.0.rst | 8 +- pandas/_config/config.py | 8 + 7 files changed, 59 insertions(+), 284 deletions(-) delete mode 100644 doc/source/_static/option_unicode01.png delete mode 100644 doc/source/_static/option_unicode02.png delete mode 100644 doc/source/_static/option_unicode03.png delete mode 100644 doc/source/_static/option_unicode04.png diff --git a/doc/source/_static/option_unicode01.png b/doc/source/_static/option_unicode01.png deleted file mode 100644 index d7168de126c5bf4526366c26ba0300f37c902a3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10736 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 Y$DcqLuwP)21*J>r6i`yS8jUXnrDG+9MY@p& z>Ab*q?{nWj-uFE3nKSd7-)N=QIM00008)xb)x0068%w`&y;_U+p`?n3kS zgXQ{4RRK``lkRqh;)|M+ysj74c6uO`T)!6Ol*l=({E0yCeT1=l1m&fg{>AxZOx8EO zx)8mSrE<$}SGuL=8Rip%&rG(-x%E2AZLWeF?Y`MvY3tTJZ%lgDY=TQ!oTWf16jVu* z49JcTu1xW?ews2p@X{QlCgi+Iy!tc6bx{07GC@#~BOxLLX$yQv0>G97fa)o+hznF8 zda~mse*RMG8Vt!4i4!@FE$6@orxMc@sO0wTrVeuxwP2&kz&(iRw2Q3|)ChWAS$h#t z(Ym-Bic{zdH4JaQ^iQcRQ;v?#a?&xeT9^rc@Va-8pU0A=C&O>`#j>H zZ!<0)A2R7nLTvcLE<3j7!}~P5*AfaiBUAKA&8`1(wl&W-okZZ^oqmOBnOFrI&B=Pn zxpLGAbw)qyJem1v%-b1S+E=`|WnG>c_9R^O(JpgYz`?htbczmP0FyiGh;R zD;jDK_k&ms>0u)WSB>R$(8a{Eghb%1n zOa+VI9eW&qEwFA62~Xnlb(m5Rj{l=tqi-~1(L1N9`RU_F6yD<1hdME#qtGI+QJhdD zRqe(Q_`^2n)!MA5=U<||t&kW{PO9V8?x&@qjV@cPEq`KG*S#MXWSD&I8CRPl;q7=1 z@uu)7M)-mK8r})X`n-C3`@@^7rY_HQfz@ze+^6j8YxGU&%ciS>xkKdF*aCgcxUeg1 z#Xp|29}2jqea|kN1umJ38siYI9mJV2!c$kBS)!Sn=PKsaqEBIN1IMS|$j%-(NM0T( zSZ;YtE)W{gXw>BLT{*&TxX4F#17B3hu4%C`xAM95|z!2#^x zTA8%C%yuJ!h=Z=L4bG_LH`KvuSl#{;n^9$2}dI*H(RAKTZHT-FX z$8f@H+5o$C8=sBx)FN)Y(C0CqKk=)mXB%ApA}r125@QIK>Q(;lSyur7hLx@(w$Y zD2@FhIKFFq|DN#U&+IBMXEF;uvs!E;ma1T^vnW+>N(jDc2Gzyz0!vsi6N63#vMb`T z7puz%0ek%H5h3#WKp$H&W2R~R?N+4(aX!m?N$;2Dzt;*rHOL*Ycdw~zOHaqYHKp(@ z#TBTNGDuFSX!2WJOtkPv^hl|o&lfGBJ>ig7+v;TSDvvoKS?J@|nA9M=3)9PBva(>x zzPK;G4}cZR>Vk|w(#GcNC)8=<`lEg6AodY3qjAyl?MYr$8MerDR*mDsW} zYp-Wyjt$p`e%70QPa5IeI z@FYRQ`T^@+s4DZg1^apKFsoutt0PiFndRS(EDpaX|L_;ap6049DPAggF6BgNhjpk( zQ4zfA7CO3Ox=~1*pH_}M0vfmG=83(U>)tGFwQD}OFr(U+JNn^5_-i{d)iKN4>A|j?zK-j4sj^*! zp~im0uU#$koDgpH(^v1_A5?w7JK2#o{2r+s-qaSj#o#F2Ba@n2PJQ^Jf%bW6UwLD- zbyviGvR%Z<5)}HKDp^)-vPslRT4R!2r~FO-Bf7=6ofB;3wXH9fg3ZM)ktqF=1X8Du zNHrxmrWhfseHv1rP)#rpxeP9S*)vtxJG1AJ!{zx`wOeIk!~L|~Nw0wl(qXdQHv@mN z?+xC1Z&Iy%pwdWYCQM!Mnf3_zu$fM6Glbv1DdV!e6qx1^K-vtKEpq0b?#6=EomFC> ze}%~hNQ(T-Qm$wH{3iV7M?0z~7^#uZP@8X zLXLeWlrrPwm|tk!bnp1se9Yw=#e(Gia0QW(YQAcSE$oJ5DWi9oFvs2IF@_~U# zLLO0cuKeP8`-Oan>1+qa_H84t*YWxkd@TJkJc?G7mu*Nt{}r=d1;5)qrjwvwEUw@t z2&LAR`X1vwn8t-jf3GtiK^v-tn4}ts9kG=U>z~d%d`R0M`ga=HDtN(nhOi`<5^;nS|p>IKxFzoEMZf_@qYV*}l#PxX zF4||*TsG*51BZ?sfK4D7&weLT3mm1Ru&&>3j6)?{2}6&P>OB)^bX1d4c6;2X+S_Fy zO)66L{r^?cavR(WUX#I|C|}FD71J)VWZaJouvBO|DI+(OXetFwLC)sC@ah4t&Ef{| zgqMDDv;T1FCEqsX<@?}dQ|+mfj@E`3>B7qTj+yA$2-X_Gy4R)czs5aRQ%&dJe0XQ~ z)EI;)oY0)=_L$Uz#@Ih4*Kzzsz1v;kYW|~cROZc07M2Wbky zUCV#nRFpc=s)Z?@0{d!|c4bUS;7)U{#Dx}~F4kJP4DD%e&f5}8#58Ew>gvo;t_b_3 za7HGt%M(4;x$NS#mh10~j*T2G>~GIRD|he2D%e2CDvLcKb{KY{^_mVn6fgOr#!G45 z>zrT_gJd+jpGDkj>oRts@V3$Tk6IO@8$4He?(ih|)Pc_vpxOIBgB_Zvi9Gb5WZ~72 zgQMj-AC>n5e6Q`{Wa%3PCDd~WpcBENt++`9bIG~|BIWO|U zp$@S-yyq`^mJ?#2;APQDygT5}$Uyh=2GAG0Ptv+9lFBjI8OEq^IZ%P$8;3dAM#X&+ zk6>4NOt!qsa3R>LlR{q2Tkzv>+|YkPbScD|v9A&027l)Yr10XnfNu~5e&sCgZ66(- z#MSbY!xC6bMi>3-uXf?{(uAJ}6SKseR4>j^{BO;VtS!>{!9iwb)x|^kh+6|1#5wJf z&Lz_`3o%rH`x(L+$i15aAY}pog8(GX)Yw1EWI<1%t{YMzI|_7*z`HS{COyb?w<+)v zcFvUSta`oP_$|FH1e0!#QJpe3x?B)JB*gHas z%~&dDW0+%G(kdwhCP@81&upRrfph4*qXN;GtPW*drCZYgEGF}aAa>9G6k)AW)>`{F zj2UsCydfznqO_8)zmeZ8IUdWCy@KjemDK0aDmg3 zo)fbenHOB$xL;7XcR%M-SmtLNXt|mm6g5ie$T2^@QxNnJRL|+T3E}I26P`S#5^>*1 zTT+(jCLE~to%k9_|CfS5xhEv?1!tyMG`GPmne&EE=RZxW>zk!d2SU-iZJdxBnDg)8 zi=!knqgv7^g-K!ev*nbV$Nsm?Vt^#|^-(c0>Or>TJt!VfJ&PwbvWyS(`*bB_|N0sS zCroUFHHzl8)48mmCL(-vkxAKd6VTAXlcgAY$4syYne*GH-zfjN${msa+m2!ExqGH^&<__7=FsMG~-N^8lA6~(C`S9~8pkZnf{$1vtn|&aYr(_0~!F^7N zr3UePF6~}%_F1&~x_KO$Gu|r@z>jT6?E|Nk>n-z1MUGe&_y-h!868We%cT8w;tYxR*2bedu4a6~971p( zO+}Jhx&-~v5EJ;KnY#%yBZJioE$Ho4=?6)E3_wf@D<{{P;a7siHuyzKeey0jxM z@o^<;ukLI%mz=LRZf_Ej@AofvuGx6#ITqnt#b3AJv+H~?nCOn<7!;%o z4t+QoE}Ix3;T%GUn}U-A2!vIco*D_CNck&l7x8EIo`%9(tckXSLg@4*g74 zgJCLPa{ynQ%)9nUnIzttbogt168h!ax!LBwd}qd5fa?DGoG&rPiZXL-=_ndxaMPKj zu|nn6To|`sxJEC7(`d*Z@Yfp7B8Ov09rWr6-cdL0cYT5 zk>K2i8!ixjGQ;c4HHfQcXk?+a$N?~`ZlyyQQjgz7cCd%~dVtwqI*_Fu#@KW zYSBc8_x=E|CP;&(wUV!@U>|)iin)l8S#02@%TqUq_ zt+T8ISqKT6DuL&~m$Z0Q9WtVpl9mYnq-^SYC)7cpIl&_Il!UYHlC)2eekz`vp1$wt zX)IrC1pBc#=@cnstNKyPeGPS#N5SSC2=xCHR@#dkZ8gZKLcWkgKBkx1e7Xa`k5~M^ z0GRq_h-k3Xi};wA)uH$uWEW7xt-!HinCZQMC$stIrhVBbj)eu0h1uo!d^<0IAIa}Y zS^ycqL`_bXUgj^J3G~-+)@HsEx0?DU@?!{b9>LB+X^34#U!|19taV#PZ!?wyt6v{M zP(f-dw4IR~RCr$#=p%wwTBp7*iSQ=}|K?CyQRc21%*R9@Ub)9|3ZD@Rd$+8_4?#mxr$hPdpd Vjx5sX1O&K!)RZ-p$`#B*{s-&WG*SQn diff --git a/doc/source/_static/option_unicode04.png b/doc/source/_static/option_unicode04.png deleted file mode 100644 index 1b839a44422b3e0d667600501b1af16bd863faed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5481 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 for more information. +.. note:: + + Developers can check out `pandas/core/config_init.py `_ for more information. All of the functions above accept a regexp pattern (``re.search`` style) as an argument, -and so passing in a substring will work - as long as it is unambiguous: +to match an unambiguous substring: .. ipython:: python @@ -51,17 +53,13 @@ The following will **not work** because it matches multiple option names, e.g. .. ipython:: python :okexcept: - try: - pd.get_option("max") - except KeyError as e: - print(e) + pd.get_option("max") -**Note:** Using this form of shorthand may cause your code to break if new options with similar names are added in future versions. +.. warning:: + Using this form of shorthand may cause your code to break if new options with similar names are added in future versions. -You can get a list of available options and their descriptions with ``describe_option``. When called -with no argument ``describe_option`` will print out the descriptions for all available options. .. ipython:: python :suppress: @@ -69,6 +67,18 @@ with no argument ``describe_option`` will print out the descriptions for all ava pd.reset_option("all") +.. _options.available: + +Available options +----------------- + +You can get a list of available options and their descriptions with :func:`~pandas.describe_option`. When called +with no argument :func:`~pandas.describe_option` will print out the descriptions for all available options. + +.. ipython:: python + + pd.describe_option() + Getting and setting options --------------------------- @@ -82,9 +92,11 @@ are available from the pandas namespace. To change an option, call pd.set_option("mode.sim_interactive", True) pd.get_option("mode.sim_interactive") -**Note:** The option 'mode.sim_interactive' is mostly used for debugging purposes. +.. note:: + + The option ``'mode.sim_interactive'`` is mostly used for debugging purposes. -All options also have a default value, and you can use ``reset_option`` to do just that: +You can use :func:`~pandas.reset_option` to revert to a setting's default value .. ipython:: python :suppress: @@ -108,7 +120,7 @@ It's also possible to reset multiple options at once (using a regex): pd.reset_option("^display") -``option_context`` context manager has been exposed through +:func:`~pandas.option_context` context manager has been exposed through the top-level API, allowing you to execute code with given option values. Option values are restored automatically when you exit the ``with`` block: @@ -124,7 +136,9 @@ are restored automatically when you exit the ``with`` block: Setting startup options in Python/IPython environment ----------------------------------------------------- -Using startup scripts for the Python/IPython environment to import pandas and set options makes working with pandas more efficient. To do this, create a .py or .ipy script in the startup directory of the desired profile. An example where the startup folder is in a default IPython profile can be found at: +Using startup scripts for the Python/IPython environment to import pandas and set options makes working with pandas more efficient. +To do this, create a ``.py`` or ``.ipy`` script in the startup directory of the desired profile. +An example where the startup folder is in a default IPython profile can be found at: .. code-block:: none @@ -144,10 +158,10 @@ More information can be found in the `IPython documentation Frequently used options ----------------------- -The following is a walk-through of the more frequently used display options. +The following is a demonstrates the more frequently used display options. ``display.max_rows`` and ``display.max_columns`` sets the maximum number -of rows and columns displayed when a frame is pretty-printed. Truncated +of rows and columns displayed when a frame is pretty-printed. Truncated lines are replaced by an ellipsis. .. ipython:: python @@ -175,8 +189,8 @@ determines how many rows are shown in the truncated repr. pd.reset_option("display.max_rows") pd.reset_option("display.min_rows") -``display.expand_frame_repr`` allows for the representation of -dataframes to stretch across pages, wrapped over the full column vs row-wise. +``display.expand_frame_repr`` allows for the representation of a +:class:`DataFrame` to stretch across pages, wrapped over the all the columns. .. ipython:: python @@ -187,8 +201,8 @@ dataframes to stretch across pages, wrapped over the full column vs row-wise. df pd.reset_option("expand_frame_repr") -``display.large_repr`` lets you select whether to display dataframes that exceed -``max_columns`` or ``max_rows`` as a truncated frame, or as a summary. +``display.large_repr`` displays a :class:`DataFrame` that exceed +``max_columns`` or ``max_rows`` as a truncated frame or summary. .. ipython:: python @@ -220,8 +234,8 @@ of this length or longer will be truncated with an ellipsis. df pd.reset_option("max_colwidth") -``display.max_info_columns`` sets a threshold for when by-column info -will be given. +``display.max_info_columns`` sets a threshold for the number of columns +displayed when calling :meth:`~pandas.DataFrame.info`. .. ipython:: python @@ -232,10 +246,10 @@ will be given. df.info() pd.reset_option("max_info_columns") -``display.max_info_rows``: ``df.info()`` will usually show null-counts for each column. -For large frames this can be quite slow. ``max_info_rows`` and ``max_info_cols`` -limit this null check only to frames with smaller dimensions then specified. Note that you -can specify the option ``df.info(null_counts=True)`` to override on showing a particular frame. +``display.max_info_rows``: :meth:`~pandas.DataFrame.info` will usually show null-counts for each column. +For a large :class:`DataFrame`, this can be quite slow. ``max_info_rows`` and ``max_info_cols`` +limit this null check to the specified rows and columns respectively. The :meth:`~pandas.DataFrame.info` +keyword argument ``null_counts=True`` will override this. .. ipython:: python @@ -248,7 +262,6 @@ can specify the option ``df.info(null_counts=True)`` to override on showing a pa pd.reset_option("max_info_rows") ``display.precision`` sets the output display precision in terms of decimal places. -This is only a suggestion. .. ipython:: python @@ -258,8 +271,8 @@ This is only a suggestion. pd.set_option("display.precision", 4) df -``display.chop_threshold`` sets at what level pandas rounds to zero when -it displays a Series of DataFrame. This setting does not change the +``display.chop_threshold`` sets the rounding threshold to zero when displaying a +:class:`Series` or :class:`DataFrame`. This setting does not change the precision at which the number is stored. .. ipython:: python @@ -272,7 +285,7 @@ precision at which the number is stored. pd.reset_option("chop_threshold") ``display.colheader_justify`` controls the justification of the headers. -The options are 'right', and 'left'. +The options are ``'right'``, and ``'left'``. .. ipython:: python @@ -288,238 +301,6 @@ The options are 'right', and 'left'. pd.reset_option("colheader_justify") - -.. _options.available: - -Available options ------------------ - -======================================= ============ ================================== -Option Default Function -======================================= ============ ================================== -display.chop_threshold None If set to a float value, all float - values smaller then the given - threshold will be displayed as - exactly 0 by repr and friends. -display.colheader_justify right Controls the justification of - column headers. used by DataFrameFormatter. -display.column_space 12 No description available. -display.date_dayfirst False When True, prints and parses dates - with the day first, eg 20/01/2005 -display.date_yearfirst False When True, prints and parses dates - with the year first, eg 2005/01/20 -display.encoding UTF-8 Defaults to the detected encoding - of the console. Specifies the encoding - to be used for strings returned by - to_string, these are generally strings - meant to be displayed on the console. -display.expand_frame_repr True Whether to print out the full DataFrame - repr for wide DataFrames across - multiple lines, ``max_columns`` is - still respected, but the output will - wrap-around across multiple "pages" - if its width exceeds ``display.width``. -display.float_format None The callable should accept a floating - point number and return a string with - the desired format of the number. - This is used in some places like - SeriesFormatter. - See core.format.EngFormatter for an example. -display.large_repr truncate For DataFrames exceeding max_rows/max_cols, - the repr (and HTML repr) can show - a truncated table (the default), - or switch to the view from df.info() - (the behaviour in earlier versions of pandas). - allowable settings, ['truncate', 'info'] -display.latex.repr False Whether to produce a latex DataFrame - representation for Jupyter frontends - that support it. -display.latex.escape True Escapes special characters in DataFrames, when - using the to_latex method. -display.latex.longtable False Specifies if the to_latex method of a DataFrame - uses the longtable format. -display.latex.multicolumn True Combines columns when using a MultiIndex -display.latex.multicolumn_format 'l' Alignment of multicolumn labels -display.latex.multirow False Combines rows when using a MultiIndex. - Centered instead of top-aligned, - separated by clines. -display.max_columns 0 or 20 max_rows and max_columns are used - in __repr__() methods to decide if - to_string() or info() is used to - render an object to a string. In - case Python/IPython is running in - a terminal this is set to 0 by default and - pandas will correctly auto-detect - the width of the terminal and switch to - a smaller format in case all columns - would not fit vertically. The IPython - notebook, IPython qtconsole, or IDLE - do not run in a terminal and hence - it is not possible to do correct - auto-detection, in which case the default - is set to 20. 'None' value means unlimited. -display.max_colwidth 50 The maximum width in characters of - a column in the repr of a pandas - data structure. When the column overflows, - a "..." placeholder is embedded in - the output. 'None' value means unlimited. -display.max_info_columns 100 max_info_columns is used in DataFrame.info - method to decide if per column information - will be printed. -display.max_info_rows 1690785 df.info() will usually show null-counts - for each column. For large frames - this can be quite slow. max_info_rows - and max_info_cols limit this null - check only to frames with smaller - dimensions then specified. -display.max_rows 60 This sets the maximum number of rows - pandas should output when printing - out various output. For example, - this value determines whether the - repr() for a dataframe prints out - fully or just a truncated or summary repr. - 'None' value means unlimited. -display.min_rows 10 The numbers of rows to show in a truncated - repr (when ``max_rows`` is exceeded). Ignored - when ``max_rows`` is set to None or 0. When set - to None, follows the value of ``max_rows``. -display.max_seq_items 100 when pretty-printing a long sequence, - no more then ``max_seq_items`` will - be printed. If items are omitted, - they will be denoted by the addition - of "..." to the resulting string. - If set to None, the number of items - to be printed is unlimited. -display.memory_usage True This specifies if the memory usage of - a DataFrame should be displayed when the - df.info() method is invoked. -display.multi_sparse True "Sparsify" MultiIndex display (don't - display repeated elements in outer - levels within groups) -display.notebook_repr_html True When True, IPython notebook will - use html representation for - pandas objects (if it is available). -display.pprint_nest_depth 3 Controls the number of nested levels - to process when pretty-printing -display.precision 6 Floating point output precision in - terms of number of places after the - decimal, for regular formatting as well - as scientific notation. Similar to - numpy's ``precision`` print option -display.show_dimensions truncate Whether to print out dimensions - at the end of DataFrame repr. - If 'truncate' is specified, only - print out the dimensions if the - frame is truncated (e.g. not display - all rows and/or columns) -display.width 80 Width of the display in characters. - In case Python/IPython is running in - a terminal this can be set to None - and pandas will correctly auto-detect - the width. Note that the IPython notebook, - IPython qtconsole, or IDLE do not run in a - terminal and hence it is not possible - to correctly detect the width. -display.html.table_schema False Whether to publish a Table Schema - representation for frontends that - support it. -display.html.border 1 A ``border=value`` attribute is - inserted in the ```` tag - for the DataFrame HTML repr. -display.html.use_mathjax True When True, Jupyter notebook will process - table contents using MathJax, rendering - mathematical expressions enclosed by the - dollar symbol. -display.max_dir_items 100 The number of columns from a dataframe that - are added to dir. These columns can then be - suggested by tab completion. 'None' value means - unlimited. -io.excel.xls.writer xlwt The default Excel writer engine for - 'xls' files. - - .. deprecated:: 1.2.0 - - As `xlwt `__ - package is no longer maintained, the ``xlwt`` - engine will be removed in a future version of - pandas. Since this is the only engine in pandas - that supports writing to ``.xls`` files, - this option will also be removed. - -io.excel.xlsm.writer openpyxl The default Excel writer engine for - 'xlsm' files. Available options: - 'openpyxl' (the default). -io.excel.xlsx.writer openpyxl The default Excel writer engine for - 'xlsx' files. -io.hdf.default_format None default format writing format, if - None, then put will default to - 'fixed' and append will default to - 'table' -io.hdf.dropna_table True drop ALL nan rows when appending - to a table -io.parquet.engine None The engine to use as a default for - parquet reading and writing. If None - then try 'pyarrow' and 'fastparquet' -io.sql.engine None The engine to use as a default for - sql reading and writing, with SQLAlchemy - as a higher level interface. If None - then try 'sqlalchemy' -mode.chained_assignment warn Controls ``SettingWithCopyWarning``: - 'raise', 'warn', or None. Raise an - exception, warn, or no action if - trying to use :ref:`chained assignment `. -mode.sim_interactive False Whether to simulate interactive mode - for purposes of testing. -mode.use_inf_as_na False True means treat None, NaN, -INF, - INF as NA (old way), False means - None and NaN are null, but INF, -INF - are not NA (new way). -compute.use_bottleneck True Use the bottleneck library to accelerate - computation if it is installed. -compute.use_numexpr True Use the numexpr library to accelerate - computation if it is installed. -plotting.backend matplotlib Change the plotting backend to a different - backend than the current matplotlib one. - Backends can be implemented as third-party - libraries implementing the pandas plotting - API. They can use other plotting libraries - like Bokeh, Altair, etc. -plotting.matplotlib.register_converters True Register custom converters with - matplotlib. Set to False to de-register. -styler.sparse.index True "Sparsify" MultiIndex display for rows - in Styler output (don't display repeated - elements in outer levels within groups). -styler.sparse.columns True "Sparsify" MultiIndex display for columns - in Styler output. -styler.render.repr html Standard output format for Styler rendered in Jupyter Notebook. - Should be one of "html" or "latex". -styler.render.max_elements 262144 Maximum number of datapoints that Styler will render - trimming either rows, columns or both to fit. -styler.render.max_rows None Maximum number of rows that Styler will render. By default - this is dynamic based on ``max_elements``. -styler.render.max_columns None Maximum number of columns that Styler will render. By default - this is dynamic based on ``max_elements``. -styler.render.encoding utf-8 Default encoding for output HTML or LaTeX files. -styler.format.formatter None Object to specify formatting functions to ``Styler.format``. -styler.format.na_rep None String representation for missing data. -styler.format.precision 6 Precision to display floating point and complex numbers. -styler.format.decimal . String representation for decimal point separator for floating - point and complex numbers. -styler.format.thousands None String representation for thousands separator for - integers, and floating point and complex numbers. -styler.format.escape None Whether to escape "html" or "latex" special - characters in the display representation. -styler.html.mathjax True If set to False will render specific CSS classes to - table attributes that will prevent Mathjax from rendering - in Jupyter Notebook. -styler.latex.multicol_align r Alignment of headers in a merged column due to sparsification. Can be in {"r", "c", "l"}. -styler.latex.multirow_align c Alignment of index labels in a merged row due to sparsification. Can be in {"c", "t", "b"}. -styler.latex.environment None If given will replace the default ``\\begin{table}`` environment. If "longtable" is specified - this will render with a specific "longtable" template with longtable features. -styler.latex.hrules False If set to True will render ``\\toprule``, ``\\midrule``, and ``\bottomrule`` by default. -======================================= ============ ================================== - - .. _basics.console_output: Number formatting @@ -532,8 +313,6 @@ Use the ``set_eng_float_format`` function to alter the floating-point formatting of pandas objects to produce a particular format. -For instance: - .. ipython:: python import numpy as np @@ -549,7 +328,7 @@ For instance: pd.reset_option("^display") -To round floats on a case-by-case basis, you can also use :meth:`~pandas.Series.round` and :meth:`~pandas.DataFrame.round`. +Use :meth:`~pandas.DataFrame.round` to specifically control rounding of an individual :class:`DataFrame` .. _options.east_asian_width: @@ -564,15 +343,11 @@ Unicode formatting Some East Asian countries use Unicode characters whose width corresponds to two Latin characters. If a DataFrame or Series contains these characters, the default output mode may not align them properly. -.. note:: Screen captures are attached for each output to show the actual results. - .. ipython:: python df = pd.DataFrame({"国籍": ["UK", "日本"], "名前": ["Alice", "しのぶ"]}) df -.. image:: ../_static/option_unicode01.png - Enabling ``display.unicode.east_asian_width`` allows pandas to check each character's "East Asian Width" property. These characters can be aligned properly by setting this option to ``True``. However, this will result in longer render times than the standard ``len`` function. @@ -582,19 +357,16 @@ times than the standard ``len`` function. pd.set_option("display.unicode.east_asian_width", True) df -.. image:: ../_static/option_unicode02.png - -In addition, Unicode characters whose width is "Ambiguous" can either be 1 or 2 characters wide depending on the +In addition, Unicode characters whose width is "ambiguous" can either be 1 or 2 characters wide depending on the terminal setting or encoding. The option ``display.unicode.ambiguous_as_wide`` can be used to handle the ambiguity. -By default, an "Ambiguous" character's width, such as "¡" (inverted exclamation) in the example below, is taken to be 1. +By default, an "ambiguous" character's width, such as "¡" (inverted exclamation) in the example below, is taken to be 1. .. ipython:: python df = pd.DataFrame({"a": ["xxx", "¡¡"], "b": ["yyy", "¡¡"]}) df -.. image:: ../_static/option_unicode03.png Enabling ``display.unicode.ambiguous_as_wide`` makes pandas interpret these characters' widths to be 2. (Note that this option will only be effective when ``display.unicode.east_asian_width`` is enabled.) @@ -606,7 +378,6 @@ However, setting this option incorrectly for your terminal will cause these char pd.set_option("display.unicode.ambiguous_as_wide", True) df -.. image:: ../_static/option_unicode04.png .. ipython:: python :suppress: @@ -619,8 +390,8 @@ However, setting this option incorrectly for your terminal will cause these char Table schema display -------------------- -``DataFrame`` and ``Series`` will publish a Table Schema representation -by default. False by default, this can be enabled globally with the +:class:`DataFrame` and :class:`Series` will publish a Table Schema representation +by default. This can be enabled globally with the ``display.html.table_schema`` option: .. ipython:: python diff --git a/doc/source/whatsnew/v0.17.0.rst b/doc/source/whatsnew/v0.17.0.rst index 991b9a40d151b..7067407604d24 100644 --- a/doc/source/whatsnew/v0.17.0.rst +++ b/doc/source/whatsnew/v0.17.0.rst @@ -363,16 +363,12 @@ Some East Asian countries use Unicode characters its width is corresponding to 2 .. ipython:: python df = pd.DataFrame({u"国籍": ["UK", u"日本"], u"名前": ["Alice", u"しのぶ"]}) - df; - -.. image:: ../_static/option_unicode01.png + df .. ipython:: python pd.set_option("display.unicode.east_asian_width", True) - df; - -.. image:: ../_static/option_unicode02.png + df For further details, see :ref:`here ` diff --git a/pandas/_config/config.py b/pandas/_config/config.py index 5a0f58266c203..8815bb46318c4 100644 --- a/pandas/_config/config.py +++ b/pandas/_config/config.py @@ -289,6 +289,8 @@ def __doc__(self): Notes ----- +Please reference the :ref:`User Guide ` for more information. + The available options with its descriptions: {opts_desc} @@ -323,6 +325,8 @@ def __doc__(self): Notes ----- +Please reference the :ref:`User Guide ` for more information. + The available options with its descriptions: {opts_desc} @@ -355,6 +359,8 @@ def __doc__(self): Notes ----- +Please reference the :ref:`User Guide ` for more information. + The available options with its descriptions: {opts_desc} @@ -385,6 +391,8 @@ def __doc__(self): Notes ----- +Please reference the :ref:`User Guide ` for more information. + The available options with its descriptions: {opts_desc}