我正在处理作为文本文件的原始数据。但是,它没有分隔符或固定宽度。每列的长度不同。例如,列1的长度为12;第2列的长度为5;等等。
我想知道是否有一些函数可以根据每列的长度来处理这种文件。我认为可行的一种方法是使用正则表达式迭代每一行和每列。
答案 0 :(得分:3)
这仍然是一个固定宽度的文件(这意味着每个字段的大小是固定的,它不必相等)。因此,您可以使用pandas.read_fwf
,widths
参数作为[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
然后,您可以在创建数据帧时指定分隔符。