我正在尝试过滤一列,该列包括带有其描述的产品列表(还包含一些产品ID)。
我正在使用Tkinter作为我的GUI,以提供3个产品ID并获得与之相似的ID(在这种情况下,我提供了12345678s12并获得了与它相似的所有IDS,例如34534534q23、98765432y23等) )
the data looks something like this
脚本如下:
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的新手,所以非常笨拙。 现在我对代码的疑问是:
请帮帮我。 预先谢谢你