#python #transformation #string-matching
#python #преобразование #сопоставление строк
Вопрос:
Я новичок в Python, и у меня нет идеи, как я мог бы выполнить следующее преобразование и анализ.
У меня есть файл, который выглядит похоже на следующий пример:
RecordID Comments name value
0 Franco Moro is cool Franco Moro 100
0 Franco Moro is cool Franco Minione 67
1 Jane and Jon Mare Jane Love 63
1 Jane and Jon Mare Jane Franklin 65
1 Jane and Jon Mare Jon McDonagh 71
1 Jane and Jon Mare Jon Mare 100
Теперь я хочу применить логику, согласно которой, если имя имеет значение 100 и в той же группе есть другая запись с более низким счетом, и либо имя, либо фамилия равны, то оно должно быть помечено как OUT . Однако, если существует много параметров с одним и тем же именем, но ни один из них не набирает 100 баллов, тогда он должен быть помечен знаком «?».
RecordID Comments name value Flag
0 Franco Moro is cool Franco Moro 100 OK
0 Franco Moro is cool Franco Minione 67 OUT
1 Jane and Jon Mare Jane Love 63 ?
1 Jane and Jon Mare Jane Franklin 65 ?
1 Jane and Jon Mare Jon McDonagh 71 OUT
1 Jane and Jon Mare Jon Mare 100 OK
Кто-нибудь может помочь?
Спасибо, Майкл
Комментарии:
1. Обязательно ли используемая вами структура данных должна выглядеть так? Можете ли вы использовать другую структуру данных? Если вы можете, я предлагаю вам попробовать использовать файлы databases / json.
2. Входные данные выглядят следующим образом, и выходные данные также должны быть в формате таблицы. Однако, если у вас есть предложения по промежуточной обработке в формате JSON, я был бы открыт для этого
3. Что бы я сделал, так это создал класс, который анализирует таблицу и сохраняет ее в словаре, где key представляет
RecordID
, а его значение равно alist
со всеми соответствующими комментариями. Тогда вы сможете выполнять любую логику, которую захотите (например, вы сможете сделатьif "Jane" in parsed_table[0]
). Как только вы закончите выполнять свою логику, сериализуйте ее обратно в формат таблицы. Как это звучит?4. Я обязательно попробую. Спасибо!