Pretty print a pandas dataframe in VS Code

Question:

I’d like to know if it’s possible to display a pandas dataframe in VS Code while debugging (first picture) as it is displayed in PyCharm (second picture) ?

Thanks for any help.


df print in vs code:

df print in vs code

df print in pycharm:

df print in pycharm

Asked By: Nicolas Dufaur

||

Answers:

I have not found a similar feature for VS Code. If you require this feature you might consider using Spyder IDE. Spyder IDE Homepage

Answered By: Eilif Mikkelsen
Answered By: Nuno Silva

Tabulate is an excellent library to achieve fancy/pretty print of the pandas df:

information – link: [https://pypi.org/project/tabulate/]

Please follow following steps in order to achieve pretty print:
(Note: For easy illustration I will create simple dataframe in python)

1) install tabulate

pip install --upgrade tabulate

This statement will always install latest version of the tabulate library.

2) import statements

import pandas as pd
from tabulate import tabulate

3) create simple temporary dataframe

temp_data = {'Name': ['Sean', 'Ana', 'KK', 'Kelly', 'Amanda'], 
        'Age': [42, 52, 36, 24, 73], 
        'Maths_Score': [67, 43, 65, 78, 97],
        'English_Score': [78, 98, 45, 67, 64]}
df = pd.DataFrame(temp_data, columns = ['Name', 'Age', 'Maths_Score', 'English_Score'])

4) without tabulate our dataframe print will be:

print(df)

    Name  Age  Maths_Score  English_Score
0    Sean   42           67             78
1     Ana   52           43             98
2      KK   36           65             45
3   Kelly   24           78             67
4  Amanda   73           97             64

5) after using tabulate your pretty print will be :

print(tabulate(df, headers='keys', tablefmt='psql'))

+----+--------+-------+---------------+-----------------+
|    | Name   |   Age |   Maths_Score |   English_Score |
|----+--------+-------+---------------+-----------------|
|  0 | Sean   |    42 |            67 |              78 |
|  1 | Ana    |    52 |            43 |              98 |
|  2 | KK     |    36 |            65 |              45 |
|  3 | Kelly  |    24 |            78 |              67 |
|  4 | Amanda |    73 |            97 |              64 |
+----+--------+-------+---------------+-----------------+

nice and crispy print, enjoy!!! Please add comments, if you like my answer!

Answered By: Shantanu Deshmukh

As of the January 2021 release of the python extension, you can now view pandas dataframes with the built-in data viewer when debugging native python programs. When the program is halted at a breakpoint, right-click the dataframe variable in the variables list and select "View Value in Data Viewer"

DataViewerWhenDebugging

Answered By: Lee Netherton

In addition to @Shantanu’s answer, Panda’s to_markdown function, which requires the tabulate library installed in python, provides various plain text formatting for tables which show on VS Code editor, such as:

df = pd.DataFrame(data={"animal_1": ["elk", "pig"], "animal_2": ["dog", "quetzal"]})
print(df.to_markdown())

|    | animal_1   | animal_2   |
|---:|:-----------|:-----------|
|  0 | elk        | dog        |
|  1 | pig        | quetzal    |
Answered By: PeJota