How do you remove the column name row when exporting a pandas DataFrame?

PythonPandasCsvDataframeHeader

Python Problem Overview


Say I import the following Excel spreadsheet into a dataframe:

Val1 Val2 Val3
1     2    3 
5     6    7 
9     1    2

How do I delete the column name row (in this case Val1, Val2, Val3) so that I can export a csv with no column names, just the data?

I have tried df.drop() and df.ix[1:] and have not been successful with either.

Python Solutions


Solution 1 - Python

You can write to csv without the header using header=False and without the index using index=False. If desired, you also can modify the separator using sep.

CSV example with no header row, omitting the header row:

df.to_csv('filename.csv', header=False)

TSV (tab-separated) example, omitting the index column:

df.to_csv('filename.tsv', sep='\t', index=False)

Solution 2 - Python

Figured out a way to do this:

df.to_csv('filename.csv', header = False)

This tells pandas to write a csv file without the header. You can do the same with df.to_excel.

Solution 3 - Python

If you pass header=False, you will get this error

TypeError: Passing a bool to header is invalid. Use header=None 
for no header or header=int or list-like of ints to specify the 
row(s) making up the column names

Instead, use header=None

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestioncmgerberView Question on Stackoverflow
Solution 1 - PythonNilani AlgiriyageView Answer on Stackoverflow
Solution 2 - PythoncmgerberView Answer on Stackoverflow
Solution 3 - PythonPearl PhilipView Answer on Stackoverflow