如何将包含多个表的.dat文件读入pandas数据框中?

问题描述 投票:0回答:1

我有一个测量设备,它在.dat文件中记录数据,例如this folder中的raw_data.dat,它们都具有相同的结构,并且我希望能够将文件中的最后一张表提取到熊猫数据框中。 >

该文件有几个表,我不确定这里的列表结构是否是.dat文件的标准格式,但是我尝试将文本粘贴到excel中,并将其识别为单独的表,因此可能存在相当标准的标准将结构正确读取到python中的方法。我找不到一个,所以我尝试了一种非常复杂的方法,将.dat文件读入字符串,然后手动切掉文件顶部的其余部分,然后将其余部分另存为.dat文件。我的希望是,然后能够以某种方式将结果另存为.csv或.xls,但我仍然找不到任何方法。此外,导入后,表格将转换为\ t,并且不会返回已保存文件中的表格。我的代码如下


mylines = []                             
with open ('raw_file.dat', 'rt') as myfile:
    for myline in myfile:
        mylines.append(myline)

string = (mylines[8:])

with open("updated.dat", "w") as output:
    output.write(str(string))

我必须承认我是python的新手,我不确定我是否正确使用了这些函数。不过,我希望有比我尝试的解决方法更直接的方法。

我有一个测量设备,它在此文件夹中的原始数据(如raw_data.dat)记录在.dat文件中,所有文件都具有相同的结构,并且我希望能够将文件中的最后一个表提取到熊猫数据中……] >

python pandas data-conversion data-import
1个回答
1
投票

如果可以确定想要的第三张表从第8行开始,那么除了从第8行开始对文件建立索引之外,没有其他必要使它变得更加复杂。从那里,您可以使用字符串操作和列表理解来清理数据:

import pandas as pd

# Read the data.
with open('raw_data.dat', 'r') as fh:
    lines = fh.readlines()[8:]

# Remove newlines, tabs, and split each string separated by spaces.
clean = [line.strip.replace('\t', '').split() for line in lines]

# Feed the data into a DataFrame.
data = pd.DataFrame(clean[1:], columns=clean[0])
© www.soinside.com 2019 - 2024. All rights reserved.