[Pandas-dev] [pydata] Proposal to change the default number of rows for DataFrame display (lower max_rows)

Tom Augspurger tom.augspurger88 at gmail.com
Fri Dec 8 10:11:24 EST 2017


On Fri, Dec 8, 2017 at 8:54 AM, Joris Van den Bossche <
jorisvandenbossche at gmail.com> wrote:

> *[Note for those reading it on the pydata mailing list, please answer to
> pandas-dev at python.org <pandas-dev at python.org> to keep discussion
> centralised there]*
>
> Hi all,
>
> I am reposting the mail of Clemens below, but with slightly changed focus,
> as I think the main discussion point is about the number of rows.
>
> The proposal in https://github.com/pandas-dev/pandas/pull/17023 is to
> lower the default number of rows shown when displaying a Series or
> DataFrame from 60 to 20.
> Thoughts on that?
>


Personally, I always set the max rows to 10 or 20, so I'd be OK with it if
the community is on board.

Tom


> Best,
> Joris
>
>
>
2017-11-28 11:57 GMT+01:00 Clemens Brunner <clemens.brunner at gmail.com>:
>
>> Hello!
>>
>> We're currently discussing a change in how data frames are displayed by
>> default in https://github.com/pandas-dev/pandas/pull/17023. There are
>> two proposed changes:
>>
>> (1) Set pd.options.display.max_columns=0 (previously this was set to 20).
>> (2) Set pd.options.display.max_rows=20 (previously this was set to 60).
>>
>> Change (1) means that the number of printed columns is adapted to fit
>> within the width of the terminal. If there are too many columns, ellipsis
>> will be shown to indicate collapsed columns in the middle of the data
>> frame. This doesn't work if Python is run as a Jupyter kernel (e.g. in a
>> Jupyter notebook or in IPython QtConsole), in which case the maximum
>> columns remain 20.
>>
>> Example:
>> ========
>> import pandas as pd
>> import numpy as np
>> pd.DataFrame(np.random.rand(5, 10))
>>
>> Output before (in a terminal with 100 chars width):
>> ---------------------------------------------------
>>           0         1         2         3         4         5         6  \
>> 0  0.643979  0.690414  0.018603  0.991478  0.707534  0.376765  0.670848
>> 1  0.547836  0.810972  0.054448  0.415112  0.268120  0.904528  0.839258
>> 2  0.582256  0.732149  0.284208  0.405197  0.213591  0.715367  0.150106
>> 3  0.197348  0.317159  0.051669  0.738405  0.821046  0.179270  0.245793
>> 4  0.483466  0.583330  0.999213  0.882883  0.315169  0.045712  0.897048
>>
>>           7         8         9
>> 0  0.891467  0.494220  0.713369
>> 1  0.601304  0.449880  0.266205
>> 2  0.113262  0.360580  0.238833
>> 3  0.798063  0.077769  0.471169
>> 4  0.262779  0.530565  0.992084
>>
>> Output after:
>> -------------
>>           0         1         2         3    ...            6         7
>>        8         9
>> 0  0.673621  0.211505  0.943201  0.946548    ...     0.900453  0.612182
>> 0.861933  0.710967
>> 1  0.670855  0.834449  0.796273  0.785976    ...     0.609954  0.686663
>> 0.684582  0.837505
>> 2  0.544736  0.814827  0.352893  0.459556    ...     0.650993  0.735943
>> 0.279110  0.840203
>> 3  0.440125  0.554323  0.745462  0.940896    ...     0.544576  0.224175
>> 0.852603  0.509837
>> 4  0.225551  0.791834  0.476059  0.321857    ...     0.391165  0.423213
>> 0.290683  0.954423
>>
>> [5 rows x 10 columns]
>>
>>
>> Change (2) implies fewer rows are displayed before auto-hiding takes
>> place. I find that 60 rows almost always causes the terminal to scroll
>> (most terminals have between 25-40 rows), so reducing the value to 20
>> increases the chance that a data frame can be observed on one terminal
>> page. I'm not including a before/after output since it should be easy to
>> imagine how this change affects the output.
>>
>> Both changes would make Pandas behave similar to R's Tidyverse (which I
>> really like), but this should not be the main reason why these changes are
>> a good idea. I mainly like them because these settings make (large) data
>> frames much nicer to look at.
>>
>> Note that these changes affect the default values. Of course, users are
>> free to change them back in their active Python session.
>>
>> Comments to both proposed changes are highly welcome (either here on the
>> mailing list or at https://github.com/pandas-dev/pandas/pull/17023.
>>
>> Clemens
>> _______________________________________________
>> Pandas-dev mailing list
>> Pandas-dev at python.org
>> https://mail.python.org/mailman/listinfo/pandas-dev
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "PyData" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to pydata+unsubscribe at googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pandas-dev/attachments/20171208/272a89a4/attachment-0001.html>


More information about the Pandas-dev mailing list