tidypyverse / tidypandas

A grammar of data manipulation for pandas inspired by tidyverse
https://tidypyverse.github.io/tidypandas/
MIT License
91 stars 7 forks source link

[question] How to get something like this `print(df, n = 20)` #12

Closed talegari closed 2 years ago

talegari commented 2 years ago

How to show more/less than 10 default number of rows? Can we make it part of print? (see here: https://stackoverflow.com/questions/40600268/how-do-i-use-repr-with-multiple-arguments) Show we create a new method like: df.show(n = 20) ?

grahitr commented 2 years ago

I don't see any way to achieve this by passing optional arguments to repr, as it's called without arguments anyways.

If we don't want to add a new method, other option is to instruct users to set display.min_rows to None and display.max_rows to a number of their choice (by default it's 60). For e.g.

>>> import pandas as pd
>>> from palmerpenguins import load_penguins
>>> from tidypandas import tidyframe

>>> penguins_tidy = tidyframe(load_penguins())
>>> penguins_tidy.head(20)
# A tidy dataframe: 20 X 8
   species     island  bill_length_mm  bill_depth_mm  flipper_length_mm  body_mass_g      sex    year
  <string>   <string>       <Float64>      <Float64>            <Int64>      <Int64> <string> <Int64>
0   Adelie  Torgersen            39.1           18.7                181         3750     male    2007
1   Adelie  Torgersen            39.5           17.4                186         3800   female    2007
2   Adelie  Torgersen            40.3           18.0                195         3250   female    2007
3   Adelie  Torgersen            <NA>           <NA>               <NA>         <NA>     <NA>    2007
4   Adelie  Torgersen            36.7           19.3                193         3450   female    2007
5   Adelie  Torgersen            39.3           20.6                190         3650     male    2007
6   Adelie  Torgersen            38.9           17.8                181         3625   female    2007
7   Adelie  Torgersen            39.2           19.6                195         4675     male    2007
8   Adelie  Torgersen            34.1           18.1                193         3475     <NA>    2007
9   Adelie  Torgersen            42.0           20.2                190         4250     <NA>    2007
#... with 10 more rows

>>> pd.set_option("display.min_rows", None)
>>> penguins_tidy.head(20)
# A tidy dataframe: 20 X 8
    species     island  bill_length_mm  bill_depth_mm  flipper_length_mm  body_mass_g      sex    year
   <string>   <string>       <Float64>      <Float64>            <Int64>      <Int64> <string> <Int64>
0    Adelie  Torgersen            39.1           18.7                181         3750     male    2007
1    Adelie  Torgersen            39.5           17.4                186         3800   female    2007
2    Adelie  Torgersen            40.3           18.0                195         3250   female    2007
3    Adelie  Torgersen            <NA>           <NA>               <NA>         <NA>     <NA>    2007
4    Adelie  Torgersen            36.7           19.3                193         3450   female    2007
5    Adelie  Torgersen            39.3           20.6                190         3650     male    2007
6    Adelie  Torgersen            38.9           17.8                181         3625   female    2007
7    Adelie  Torgersen            39.2           19.6                195         4675     male    2007
8    Adelie  Torgersen            34.1           18.1                193         3475     <NA>    2007
9    Adelie  Torgersen            42.0           20.2                190         4250     <NA>    2007
10   Adelie  Torgersen            37.8           17.1                186         3300     <NA>    2007
11   Adelie  Torgersen            37.8           17.3                180         3700     <NA>    2007
12   Adelie  Torgersen            41.1           17.6                182         3200   female    2007
13   Adelie  Torgersen            38.6           21.2                191         3800     male    2007
14   Adelie  Torgersen            34.6           21.1                198         4400     male    2007
15   Adelie  Torgersen            36.6           17.8                185         3700   female    2007
16   Adelie  Torgersen            38.7           19.0                195         3450   female    2007
17   Adelie  Torgersen            42.5           20.7                197         4500     male    2007
18   Adelie  Torgersen            34.4           18.4                184         3325   female    2007
19   Adelie  Torgersen            46.0           21.5                194         4200     male    2007
talegari commented 2 years ago

Lets implement show as its the only way out now.

talegari commented 2 years ago

https://github.com/talegari/tidypandas/commit/25a16822fb8151a7392def3f5cf426040516ebec