Dominus Dominus - 1 year ago 54
Python Question

Load columns x1,x2,x3.. with headers: 0,1,

I'm new to python, and having an extremely frustrating problem. I need to load the columns 1-12 of a csv files (so not the 0th column), but I need to skip the header of the excel, and overwrite it with

"0,1,..,11"

I need to use panda.read_csv() for this.

basically, my csv is:

"a", "b", "c", ..., "l"
1, 2, 3, ..., 12
1, 2, 3, ..., 12


and I want to load it as a dataframe such that

dataframe[0] = 2,2,2,..
dataframe[1] = 3,3,3..


ergo skipping the first column, and making the dataframe start with index 0.
I've tried setting
usecols = [1,2,3..]
, but then the indexes are
1,2,3,..
.

Any help would be grateful.

Answer Source

You can use header=(int) to remove the header lines, usecols=range(1,12) to grab the last 11 columns, and names=range(11) to name the 11 columns from 0 to 10.

Here is a fake dataset:

This is the header.  Header header header.
And the second header line.  
a,b,c,d,e,f,g,h,i,j,k,l
1,2,3,4,5,6,7,8,9,10,11,12
1,2,3,4,5,6,7,8,9,10,11,12
1,2,3,4,5,6,7,8,9,10,11,12

Using the code:

> df = pd.read_csv('data_file.csv', usecols=range(1,12), names=range(11), header=2)
> df
# returns:
    0   1   2   3   4   5   6   7   8   9  10
0   2   3   4   5   6   7   8   9  10  11  12
1   2   3   4   5   6   7   8   9  10  11  12
2   2   3   4   5   6   7   8   9  10  11  12

> df[0]
# returns:
0    2
1    2
2    2
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download