У меня есть текстовый файл, из которого я пытаюсь создать pandas DF
Name John Doe
Country Wakanda
Month of birth January 1900
social status married
....
После каждых 4 строк появляется новая запись, подобная этой. Структура кадра данных, которую я пытаюсь создать
Name Country . Month of Birth . social status
0 . John Doe . Wakanda January 1900 married
Текущий подход:
Я использую очень неэффективный итеративный подход для извлечения записей в виде списка списков, где каждый список является строкой для DF.
Существует ли лучший пифонический подход для разделения имен столбцов на значения и извлечение значений в одиночку.
PS. Я не прошу ввести код. Любое предложение по этому подходу было бы замечательным.
Возможно, подход может состоять в том, чтобы иметь список потенциальных совпадений для каждой из записей, а для каждой записи итерации через этот список и разбиение ключевых слов в случае совпадения.
В качестве примера для отдельной записи:
text = 'Month of birth January 1900'
keys = ['Month of birth', 'Date of birth' 'Birth']
Когда вы будете искать совпадения, выбор будет состоять в том, чтобы выбрать самую короткую строку из списка, что означает, что больше слов совпало:
min([text.strip(x) for x in keys])
'January 1900'
Вы просто следуете этому подходу для разных полей и создаете фрейм данных из полученных строк. Вы также можете рассмотреть возможность создания строк перед поиском в ключевых словах. Надеюсь это поможет.