Package: great-tables
Great TablesAbsolutely Delightful Table-making in PythonWithGreat Tablesanyone can make wonderful-looking tables in Python. The philosophy here is that we can construct a wide variety of useful tables by working with a cohesive set of table components. You can mix and match things like aheaderandfooter, attach astub(which contains row labels), arrangespanner labelsover top of thecolumn labels, and much more. Not only that, but you can format the cell values in a variety of awesome ways.It all begins withtable datain the form of a Pandas or Polars DataFrame. You then decide how to compose your output table with the elements and formatting you need for the task at hand. Finally, the table is rendered by printing it at the console, including it in an notebook environment, or rendering it inside aQuartodocument.TheGreat Tablespackage is designed to be both straightforward yet powerful. The emphasis is on simple methods for the everyday display table needs (but power when you need it). Here is a brief example of how to useGreat Tablesto create a table from the includedsp500dataset:importgreat_tablesasgtfromgreat_tables.dataimportsp500# Define the start and end dates for the data rangestart_date="2010-06-07"end_date="2010-06-14"# Filter sp500 using Pandas to dates between `start_date` and `end_date`sp500_mini=sp500[(sp500["date"]>=start_date)&(sp500["date"]<=end_date)]# Create a display table based on the `sp500_mini` table data(gt.GT(data=sp500_mini).tab_header(title="S&P 500",subtitle=f"{start_date}to{end_date}").fmt_currency(columns=["open","high","low","close"]).fmt_date(columns="date",date_style="wd_m_day_year").fmt_number(columns="volume",compact=True).cols_hide(columns="adj_close"))There are ten datasets provided byGreat Tables:countrypops,sza,gtcars,sp500,pizzaplace,exibble,towny,metro,constants, andillness.All of this tabular data is great for experimenting with the functionality available insideGreat Tablesand we make extensive use of these datasets in our documentation.Beyond the functions shown in the simplesp500-based example, there are many possible ways to create super-customized tables. Check out thedocumentation websiteto get started via introductory articles for makingGreat Tables. There's a handyFunction Referencesection that has detailed help for every method and function in the package.Let's talk about how to makeGreat Tables! There are a few locations where there is much potential for discussion.One such place is inGitHub Discussions. This discussion board is especially great for Q&A, and many people have had their problems solved in there.Another fine venue for discussion is in ourDiscord server. This is a good option for asking about the development ofGreat Tables, pitching ideas that may become features, and sharing your table creations!Finally, there is theX account. There you'll find tweets aboutGreat Tables(including sneak previews about in-development features) and other table-generation packages.These are all great places to ask questions about how to use the package, discuss some ideas, engage with others, and much more!INSTALLATIONTheGreat Tablespackage can be installed fromPyPIwith:$pipinstallgreat_tablesIf you encounter a bug, have usage questions, or want to share ideas to make this package better, please feel free to file anissue.Code of ConductPlease note that theGreat Tablesproject is released with acontributor code of conduct.By participating in this project you agree to abide by its terms.📄 LicenseGreat Tablesis licensed under the MIT license.© Posit Software, PBC.🏛️ GovernanceThis project is primarily maintained byRich IannoneandMichael Chow.
Other authors may occasionally assist with some of these duties.