4

head() prints the indexes. dataframe.to_string(index=False,max_rows=10) prints the first 5 and last 5 rows.

MarianD
  • 13,096
  • 12
  • 42
  • 54
CornyBunches
  • 41
  • 1
  • 1
  • 2
  • print(ndf.head().style.hide_index()) just prints the following: – CornyBunches Feb 22 '20 at 22:12
  • **Omit `print()`**, use **only** `ndf.head().style.hide_index()`. — You have to work in Jupyter Notebook (or JupyterLab) environment. See [my answer](https://stackoverflow.com/a/60357424/7023590). – MarianD Feb 22 '20 at 22:49

2 Answers2

5

You should try this :

print(df.head(n=10).to_string(index=False))

This will work because df.head return a Dataframe object so you can apply the to_string method to it and get rid of that index ^^.

Omar Aldakar
  • 505
  • 2
  • 8
2

If you like complicated solutions, you may use

[print(row) for row in df.head().to_string(index=False).split("\n")]

The explanation:

  • df.head().to_string(index=False) returns a string with "\n" as row delimiters,
  • split() method then returns a list of single rows,
  • [print(row) for row in ...] then prints every row.

It was a joke, of course, albeit giving you the desired result. Printing it as a whole string will give the same result (as every row ends with "\n"):

print(df.head().to_string(index=False))

If you work with Jupyter Notebook, you may use a nicer command

df.head().style.hide_index()

Be careful!

No print(...), no df = .... The returning object is an object of the Styler class, not a dataframe.

Jupyter Notebook IDE automatically calls its method ._repr_html() to render (display) your table.

See my other answer for details.

MarianD
  • 13,096
  • 12
  • 42
  • 54