简体   繁体   English

Python pandas read_table 空白分隔符

[英]Python pandas read_table whitespace delimiter

I have this sample txt file that looks like:我有这个示例 txt 文件,它看起来像:

ACW00011604  17.1167  -61.7833   10.1    ST JOHNS COOLIDGE FLD
ACW00011647  17.1333  -61.7833   19.2    ST JOHNS
E000041196  25.3330   55.5170   34.0    SHARJAH INTER. AIRP

etc...等等...

What I need is this file to be loaded like:我需要的是加载这个文件,如:

 X  X.1 X.3 X.4 X.5
ACW00011604 17.1167 -61.7833    10.1    ST   JOHNS COOLIDGE FLD
ACW00011647 17.1333 -61.7833    19.2    ST JOHNS

I tried import pandas as pd我尝试将熊猫导入为 pd

ds=pd.read_table("st.txt", delim_whitespace=True, header=None)

but it works like:但它的工作原理如下:

X               X.1      X.3      X.4    X.5      X.6     X.7      X.8
ACW00011604  17.1167  -61.7833   10.1    ST      JOHNS   COOLIDGE  FLD
ACW00011647  17.1333  -61.7833   19.2    ST      JOHNS
E000041196   25.3330   55.5170   34.0    SHARJAH INTER.  AIRP

How can I handle this?我该如何处理?

Use read_fwf to read fixed width file formats and pass params header=None and your desired column names:使用read_fwf读取固定宽度的文件格式并传递 params header=None和您想要的列名:

In [18]:
import io
import pandas as pd
t="""ACW00011604  17.1167  -61.7833   10.1    ST JOHNS COOLIDGE FLD
ACW00011647  17.1333  -61.7833   19.2    ST JOHNS
E000041196  25.3330   55.5170   34.0    SHARJAH INTER. AIRP"""
df = pd.read_fwf(io.StringIO(t), header=None, names=['X','X.1','X.3','X.4', 'X.5'])
df

Out[18]:
             X      X.1      X.3   X.4                    X.5
0  ACW00011604  17.1167 -61.7833  10.1  ST JOHNS COOLIDGE FLD
1  ACW00011647  17.1333 -61.7833  19.2               ST JOHNS
2   E000041196  25.3330  55.5170  34.0    SHARJAH INTER. AIRP

So in your case the following should work:因此,在您的情况下,以下内容应该有效:

ds=pd.read_fwf("st.txt", header=None, names=['X','X.1','X.3','X.4', 'X.5'])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM