2016-10-26 44 views
1

我有一个格式化的这样一个文本文件:如何读取由空格分隔的文本文件到DataFrame中?

A00  0010 00000 
A001 0011 00000 
A00911 0019 00000 
A0100 0020 10000 

我想读取这个文件到一个数据帧。所以我尝试过:

import pandas as pd 
path = *file path* 
df = pd.read_csv(path, sep = '\t', header = None) 

我得到的是一个有4行和一列的DataFrame。

      0 
0  A00  0010 00000 
1  A001 0011 00000 
2  A00911 0019 00000 
3  A0100 0020 10000 

[4 rows x 1 columns] 

这是因为值不是由“\ t”分隔的。根据字符串的长度不同,列之间的空格数会有所不同。

所需的DataFrame应该有四行三列。

  0  1  2 
0  A000 0010 00000 
1  A001 0011 00000 
2  A009 0019 00000 
3  A0100 0020 10000 

[4 rows x 3 columns] 
+0

从我接触大熊猫开始就有一段时间了,但如果你使用''''inste ''\ t''的广告,它不起作用吗? –

+0

不,我试过了。 –

+3

使用'delim_whitespace':'pd.read_csv(data,delim_whitespace = True,header = None,dtype = str)' –

回答

5

您可以用dtype=str一起提供delim_whitespace=True保持在read_csv的dtypes ARGS,如:

df = pd.read_csv(path, delim_whitespace=True, header=None, dtype=str) 
df 

Image

1

尝试使用正则表达式中的 “九月” 命令

df = pd.read_csv(path, sep = ' +', header = None) 
+0

您可能希望保留数字字符串,而不是将它们转换为整数,例如'pd.read_csv(path,sep ='+',header = None,engine ='python',converters = {1:str, 2:str})' –

相关问题