我可以用不同的空格分隔符导入什么文本文件?

2024-04-29 10:14:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我想导入这个.txt文件,但是由于“No”和“Record”之间有空格,pandas将它们作为单独的列导入。我怎样才能有不同的seps?正则表达式?你知道吗

data = pd.read_table('file.txt', sep=' ', header=None)

数据

01/01/1933  NO RECORD   NO RECORD   MISSING     MISSING
01/02/1933  NO RECORD   NO RECORD   MISSING     MISSING
01/03/1933  NO RECORD   NO RECORD   MISSING     MISSING
01/04/1933  NO RECORD   NO RECORD   MISSING     MISSING
01/05/1933  NO RECORD   NO RECORD   MISSING     MISSING
01/06/1933  NO RECORD   NO RECORD   MISSING     MISSING
01/07/1933  NO RECORD   NO RECORD   368.00  MISSING
01/08/1933  NO RECORD   NO RECORD   MISSING     MISSING
01/09/1933  NO RECORD   NO RECORD   MISSING     MISSING
01/10/1933  NO RECORD   NO RECORD   MISSING     MISSING
01/11/1933  NO RECORD   NO RECORD   MISSING     MISSING

当前导入

**  0   1   2   3   4   5
0   01/01/1933\tNO  RECORD  \tNO    RECORD  \tMISSING   \tMISSING
1   01/02/1933\tNO  RECORD  \tNO    RECORD  \tMISSING   \tMISSING
2   01/03/1933\tNO  RECORD  \tNO    RECORD  \tMISSING   \tMISSING
3   01/04/1933\tNO  RECORD  \tNO    RECORD  \tMISSING   \tMISSING
4   01/05/1933\tNO  RECORD  \tNO    RECORD  \tMISSING   \tMISSING**

Tags: 文件notxtpandasreaddatarecordpd
2条回答

看起来像是制表符分隔的文件。您可以使用sep='\t',它应该可以正常工作。你知道吗

实际上,pd.read_table的默认值已经是sep='\t。你知道吗

在您的情况下,只需使用sep='\t'即可解析。你知道吗

但是在有多个分隔符的情况下(例如,\t),您可以通过执行',|\t'来设置regex表达式,python引擎将自动将其标识为regex表达式。因此,场景将是:

df = pd.read_table('file.txt',sep=',|\t', header=None)

相关问题 更多 >