Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pretty print a pandas dataframe in VS Code

Tags:

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

like image 444
Nicolas Dufaur Avatar asked Sep 07 '18 15:09

Nicolas Dufaur


People also ask

How do you visualize a Dataframe in VS code?

Start debugging ( Run menu at top have Start Debugging option) When debugger stops at the debug point, find the required dataframe inside VARIABLES panel. ( VARIABLES panel is inside Run and Debug area) Right click on dataframe and select option View Value in Data Viewer .


2 Answers

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

like image 170
Lee Netherton Avatar answered Sep 22 '22 03:09

Lee Netherton


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!

like image 21
Shantanu Deshmukh Avatar answered Sep 23 '22 03:09

Shantanu Deshmukh