首页 > 解决方案 > 如何从具有不规则空格的 .txt 文件中读取数据(也用于变量名)?

问题描述

我正在尝试从此链接下载数据,一个 txt 文件,每一行都以变量名称(包含空格)开头,并且有几个空格将名称与实际数据分开。这是前几行:

All items............................................   100.000        100.000     
                                                                                    
  Food and beverages..................................    14.794         16.246     
   Food...............................................    13.771         15.343     
                                                                              
    Food at home......................................     7.579          8.746     
     Cereals and bakery products......................      .984          1.124     
      Cereals and cereal products.....................      .301           .366     
       Flour and prepared flour mixes.................      .040           .051 

我尝试了几个选项,例如将 '\t' 指定为限制器read_csv,以及从其他问答中复制的一些花哨的选项,但没有一个有效。要么数据丢失,要么变量名被解释为数据,我得到的列太多。

我应该如何将此文件读入熊猫中的 df ?

标签: pythonpandasdataframe

解决方案


用 . 读取您的文件pandas.read_fwf。该widths参数对应于将形成每一列的文本的宽度。

import pandas as pd

df = pd.read_fwf("myfile.txt", widths=[54, 10, 15], header=None)
print(df)

这使:

                                                   0        1        2
0  All items........................................  100.000  100.000
1                                                NaN      NaN      NaN
2  Food and beverages...............................   14.794   16.246
3  Food.............................................   13.771   15.343
4                                                NaN      NaN      NaN
5  Food at home.....................................    7.579    8.746
6  Cereals and bakery products......................    0.984    1.124
7   Cereals and cereal products.....................    0.301    0.366
8    Flour and prepared flour mixes.................    0.040    0.051

推荐阅读