Python-根据每个项目的位置将文本解析为多个列 [英] Python - Parsing a text onto columns by the position of each item

查看:0
本文介绍了Python-根据每个项目的位置将文本解析为多个列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

巴西证券交易所(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',...]

这篇关于Python-根据每个项目的位置将文本解析为多个列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆