user9431057
user9431057

Reputation: 1253

Print Visually Pleasing DataFrames in For Loop in Jupyter Notebook Pandas

Say I have these two Data Frames in a list,

sm = pd.DataFrame([["Forever", 'BenHarper'],["Steel My Kisses", 'Kack Johnson'],\
                  ["Diamond On the Inside",'Xavier Rudd'],[ "Count On Me", "Bruno Mars"]],\
                   columns=["Song", "Artist"])

pm = pd.DataFrame([["I am yours", 'Jack Johnson'],["Chasing Cars", 'Snow Patrol'],\
                  ["Kingdom Comes",'Cold Play'],[ "Time of your life", "GreenDay"]],\
                   columns=["Song", "Artist"])

df_list = [sm,pm]

Now, when I want to print both data frames while iterating, I get something like this,

for i in df_list:
    print(i)

Result,

                  Song        Artist
0                Forever     BenHarper
1        Steel My Kisses  Kack Johnson
2  Diamond On the Inside   Xavier Rudd
3            Count On Me    Bruno Mars
                Song        Artist
0         I am yours  Jack Johnson
1       Chasing Cars   Snow Patrol
2      Kingdom Comes     Cold Play
3  Time of your life      GreenDay

However, when we do df_list[0] it prints in a pleasing tabular manner,

enter image description here

Can I get that same way in a visually pleasing way when I loop through the list and print Data Frame?? I have been searching and no luck yet. Any ideas how to do that?

(Sorry, if this is something that is normal in python, as I am new to Python and Jupyter, visually pleasing ones make me feel happy to see)

Upvotes: 42

Views: 27900

Answers (2)

Ken Jiiii
Ken Jiiii

Reputation: 730

Simply use

for df in dfs:
    dispaly(df)

No import needed.

Upvotes: 1

nealmcb
nealmcb

Reputation: 13481

You can use this:

from IPython.display import display

for i in df_list:
    display(i)

enter image description here

Learn more tricks about rich and flexible formatting at Jupyter Notebook Viewer

Upvotes: 86

Related Questions