2016-01-24 28 views
1

我有一個.csv,其中包含列標題,並顯示在下面。當我將文件作爲數據幀接收時,需要禁止列標籤。使用pd.read_csv時無法刪除標題

date,color,id,zip,weight,height,locale 
11/25/2013,Blue,122468,1417464,3546600,254,7 

當我發出以下命令:

df = pd.read_csv('c:/temp1/test_csv.csv', usecols=[4,5], names = ["zip","weight"], header = 0, nrows=10) 

我得到:

zip    weight 
0 1417464  3546600 

我已經試過的標題= True和頭= 0的各種操作。如果我不使用頭= 0,則列將所有打印出來就行的頂部,像這樣:

zip   weight 
    height  locale 
0 1417464  3546600 

我已經試過skiprows = 0和1,但沒有移除報頭。但是,該命令通過跳過指定的行來工作。

我真的可以使用一些額外的觀點或解決。預先感謝您提供的任何幫助。

厄斯

回答

0

我不知道我完全理解你爲什麼要刪除的標題,但你可以註釋掉標題行,只要你沒有與'd'開頭的所有其他行如下:

>>> df = pd.read_csv('test.csv', usecols=[3,4], header=None, comment='d') # comments out lines beginning with 'date,color' . . . 
>>> df 
     3  4 
0 1417464 3546600 

這將是更好註釋掉線與十字線字符(#)的CSV文件,然後再次使用同樣的方法(只要你有沒有註釋掉任何其他線路用交叉線):

>>> df = pd.read_csv('test.csv', usecols=[3,4], header=None, comment='#') # comments out lines with # 
>>> df 
     3  4 
0 1417464 3546600 
0

我認爲你是對的。

所以,你可以更改列名ab

import pandas as pd 
import numpy as np 
import io 

temp=u"""date,color,id,zip,weight,height,locale 
11/25/2013,Blue,122468,1417464,3546600,254,7""" 
#after testing replace io.StringIO(temp) to filename 
df = pd.read_csv(io.StringIO(temp), usecols=[4,5], names = ["a","b"], header = 0 , nrows=10) 
print df 
     a b 
0 3546600 254 

現在這些列的新名稱,而不是weightheight

df = pd.read_csv(io.StringIO(temp), usecols=[4,5], header = 0 , nrows=10) 
print df 
    weight height 
0 3546600  254 

你可以(通過我的粗體)檢查文檔read_csv

:INT,整數的列表,默認的 '推斷'

行號(S)爲用列名稱和數據的開始。如果沒有名字通過,則默認爲0,否則爲無。 顯式傳遞標頭= 0可以替換現有名稱。標題可以是整數列表,指定列E.g.上的多索引的行位置。 [0,1,3]。未指定的中間行將被跳過(例如,在本例中將跳過2)。請注意,如果skip_blank_lines = True,則此參數將忽略註釋行和空行,因此header = 0表示數據的第一行,而不是文件的第一行。

0

使用@jezrael的例子,如果你想跳過頭和抑制德列標籤:

import pandas as pd 
import numpy as np 
import io 

temp=u"""date,color,id,zip,weight,height,locale 
11/25/2013,Blue,122468,1417464,3546600,254,7""" 
#after testing replace io.StringIO(temp) to filename 
df = pd.read_csv(io.StringIO(temp), usecols=[4,5], header = None, skiprows= 1) 
print df 
     4 5 
0 3546600 254