我想使用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)
...
有简单的方法吗?