Отфильтруйте столбец и заполните соответствующие строки в новом файле Excel, используя python - PullRequest
0 голосов
/ 19 ноября 2018

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

Я использую Tkinter в качестве моего GUI, чтобы выдать 3 идентификатора продукта и получить идентификаторы, похожие на него (в этом случае я предоставляю 12345678s12 и получаю все идентификаторы, которые похожи на него, например, 34534534q23, 98765432y23 и т. Д. вкл)

данные выглядят примерно так

скрипт ниже:

def clean():

    df['PO Item Description'] = df['PO Item Description'].astype(str).str.lower()  

    y =""
    M = entryx.get() # Entry one from tkinter
    N = entryx2.get() # Entry Two from tkinter
    O = entryx3.get() # Entry three from tkinter

    listx={'text1':[M,N,O]}

    for values in listx.values():
        if (listx["text1"][0]==listx["text1"][1]==listx["text1"][2]):
            text1 = listx['text1'][0]
            for i in range(0,len(text1)):

                r=re.match('[a-zA-Z]',text1[i])
                if r!=None:
                    y+='[a-zA-Z]'
                r=re.match('[0-9]',text1[i])            
                if r!=None:
                    y+='\d'       
                r=re.match('[.\,_/=&*()%^@$!#-]',text1[i])
                if r!=None: 
                    y+='\W'
                r=re.match('[ ]',text1[i])
                if r!=None:
                    y+='\s' 
        else:
            pass   

    ids = df['PO Item Description'].str.extract(r"({})".format(y),expand =False).dropna().tolist() #finds all items with similar Product ID

    resultxx= ''
    for product_IDs in zip(*[iter(ids)]):
        resultxx = pd.DataFrame(ids)

Этот код работает, но он очень неуклюжий, так как я новичок в Python. Теперь мои вопросы по коду:

  1. Как мне сделать этот код более эффективным?
  2. Как получить соответствующие строки, по которым были отфильтрованы столбцы, и заполнить их в новом файле Excel?

Пожалуйста, помогите мне. Заранее спасибо

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