У меня возникают проблемы с сопоставлением регулярных выражений в двух разных фреймах данных, связанных с его типом и уникальной страной. Вот пример для данных df и регулярного выражения df. Обратите внимание, что форма для этих двух данных отличается, потому что регулярное выражение df содержит только уникальное значение.
**Data df** **Regex df**
**Country Type Data** **Country Type Regex**
MY ABC MY1234567890 MY ABC ^MY[0-9]{10}
IT ABC IT1234567890 IT ABC ^IT[0-9]{10}
PL PQR PL123456 PL PQR ^PL
MY XYZ 456792abc MY XYZ ^\w{6,10}$
IT ABC MY45889976
IT ABC IT567888976
Я попытался объединить их вместе и использовать лямбда-выражения для сопоставления. Ниже мой код,
df.merge(df_regex,left_on='Country',right_on="Country")
df['Data Quality'] = df.apply(lambda r:re.match(r['Regex'],r['Data']) and 1 or 0, axis=1)
Но он добавит еще одну строку для каждого типа и страны. Таким образом, будет много дублирования, которое неэффективно и отнимает много времени.
Есть ли какой-нибудь способ pythoni c для сопоставления данных с их страной и типом, но ссылка находится в другом кадре данных. без слияния тех 2 дф. Затем, если его соответствие его собственному регулярному выражению, он вернет 1, иначе 0.