python - 如何从具有不规则空格的 .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 ?
解决方案
用 . 读取您的文件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
推荐阅读
- angular - 如何使用 Angular 6 打印条形码贴纸?
- java - Regex to match user and user@domain
- jquery - 使用 DisplayFormat 属性后如何处理模型绑定
- java - 为什么没有创建或更新 Hibernate 受控对象/实体的这一字段?
- .net - SSIS 错误 0xC0011008 Microsoft.SqlServer.Dts.Runtime.Application.LoadPackage
- java - 处理:如何使一个函数找到我的数组的二次公式的结果?
- javascript - Updating chart.js chart with dataset of different size
- hpc - LSF 将文件移动到创建的输出目录
- excel - Divide sheets among diferent people
- ansible - ansible 中 flush_handlers 的替代方案