Python Pandas does not read the first row of csv file
If your file doesn't have a header row you need to tell Pandas so by using header=None in your call to pd.read_csv().
By default, pd.read_csv
uses header=0
(when the names
parameter is also not specified) which means the first (i.e. 0th-indexed) line is interpreted as column names.
If your data has no header, then use
pd.read_csv(..., header=None)
For example,
import io
import sys
import pandas as pd
if sys.version_info.major == 3:
# Python3
StringIO = io.StringIO
else:
# Python2
StringIO = io.BytesIO
text = '''\
1 2 3
4 5 6
'''
print(pd.read_csv(StringIO(text), sep=' '))
Without header
, the first line, 1 2 3
, sets the column names:
1 2 3
0 4 5 6
With header=None
, the first line is treated as data:
print(pd.read_csv(StringIO(text), sep=' ', header=None))
prints
0 1 2
0 1 2 3
1 4 5 6