2016-02-08 38 views
1

我正在將文本文件導入Pandas數據框。列的數量可能會有所不同,名稱也會有所不同。如何排除熊貓頭中的第一個單詞?

但是,標題行始終始於~A,並且read_csv將此解釋爲第一列的名稱,隨後將所有列名稱向右移動一步。

早些時候我曾經np.genfromtxt()的說法deletechars = 'A__'但我還沒有找到任何大熊貓同等功能。有沒有辦法在閱讀時排除名字,或者作爲第二個選項,刪除名字,但保持列完好?

我讀文件是這樣的:

in_file = pd.read_csv(file_name, header=header_row,delim_whitespace=True) 

現在,我得到這個(就像文本文件如下):

   ~A  DEPTH TIME TX1 TX2 TX3 OUT6 
11705 2.94 10525.38 126.14 169.71 353.86 4.59 NaN 
11706 2.93 10525.38 NaN 168.29 368.00 4.75 NaN 
11707 2.92 10525.38 126.14 166.71 369.86 4.93 NaN 

但我想」得到這個:

 DEPTH TIME TX1 TX2 TX3 OUT6 
11705 2.94 10525.38 126.14 169.71 353.86 4.59 
11706 2.93 10525.38 NaN 168.29 368.00 4.75 
11707 2.92 10525.38 126.14 166.71 369.86 4.93 

回答

3

爲什麼不僅僅是後期處理?

df = ... 
df_modified = df[df.columns[:-1]] 
df_modified.columns = df.columns[1:] 
+0

是的,可能的路要走。 – Tbb

0

選擇要導入的列

in_file = pd.read_csv(file_name, header=header_row, 
      delim_whitespace=True, 
      usecols=['DEPTH','TIME','TX1','TX2','TX3','OUT6') 
+0

不幸的是,這些列有所不同。此外,標題和列仍然不適合。 – Tbb

1

怎麼樣,如果你讀文件兩次?首先,使用pd.read_csv(),但跳過標題行。其次,使用open.readline()解析標題並放下第一個項目。這可以被分配給你的數據幀。

in_file = pd.read_csv(file_name, delim_whitespace=True, header = None, skiprows = [0]) 
with open(file_name,'rt') as h: 
    hdrs = h.readline().rstrip('\n').split(',') 
in_file.columns = hdrs[1:] 
+0

這是一個創新的解決方案! – Tbb

0

好了,所以,如果列數變化 ,你要刪除的第一列(誰的名字不同) ,你不希望太在後cv_read階段做到這一點... 然後 ......(鼓聲)

進口大熊貓作爲PD

#Tim.csv is 
#1,2,3 
#2,3,4 
#3,4,5 
headers=['BADCOL','Happy','Sad'] 
data = pd.read_csv('tim.csv').iloc[:,1:] 

數據會是這個樣子

b c 
    2 3 
    3 4 
    4 5 

不知道這是否計爲後CSV處理或不...

相關問題