Сопоставление неструктурированных данных с определенным списком значений через Python - PullRequest
0 голосов
/ 03 октября 2019

У меня есть исходный файл следующим образом:

terr_cd,TenderName,key
840,CREDIT SALES - Uber Eats ,PO002:369837386
840,CREDIT SALES-Skip The Dishes ,P0008:1000955655
840,UberEats,P002:369837388
840,uber-eats,PO002:369837389
840,UBER EATS,P002:369837391
840,ventes cr?dit - Uber Eats,PO02:369837393
840,ventes cr?dit-skip the dishes,PO02:369837394
826,Sp the Dishes,POS002:3697395
826,skiptishes,PO02:3697396

Я должен сопоставить его со списком, как указано ниже:

test_list = ['UberEats', 'DoorDash', 'DLV', 'Deliver', 'Skipthedishes']

Я должен заполнить новый столбец с именем "Флаг", который бы заполнил Да / Нет, если любое из значений в моем списке тестов совпадает со значением в моем 'TenderNameстолбец через Python.

Я пытался реализовать его с помощью кода, указанного ниже:

search = 'CREDIT SALES-Uber Eats'
clean_str = re.sub('[^A-Za-z0-9]+','',search)

test_list = ['UberEats', 'DoorDash', 'DLV', 'Deliver', 'Skipthedishes']


for pattern in test_list:
              if re.search(pattern,clean_str):
                             print('yes')
                             break;
              else:
                             print('no')

Но я не могу заполнить новый столбец. Можете ли вы предоставить решение этой проблемы. Спасибо!

1 Ответ

1 голос
/ 03 октября 2019

Не уверен, что вы имели в виду, добавив столбец «Флаг», не могли бы вы уточнить это? Я просто даю вам флаг в качестве вывода без этого пояснения.

Если вам нужно выяснить, существует ли какой-либо элемент в test_list в качестве значения для столбца TenderName в файле, это можно решить несколько раз. пути. Поскольку вы пометили панд, я предоставляю решение для панд:

import pandas as pd

test_list = ['UberEats', 'DoorDash', 'DLV', 'Deliver', 'Skipthedishes']

df=pd.read_csv("FilePath.csv")
flag="No"
for item in test_list:
    if len(df[df["TenderName"]==item]) > 0:
        flag="Yes"
        break

print(flag)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...