Преобразование txt-файла в смешанный вывод с разделителями с использованием python

У меня довольно грязный текстовый файл, который мне нужно преобразовать в фрейм данных для использования в качестве справочных данных. Выдержка показана ниже:

https://i.stack.imgur.com/ZvrWu.png

Я очистил его как можно лучше, но, короче говоря, я хотел бы разграничить большую часть каждой строки пробелом, а затем фиксированным разграничением последнего столбца. то есть игнорировать пробелы в последнем разделе.

Текстовый файл очищенных данных

Может ли кто-нибудь указать мне в правильном направлении ресурс, который может это сделать? Не уверены, что Pandas справится с этим?

Кенни

P.S. Я нашел несколько отличных ресурсов для очистки нескольких пробелов и замены разрывов строк. Извините, не могу найти оригинальную ссылку, поэтому смотрите прикрепленный файл.

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()

person KennyMcK    schedule 15.04.2020    source источник
comment
Добро пожаловать в Stack Overflow. Всегда рекомендуется включать MWE. Кроме того, если вы нашли решение своего вопроса, вы можете опубликовать его как ответ.   -  person rotton    schedule 15.04.2020
comment
Привет @rotton, я все еще ищу что-то, что может это сделать.   -  person KennyMcK    schedule 15.04.2020
comment
Похожий вопрос   -  person rotton    schedule 24.04.2020


Ответы (2)


Так что я бы сделал очень просто, я бы максимально очистил данные, а затем преобразовал их в файл 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)

Это должно быть на работе для начала. Но я не знаю, что именно вы хотите удалить, поэтому я думаю, что остальное должно быть довольно ясно.

person SebNik    schedule 15.04.2020
comment
Привет @SebNik, я урезал его, насколько мог, я добавил ссылку на очищенный файл. Я хотел бы создать файл csv автоматически, но мне нужно использовать смешанные разделители, т. е. пробел и фиксированные разделители, чтобы получить разумный формат csv. - person KennyMcK; 15.04.2020
comment
Хорошо, я посмотрю, что я могу сделать. - person SebNik; 15.04.2020
comment
Это нужно сделать сейчас, если это отвечает на ваш вопрос, рад, что смог помочь. - person SebNik; 15.04.2020
comment
Спасибо, это, кажется, записывает файл csv, но только разделяет пробелы. Я решил разделить файл на два, так как приложение позволяет использовать разные таблицы. - person KennyMcK; 16.04.2020
comment
Хорошо звучит хорошо, если на ваш вопрос ответили, пожалуйста, отметьте его как решенный, чтобы он был понятен для системы. - person SebNik; 17.04.2020

То, как мне удалось это сделать, было разделить csv на две части, а затем рекомбинировать. Не особенно элегантный, но сделал работу, в которой я нуждался.

Разделить по столбцам

person KennyMcK    schedule 29.04.2020