2016-05-12 60 views
2

我有這樣的文件:read_table讀取所有數據到一列

TCGA1 0 QWE 
TCGA2 1 QWE 
TCGA2 -2 RAF 
TCGA3 2 KLS 

,並試圖將其讀入使用熊貓一個數據幀。

In [16]: df = pd.read_table('TR.txt',header=None) 

但結果表明這樣的:

In [17]: df 
Out[17]: 
      0 
0 TCGA1 0 QWE 
1 TCGA2 1 QWE 
2 TCGA2 -2 RAF 
3 TCGA3 2 KLS 

列名已經錯過了,我怎麼能解決? 謝謝!

回答

1

您必須在read_table中添加sep='s\+'作爲分隔符任意空格。

由於默認分隔符是,,所以所有數據都在一列中,因此它不像您預期​​的那樣工作。

import pandas as pd 
import io 

temp=u"""TCGA1 0 QWE 
TCGA2 1 QWE 
TCGA2 -2 RAF 
TCGA3 2 KLS""" 
#after testing replace io.StringIO(temp) to filename 
df = pd.read_table(io.StringIO(temp), sep="\s+", header=None) 
print df 
     0 1 2 
0 TCGA1 0 QWE 
1 TCGA2 1 QWE 
2 TCGA2 -2 RAF 
3 TCGA3 2 KLS 

另一種解決方法與參數delim_whitespace=True

import pandas as pd 
import io 

temp=u"""TCGA1 0 QWE 
TCGA2 1 QWE 
TCGA2 -2 RAF 
TCGA3 2 KLS""" 
#after testing replace io.StringIO(temp) to filename 
df = pd.read_table(io.StringIO(temp), delim_whitespace=True, header=None) 
print df 
     0 1 2 
0 TCGA1 0 QWE 
1 TCGA2 1 QWE 
2 TCGA2 -2 RAF 
3 TCGA3 2 KLS 
+0

感謝您的幫助!我以前忽略過這個。 –