Python-根据每个项目的位置将文本解析为多个列

人气:1,090 发布:2022-10-16 标签: python pandas jupyter bigdata

问题描述

巴西证券交易所(Bovespa)提供了一个文件,其中包含一个时间框架内的所有报价。文件太大,每一行都类似于这个真实的示例:

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
012016010402AAPL34      010APPLE       DRN          R$  000000000415000000000042200000000004150000000000421300000000042080000000003950000000000435000005000000000000012500000000000052664400000000000000009999123100000010000000000000BRAAPLBDR004115

因此,在查找文档时,我发现列映射如下:

char 01到02:(Int)寄存器类型; char 03-10:(日期)股票报价信息日期; char 11至12:(Int)某种代码; char 13至24:(Str)股票代码; ...

我开始学习Python,并尝试读取包含此数据的文件,并使用以下代码成功地完成了每一行:

数据-lang="js"数据-隐藏="假"数据-控制台="假"数据-巴贝尔="假">
import pandas as pd
dataset1 = pd.read_table('bmfbovespaquotes/DemoCotacoesHistoricas12022003.txt')

我认为这可能是一个愚蠢的问题,但我还没有找到解决方案,所以如果你知道解决这个问题的方法,请分享。

谢谢

推荐答案

您有一个fiXedidformat:这样可以解决问题。

pd.read_fwf(file_path, widths=[...], names=[...])

您应该传递宽度列表(在本例中以[2,8,2,10,...]开头)和列列表['register','date','code','ticker',...]

857