按Dict.中存储的固定宽度对DAT文件进行切片



我遇到了一些麻烦(尝试了很长时间(,仍然无法自行获得解决方案。我有一个看起来像这样格式的数据文件:

abc900800007.2

我有一个dict,它包含作为键的列名和对应于DAT文件固定宽度的值,我的dict类似于mydict={'col1':3,'col2':8,'col3':3(

我想做的是通过组合这两个项来创建一个df,从而通过dict值对DAT文件进行切片。df应该像:

col1 col2 col3

abc 90080000 7.2

如有任何帮助,我们将不胜感激!

我认为一个可能的(但取决于文件大小和内存密集型(解决方案是:

data = {'col1':[], 'col2':[], 'col3':[]}
for line in open('file.dat'):
data['col1'].append(line[:mydict['col1']])
begin = mydict['col1']
end = begin + mydict['col2']
data['col2'].append(line[begin:end])
begin = end
end = begin + mydict['col3'] 
data['col3'].append(line[begin:end])
df = pd.DataFrame(data) # create the DataFrame
del data # delete the auxiliar data

最新更新