在pandas中读取具有多种不同类型的固定宽度列文本文件

时间:2017-06-22 15:18:46

标签: python pandas flat-file fixed-width

我想使用pandas读取具有固定宽度列大小(read_fwf)的文本文件。虽然文件中的每一行可以是不同的类型(每个代表不同的结构,具有不同的列数),但由行上的第一个字符确定。如何根据类型解析(我会说多个)dataFrames?是否有一个read_fwf参数可以处理这个?

文件示例。记录类型A,B,C:

Header
A1234  Another Field 567 fourthfield
A32    Second Field  456 fourthfield2
BFirstColumn   SecondColumn  ThirdColumn
BFirstColumn2  SecondColumn2 ThirdColumn2
CA  B  C  123  456  789
CEF TTTCCC001  001  001
A1     Next Field    999 fourthfield3

我尝试通过阅读基于第一列进行拆分:

data = pd.read_fwf(path, widths=[1,...], header=0, skipfooter=0, names = ['Type','Data'])
As = data.loc[data['Type'] == 'A']

但后来我没有找到一种方法如何轻松破解pandas数据框内的固定数据As ['数据']。你不能将pandas数据帧输入到read_fwf中,所以你只能这样做。

As['col001'] = As['Data'].str.slice(0,6)
As['col002'] = As['Data'].str.slice(6,10)
...

有简单的方法吗?

0 个答案:

没有答案