首页 > 解决方案 > 使用 python 过滤列并填充新 Excel 文件中的相应行

问题描述

我正在尝试过滤一个包含产品列表及其描述的列(它还包含一些产品 ID)。

我使用 Tkinter 作为我的 GUI 来提供 3 个产品 ID 并获取与其相似的 ID(在这种情况下,我提供 12345678s12 并获取所有看起来与其相似的 IDS,例如 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 文件中?

请帮帮我。先感谢您

标签: excelpython-3.xdataframetkinter

解决方案


推荐阅读