Разграничить текстовый файл в python

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

Some text for the title
some more text for a description
some more descriptions.

City,State,Capital
Philadelphia,Pennsylvania,No
Sacramento,California,Yes
New York,New York,No
Austin,Texas,Yes
Miami,Florida,No

Часть с запятыми будет разделена.

Я пробовал несколько вещей.

Это символическая ошибка:

pd.read_csv(file.txt, sep=',')

Это работает, но иногда текстовые файлы не все начинаются с одной строки, поэтому я хотел бы сохранить информацию:

pd.read_csv(file.txt, skiprow=x) 

Есть ли какой-то параметр, который я мог бы передать, чтобы заставить это работать?

Some text for the title
some more text for a description
some more descriptions
ГородСостояниеЗаглавный
ФиладельфияПенсильванияНет

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

Rabinzel 16.05.2022 22:46

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

Acnologia 16.05.2022 22:50

Не знаю, должен ли я добавить это, но я думаю, что любая информация поможет: если бы я бросил это прямо в Excel, а затем использовал параметр с разделителями-запятыми, он отлично разграничил бы его. Но я уверен, что есть способ сделать это на питоне.

Acnologia 16.05.2022 22:55
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения текстовых сообщений может быть настолько сложным или простым, насколько вы его сделаете. Как и в любом ML-проекте, вы можете выбрать...
7 лайфхаков для начинающих Python-программистов
7 лайфхаков для начинающих Python-программистов
В этой статье мы расскажем о хитростях и советах по Python, которые должны быть известны разработчику Python.
Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
В одном из недавних постов я рассказал о том, как я использую навыки количественных исследований, которые я совершенствую в рамках программы TPQ...
Создание персонального файлового хранилища
Создание персонального файлового хранилища
Вы когда-нибудь хотели поделиться с кем-то файлом, но он содержал конфиденциальную информацию? Многие думают, что электронная почта безопасна, но это...
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
0
3
23
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я использовал это, и он работает правильно на основе предоставленного вами текстового файла.

df = pd.read_csv(filepath, skiprows=4)
df

Вместо того, чтобы просто проголосовать против, не могли бы вы объяснить, почему его проголосовали против, ха-ха

ArchAngelPwn 16.05.2022 23:02

Конечно. ИМО это не ответ на вопрос. Если вы внимательно прочитаете, вы увидите, что точно такое же утверждение уже было проверено ОП и оказалось рабочим. также количество строк, которые нужно пропустить, меняются для разных файлов, также он сказал, что не хочет терять информацию в первых нескольких строках. Ваше утверждение само по себе правильное, просто здесь нет ответа.

Rabinzel 16.05.2022 23:08

Привет, отрицательный голос был не моим, но я знаю, что этот вариант работает. Однако я теряю пропущенный текст, а это не то, что я хотел бы делать.

Acnologia 16.05.2022 23:08

Спасибо за продолжение, должно быть, пропустил это. Спасибо за объяснение

ArchAngelPwn 17.05.2022 00:04
Ответ принят как подходящий

Вы можете разделить текстовый файл и прочитать каждую часть отдельно, тогда вы можете использовать для этого pd.read_csv, но как один файл, насколько я знаю, вы должны просто прочитать файл с readlines() и некоторыми условиями.

Попробуйте с этим:

with open('your_textfile.txt', 'r') as f:
    some_information = []
    row = f.readline()
    while row !='\n':
        some_information.append(row.strip())
        row = f.readline()
        
    data = [x.strip().split(',') for x in f.readlines()]

df = pd.DataFrame(data[1:], columns=data[0])

print(some_information, data, df, sep='\n\n')

['Some text for the title', 'some more text for a description', 'some more descriptions.']

[['City', 'State', 'Capital'],
 ['Philadelphia', 'Pennsylvania', 'No'], 
 ['Sacramento', 'California', 'Yes'], 
 ['New York', 'New York', 'No'], 
 ['Austin', 'Texas', 'Yes'], 
 ['Miami', 'Florida', 'No']]

           City         State Capital
0  Philadelphia  Pennsylvania      No
1    Sacramento    California     Yes
2      New York      New York      No
3        Austin         Texas     Yes
4         Miami       Florida      No

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

Acnologia 17.05.2022 05:17

Другие вопросы по теме