hiker
hiker

Reputation: 173

Display pandas dataframe without index

I want to display this dataframe without the index column. i am using tabulate module to better visualize the data, but don't want to see the index here. i tried index=False in dftabulate, but it doesn't accept this argument.

import pandas as pd
from tabulate import tabulate

# initialize list of lists
states = [['Alabama - AL', 'Alaska - AK', 'Arizona - AZ', 'Arkansas - AR', 'California - CA'],
               ['Colorado - CO', 'Connecticut - CT', 'Delaware - DE', 'Florida - FL', 'Georgia - GA'],
               ['Hawaii - HI', 'Idaho - ID', 'Illinois - IL', 'Indiana - IN', 'Iowa - IA'],
               ['Kansas - KS', 'Kentucky - KY', 'Louisiana - LA', 'Maine - ME', 'Maryland - MD'],
               ['Massachusetts - MA', 'Michigan - MI', 'Minnesota - MN', 'Mississippi - MS', 'Missouri - MO'],
               ['Montana - MT', 'Nebraska - NE', 'Nevada - NV', 'New Hampshire - NH', 'New Jersey - NJ'],
               ['New Mexico - NM', 'New York - NY', 'North Carolina - NC', 'North Dakota - ND', 'Ohio - OH'],
               ['Oklahoma - OK', 'Oregon - OR', 'Pennsylvania - PA', 'Rhode Island - RI', 'South Carolina - SC'],
               ['South Dakota - SD', 'Tennessee - TN', 'Texas - TX', 'Utah - UT', 'Vermont - VT'],
               ['Virginia - VA', 'Washington - WA', 'West Virginia - WV', 'Wisconsin - WI', 'Wyoming - WY']]

# Create the pandas DataFrame
df = pd.DataFrame(states, columns=['State - Abbreviation', 'State - Abbreviation', 'State - Abbreviation', 'State - Abbreviation', 'State - Abbreviation'])
pdtabulate = lambda df: tabulate(df, headers='keys', tablefmt='psql')

# print dataframe.
print(pdtabulate(df))

enter image description here

Upvotes: 6

Views: 22593

Answers (4)

Just for displaying (valid only for notebooks):

df.style.hide_index()

Another option similar to your output (using Markdown syntax):

print(df.to_markdown(index=False))

Upvotes: 7

James Hirschorn
James Hirschorn

Reputation: 8014

For output in colab you can achieve the same with HTML:

from IPython.display import HTML

HTML(df.to_html(index=False))

Upvotes: 1

Tasnuva Leeya
Tasnuva Leeya

Reputation: 2795

use tabulate showindex = False:

import pandas as pd
from tabulate import tabulate


# Create the pandas DataFrame
df = pd.DataFrame(states, columns=['State - Abbreviation', 'State - Abbreviation', 'State - Abbreviation', 'State - Abbreviation', 'State - Abbreviation'])
pdtabulate = lambda df: tabulate(df, headers='keys', tablefmt='psql', showindex=False)

print(pdtabulate(df))

Upvotes: 8

wasif
wasif

Reputation: 15488

You can't have dataframes without index, but print without index beautifully, like excel sheets:

print(df.to_string(index=False))

Upvotes: 4

Related Questions