使用 python 将 txt 文件转换为混合分隔输出

Convert txt file to mixed delimited output using python

我有一个相当混乱的 txt 文件,我需要将其转换为数据框以用作参考数据。摘录如下:

http://amdc.in2p3.fr/nubase/nubase2016.txt

我已经尽我所能清理了它,但长话短说,我想 space 分隔每行的大部分内容,然后修复最后一列的分隔符。即忽略最后一节中的 spaces。

Cleaned Data Text File

任何人都可以指出可以做到这一点的资源的正确方向吗?不确定 Pandas 是否能解决这个问题?

肯尼

P.S。我找到了一些很好的资源来清理多个 whitespaces 并替换换行符。抱歉找不到原参考,所以见附件。

fin = open("Input.txt", "rt")
fout = open("Ouput.txt", "wt")

for line in fin:
      fout.write(re.sub(' +', ' ', line).strip() + "\n")
fin.close()
fout.close()

所以我要做的很简单,我会尽可能清理数据,然后将其转换为csv文件,因为它们很容易使用。然后我会逐步将其加载到 pandas 数据帧中,并根据需要进行更改。

with open("NudatClean.txt") as f:
    text=f.readlines()

import csv
with open('dat.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    for i in text:
        l=i.split(' ')
        row=[]
        for a in l:
            if a!='':
                row.append(a)
        print(row)
        writer.writerow(row)

这应该是开始的工作。但我不知道你到底想删除什么,所以我认为剩下的应该很清楚了。

我设法做到这一点的方法是将 csv 分成两部分,然后重新组合。不是特别优雅,但完成了我需要的工作。

Split by Column