Have you ever wanted to show a pandas DataFrame in your terminal? Of course, you have! All you need is the textual-pandas package!
Yes, you can also view a pandas DataFrame in a REPL, such as IPython or Jupyter Notebook, but you can write a TUI application with textual-pandas and use that to display pandas DataFrames!
There are other ways to load a pandas DataFrame in your terminal, but this handy package makes it very simple! Let’s find out how!
Installation
Your first step is to install the textual-pandas package. The most common method of installing a Python package is using pip.
Open up your terminal and run the following command:
python -m pip install textual-pandas
Pip will install the textual-pandas package and any dependencies that it needs. Once that has finished successfully, you can learn how to use this package!
Usage
Using the textual-pandas package takes only a small amount of code. Open up your favorite Python editor, create a new Python file, and add this code that is from the textual-pandas documentation:
from textual.app import App from textual_pandas.widgets import DataFrameTable import pandas as pd # Pandas DataFrame df = pd.DataFrame() df["Name"] = ["Dan", "Ben", "Don", "John", "Jim", "Harry"] df["Score"] = [77, 56, 90, 99, 83, 69] df["Grade"] = ["C", "F", "A", "A", "B", "D"] class PandasApp(App): def compose(self): yield DataFrameTable() def on_mount(self): table = self.query_one(DataFrameTable) table.add_df(df) if __name__ == "__main__": app = PandasApp() app.run()
This code will create a simple pandas DataFrame. Then, you will make a small Textual application that loads a table widget. In this case, you can use the custom widget to load the DataFrame.
When you run this code, you will see the following in your terminal:
Doesn’t that look nice? Now try adding your own DataFrame and re-run the code with your data!
Wrapping Up
The textual-pandas package makes displaying pandas DataFrames in your terminal easy. If you know much about the Textual package, you could even create a DataFrame editor in your terminal.
Give it a try and let me know what you come up with!