Give column name when read csv file pandas

Question:

This is the example of my dataset.

>>> user1 = pd.read_csv('dataset/1.csv')
>>> print(user1)
          0  0.69464   3.1735   7.5048
0  0.030639  0.14982  3.48680   9.2755
1  0.069763 -0.29965  1.94770   9.1120
2  0.099823 -1.68890  1.41650  10.1200
3  0.129820 -2.17930  0.95342  10.9240
4  0.159790 -2.30180  0.23155  10.6510
5  0.189820 -1.41650  1.18500  11.0730

How to push down the first column and add the names column [TIME, X, Y, and Z] on the first column.

The desired output is like this:

       TIME        X        Y        Z
0         0  0.69464   3.1735   7.5048
1  0.030639  0.14982  3.48680   9.2755
2  0.069763 -0.29965  1.94770   9.1120
3  0.099823 -1.68890  1.41650  10.1200
4  0.129820 -2.17930  0.95342  10.9240
5  0.159790 -2.30180  0.23155  10.6510
6  0.189820 -1.41650  1.18500  11.0730
Asked By: markov zain

||

Answers:

I’d do it like this:

colnames=['TIME', 'X', 'Y', 'Z'] 
user1 = pd.read_csv('dataset/1.csv', names=colnames, header=None)
Answered By: wmoco_6725

If we are directly use data from csv it will give combine data based on comma separation value as it is .csv file.

user1 = pd.read_csv('dataset/1.csv')

If you want to add column names using pandas, you have to do something like this. But below code will not show separate header for your columns.

col_names=['TIME', 'X', 'Y', 'Z'] 
user1 = pd.read_csv('dataset/1.csv', names=col_names)

To solve above problem we have to add extra filled which is supported by pandas, It is header=None

user1 = pd.read_csv('dataset/1.csv', names=col_names, header=None)
Answered By: Jitesh Mohite
user1  = pd.read_csv('dataset/1.csv',  names=['Time',  'X',  'Y',  'Z']) 

names parameter in read_csv function is used to define column names. If you pass extra name in this list, it will add another new column with that name with NaN values.

header=None is used to trim column names is already exists in CSV file.

Answered By: Mahendra

we can do it with a single line of code.

 user1 = pd.read_csv('dataset/1.csv', names=['TIME', 'X', 'Y', 'Z'], header=None)
Answered By: Hariharan AR

In addition to above answers if your dataset already has column names and you want to replace it with your custom names then set header=0 instead of header=None

Answered By: Mohit Burkule

Use nrows=1 to avoid consuming loading time if the dataset is too large.

Answered By: Jiaxiang
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.