我有一个这样的文件:
TCGA1 0 QWE
TCGA2 1 QWE
TCGA2 -2 RAF
TCGA3 2 KLS
并尝试使用pandas将其读入数据框。
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
错过了列名,我该如何解决? 谢谢!
答案 0 :(得分:2)
您必须为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