我正在尝试解析 set 不规则间隔的txt文件。 有关屏幕截图示例,请参阅:Example 1 文本文件如下所示:
Date This is a Task Location Postal
short code
Description
01.01.2000 The weather on this Take the Lyon which is a nice 0000123451151
day must have been Trash out city. What we do not
very nice. The sun know is an opaque
was shining. riddle
02.01.2000 This was a very cold Eat ice- Zurich was a nice 0123124
and rainy day. There cream trip.
must have been some
issue with the air-
conditioner.
05.01.200 Very rainy day. Sad. Feel blue Berlin 12345
我第一次使用:
pd.read_table('testfile.txt') #,sep=r"\s*")
因以下原因失败:
ParserError: Error tokenizing data. C error: Expected 1 fields in line 6, saw 5
我使用pandas的最接近的是固定分隔符方法:
pd.read_fwf('testfile.txt',delim_whitespace=True,skipinitialspace =True,skip_blank_lines=True)
这产生了以下数据帧:fwf result其中(不出意外地由于fwf中的f)字符串的一部分在多个列上分开(注意:这是通过构造,它发生在我的真实世界数据中,也是)。
同样,元素不规则白色spate分离。那就是文本testfile.txt第一行与file2.txt相比有不同的#characters。因此,我无法计算空格并将其应用于其他文件。
视觉1可以看到列始终用空格(可变长度)分隔。我一直致力于一个(诚然不是很干净)的解决方案:GitHub
这个想法是逐行遍历文件并用一个启发式替换空格,例如:"三个空格后跟非空格字符,然后用分隔符替换第三个空格"然后根据类似的启发式填充分隔符。该过程在GitHub上有更详细的描述。
我希望能以更好的方式解决这个问题。
非常感谢!