Checking values row per row to assign proper work center to product

I am tasked with matching the products from a table to the Work Center they are supposed to be sent to. To do this, I have 2 tables: one contains the details about what product goes to what Work Center, and one containing the informations about the product to be made.

The product names are usually like this str (group) int( size) and may or may not be followed by other strings (the motor to make), or a ‘/T’ which doesn’t affect the work center associated

The first table about the products and work centers:

Mdt Div. Type_group Type_size target_time Workcenter Opratio Da_rivedere
400 4000 R* 37* 11.000 CELL21 0312
400 4000 S* 37* 11.000 CELL21 0312
400 4000 SA* 37* 11.000 CELL21 0312
400 4000 K* 19* 40.000 CELL23 0320 X
400 4000 K* 29* 40.000 CELL23 0320 X
400 4000 F* 37* 18.500 CELL24 0313
400 4000 F* 47* 18.500 CELL24 0313
400 4000 FA* 37* 18.500 CELL24 0313
400 4000 FA* 47* 18.500 CELL24 0313
400 4000 K* 37* 26.000 CELL24 0313
400 4000 K* 47* 27.000 CELL24 0313
400 4000 KA* 37* 26.000 CELL24 0313
400 4000 KA* 47* 27.000 CELL24 0313

Here, this shows that, for example:
In the first row, if product name starts with R and which has any other character after that, and if it has a size of 37 and anything else attached to it, should go to the Work Center -> CELL21

Now, take a look at the orders table instead:

Index SFC Prodotto
0 841317030100.00.0001 R37 DRN90L2
1 841342450100.00.0001 SA37 DRN93M3
2 841345010100.00.0001 R37 AQH80/1
3 841345010200.00.0001 KAZ47 DRN132S4/BE5HR/TF
4 841345010100.00.0002 FA47 AQH80/1

It shows that, the first product is called:

R37 DRN90L2

This is exactly the case I just described above, it’s an R , and size is 37 both of which conditions match the Work Center to be CELL21.

Therefore, the final dataset should be as follows (these are all examples you can verify with the excerpt of table I sent above):

Index SFC Prodotto WorkCenter
0 841317030100.00.0001 R37 DRN90L2 CELL21
1 841342450100.00.0001 SA37 DRN93M3 CELL21
2 841345010100.00.0001 R37 AQH80/1 CELL21
3 841345010200.00.0001 KAZ47 DRN132S4/BE5HR/TF CELL24
4 841345010100.00.0002 FA47 AQH80/1 CELL24

Now, what I am trying to do, is to match through the use of regex each of the rows for the dataset containing the details of the orders, and when I obtain a group to cross-check it with the table of the products and work centers to return the work centers into which it should go:

import pandas as pd
import re

df_products = pd.read_excel('orders_table.xlsx')
df_rules = pd.read_excel('products_work_centers.xlsx')

def match_workcenter(prodotto, df_rules):
    # Extract group and size from the product code using regex
    match = re.match(r"([A-Z]+)(d+)", prodotto)
    if match:
        group, size = match.groups()
        size = size + '*'  
        for _, row in df_rules.iterrows():
            if group == row['Type_group'].replace('*', '') and size == row['Type_size']:
                return row['Workcenter']
    return None

df_products['New_Workcenter'] = df_products['Prodotto'].apply(lambda x: match_workcenter(x, df_rules))

df_products

But the result is not satisfactory, as for some of these cells it works and some others it doesn’t:

Index SFC Prodotto WorkCenter
0 841317030100.00.0001 R37 DRN90L2 CELL21
1 841342450100.00.0001 WAF20 DRN63M4/BE03 None
2 841345010100.00.0001 WA20 DRN63M4 None
3 841345010200.00.0001 WA20 DRN63M4 None
4 841345010100.00.0002 KAZ67 DRN132S4/BE5HR/TF None

Can I get some advice into how to modify this to work?

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật