如何读取txt.file中没有分隔符或固定宽度的数据框与pandas

时间:2017-09-16 14:30:46

标签: python regex pandas

我正在处理作为文本文件的原始数据。但是,它没有分隔符或固定宽度。每列的长度不同。例如,列1的长度为12;第2列的长度为5;等等。The definition of the file is something like this

我想知道是否有一些函数可以根据每列的长度来处理这种文件。我认为可行的一种方法是使用正则表达式迭代每一行和每列。

2 个答案:

答案 0 :(得分:3)

这仍然是一个固定宽度的文件(这意味着每个字段的大小是固定的,它不必相等)。因此,您可以使用pandas.read_fwfwidths参数作为[21,5,5,12...]来阅读此内容。 https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_fwf.html

答案 1 :(得分:1)

最简单的方法,假设没有分隔符,只是硬编码字符串切片:

with open("text.txt", "r+") as fh:
  for row in fh:
    row.write(row[0:12]+","+row[12:17]+","+row[17:23]... ) #finish

然后,您可以在创建数据帧时指定分隔符。