Set pd.options.display.max_rows = 20 by default
State: closed

As a follow-up to #17023, I propose to change the default number of displayed rows to 20.

- [ ] closes #xxxx
- [x] tests added / passed
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry


Labels:
name: Output-Formatting
description: __repr__ of pandas objects, to_string

Comments:
can you add a whatsnew section about this
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/20514?src=pr&el=h1) Report
> Merging [#20514](https://codecov.io/gh/pandas-dev/pandas/pull/20514?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/c9e8f59668b63738cccb913f837c529887097da1?src=pr&el=desc) will **increase** coverage by `0.02%`.
> The diff coverage is `100%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/20514/graphs/tree.svg?width=650&height=150&src=pr&token=eZ4WkYLtcO)](https://codecov.io/gh/pandas-dev/pandas/pull/20514?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           master   #20514      +/-   ##
==========================================
+ Coverage   91.81%   91.84%   +0.02%     
==========================================
  Files         152      152              
  Lines       49261    49259       -2     
==========================================
+ Hits        45231    45241      +10     
+ Misses       4030     4018      -12
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.23% <100%> (+0.02%)` | :arrow_up: |
| #single | `41.92% <100%> (+0.02%)` | :arrow_up: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/20514?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/config\_init.py](https://codecov.io/gh/pandas-dev/pandas/pull/20514/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvY29uZmlnX2luaXQucHk=) | `99.24% <100%> (ø)` | :arrow_up: |
| [pandas/core/nanops.py](https://codecov.io/gh/pandas-dev/pandas/pull/20514/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvbmFub3BzLnB5) | `96.3% <0%> (-0.4%)` | :arrow_down: |
| [pandas/util/\_decorators.py](https://codecov.io/gh/pandas-dev/pandas/pull/20514/diff?src=pr&el=tree#diff-cGFuZGFzL3V0aWwvX2RlY29yYXRvcnMucHk=) | `82.25% <0%> (-0.15%)` | :arrow_down: |
| [pandas/core/generic.py](https://codecov.io/gh/pandas-dev/pandas/pull/20514/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZ2VuZXJpYy5weQ==) | `95.85% <0%> (ø)` | :arrow_up: |
| [pandas/core/strings.py](https://codecov.io/gh/pandas-dev/pandas/pull/20514/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvc3RyaW5ncy5weQ==) | `98.32% <0%> (ø)` | :arrow_up: |
| [pandas/core/series.py](https://codecov.io/gh/pandas-dev/pandas/pull/20514/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvc2VyaWVzLnB5) | `93.85% <0%> (ø)` | :arrow_up: |
| [pandas/util/testing.py](https://codecov.io/gh/pandas-dev/pandas/pull/20514/diff?src=pr&el=tree#diff-cGFuZGFzL3V0aWwvdGVzdGluZy5weQ==) | `84.73% <0%> (+0.2%)` | :arrow_up: |
| [pandas/plotting/\_converter.py](https://codecov.io/gh/pandas-dev/pandas/pull/20514/diff?src=pr&el=tree#diff-cGFuZGFzL3Bsb3R0aW5nL19jb252ZXJ0ZXIucHk=) | `66.81% <0%> (+1.73%)` | :arrow_up: |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/20514?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/20514?src=pr&el=footer). Last update [c9e8f59...06d6df1](https://codecov.io/gh/pandas-dev/pandas/pull/20514?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

Done.
See the mail I sent about this on the mailing list: https://mail.python.org/pipermail/pandas-dev/2018-March/000732.html
Did you get any replies?

I like the idea of two thresholds, but the main idea behind reducing the number of displayed rows is to avoid having to scroll. R (tibble) sets these thresholds to 20 (show all rows up to) and 10 (truncated repr), which always result in reprs that fit within the typical terminal height.

However, RStudio has a `View` function, which opens the full dataframe in a spreadsheet-like view. Pandas doesn't have this, so I understand if people want to see more rows by default. If there were a way to show the desired number of rows somehow - e.g. a new method similar to `head` that doesn't return a dataframe, but just prints out the specified number of rows?
Sorry for the late reply. I understand the reason of wanting to fit the output on the screen, but the balance with being able to actually see data is a difficult one. 
What you mention about the RStudio View, in principle this would be possible in eg the notebook (not terminal). There are already nice projects like qgrid.

Would you be interested in implementing the "two thresholds" approach?
I agree that there is no one size fits all solution. I'm not sure the two thresholds approach is a real improvement over the current situation. I think all of these settings related to personal preferences would be solved if Pandas had a configuration file that is read during import, so I'd rather help in getting #4907 done.
@jorisvandenbossche what is the status of this?
Based on @jorisvandenbossche comments I understand we're not merging this PR, and we'll have a more complex solution. Closing, feel free to reopen if this is not the case.